Trekking and software development
1. Planning: No clear roadmap. We just have a high level plan or map. Too upfront design or planning might not work.
2. Travel light: Cannot carry the burden of unwanted or not so important things. We can always get them or create them when we need
3. Adding more people to a late project will only delay the project future. Bigger the team, more complex the project gets. Co-ordination gets exponentially difficult.
4. It‘s not just the destination, it‘s the journey too.
5. Continuous feedback is critical. It‘s not holding the steering in one direction, it‘s about making a lot of small adjustments to stay on the path
6. No two software projects are same, as in the case of treks. Infact, keeping the team and project the same, the second time is always different from the first one. Same holds good for trekking.
7. Team work: It‘s about communication and coordination. One cannot miss a module and continue; similarly one cannot leave a member of the trekking group behind and continue the trek. Everyone on the trek needs to be on the same page.
8. Each team customizes the processes keeping the values or principles as the guiding lighting
9. There is no ultimate way of developing software or trekking. There is always scope for improvement and new ways of doing things. Also, there are many possible ways or paths to reach the destination. At the beginning one might not be able to clearly say which the best path is.
10. It‘s all about making the best of what you have on hand. In software development you don‘t have a great control over the budget, time, people skills, etc. Similarly while trekking you have limited resources and one has to carefully utilize these resources
11. It‘s all about finding your way through an unknown territory, while you just have an overall sense of direction.
12. One cannot rely 100% on measurements and matrices. A lot of things cannot be measured and few other measurements don‘t seem to make any sense at times. It is difficult to gauge where in a software development process you stand. Similarly one cannot be sure where they stand in terms of reaching the destination
13. One cannot carry the burden of ego. People should be ready to do anything that takes to make desired things happen
14. Highly motivated and self disciplined people are the need of the hour
15. Team composition is the key to success. One needs a good mix of people with varying skill sets and experience levels.
16. There is some sense of satisfaction when one gets lost and gets back. There is a feeling of immense learning and exposure on getting lost.
17. You don‘t need to know everything that takes to finish the project or the trek right before you stat. A lot of things can be found-out/learnt on the way and a lot of things become self-explanatory once you get there. There is always someone who would be able to help if required.
18. You don‘t have a clear separation between planning, requirement gathering, designing, development, testing, etc stages. You are doing a mix of these all the time. Similarly, you don‘t have a clear separation between planning, climbing up, climbing down, eating, decision making, etc. You are doing a combination of them.
19. A lot of satisfaction is derived out of exploring the unknown as a team, rather than having a guide or mentor dragging you along.
20. Practice simplicity. In software development you try to get the simplest thing working first. Similarly, in trekking, you try to take the simplest route to begin with. Once you get a hang of the terrain and some confidence, you might choose to try more complicated and difficult route.
Watch out for a white paper on “Software development – The trekker‘s way” soon…