Did I totally, completely lose it? 🙂
Well, actually, there were 2 separate points I was trying to make:
- One must prioritize certain values and ends over others. Trying to achieve everything at the same time is impossible because everyday each person is faced with choices on how to use his or her time, money and effort.
- Any activity can be executed in different ways – each method has its advocates. If a person strongly believes that only one way is the right way, he or she may become blind to possible problems with that approach.
As an example of the first situation, there are many goals that I may have: Good health, quality time with my family, lots of friends, writing a novel, visiting places all over the world, helping the poor and the sick. All of these goals are worthwhile, but I have limited resources to achieve them. If I don’t prioritize, I may not do any one of them properly. But if I do set the importance of each goal in relation to the other, I may be able to achieve at least some of them.
Now, let us suppose I do choose to place a high priority on good health. If I spend too little effort on that, then I will not be able to achieve my goal. On the other hand, if I spend too much time on health-related activity, I will be getting increasingly diminished returns from that additional effort. Hence there is a need to balance the effort.
Similarly, in software development, there are goals: High quality, low cost and quick delivery. It is important to prioritize them so that the team can focus on what is important. The means to achieve each goal – process, tools, people – have to be balanced. Also, as I mentioned, in some cases, an extreme case is valid. For instance, if you are delivering mission-critical software, high quality is paramount and hence it may be appropriate and necessary to spend heavily on very structured and rigid processes, huge teams with specialized personnel and expensive design, production and testing tools. A project of a similar scale (using an archaic metric like LOC), but of less critical nature may need 5% of that expense. The point is that: The situation defines what is important and how to balance the merits and demerits of different solutions or approaches to a problem.
I am now reading “The 7 Habits of Highly Effective People” – I had read it about 10 years ago and it has been well worth reading it again. The writing is superb, as are the stories and anecdotes. I mention it because Stephen Covey talks about P/PC (Production / Production Capability) balance. His point is that one must balance the ability to produce with the actual production. If a manager only focuses on short-term results (production), in the long run, the company will go out of business as it has failed to invest in itself. And if he or she only focuses on processes and tools to the detriment of production, the company will again go bankrupt as it has nothing to run on.
So, in conclusion, prioritization is necessary to understand the order of how things have to be done. It is necessary to understand what qualities must be paid higher attention when doing a particular task. Balance is necessary so that we spend enough resources (not too little and not too much) on the prioritized activities.