While the age of 40 is a pretty reasonable for an ordinary person (like most of us!) to master their chosen field of work, it is not a correct analogy for an entire industry. There are at least four factors that make it so:
• We are talking about thousands, if not millions of people, who constitute this discipline. The scale of the problem is thus compounded.
• It is very closely tied with technology, whose power to grow itself is phenomenal. As an example, the number of transistors that could be designed on the popular Intel 8085 (released in 1977) was 6,500. That on Pentium 4 chip Prescott (released in 2004) had about 125 million! Programming languages and techniques have evolved phenomenally during the last ten years.
• Software engineering has a very high component of people interaction.
• The ultimate product is intangible and it is by and large invisible till the final product is available.
So, is managing software projects an art? Is it the art of ‘out of the box thinking’ or the art of people (customer) management?
I strongly aver that software project management is, however immature, still an engineering discipline.
Art requires an imaginative mind, a flair for ‘out of the box thinking’ in management parlance. Engineering, on the other hand, relies on a combination of proven theoretical constructs and empirical observation.
Art requires imagination. So does engineering- but with a lot more caveats and constraints.
Pareto’s 80:20 rule holds very well when it comes to the application of out of the box thinking in software projects. Over 80% of the problems have ‘in the box’ solutions, less than 20% (or even less) really cry out for an ‘out of the box’ solution. It is only when all “in the box” solutions have been evaluated or tried that one needs to search for an out of the box solution. Most of the times, the solution arises by improvising and not “out of the box”.
If it is the latter, it is more often accidental even and a lot more risky even if sometimes seemingly more efficient.
Engineering cannot rely on accidental brilliance. It needs predictable results every time, not the random result as in a game of dice.