The latest issue of The Rational Edge has an interesting article on Software Management.
software projects successfully has proven to be very failure prone when
using the traditional engineering management discipline. Comparing the
challenge of software management to that of producing a major motion
picture exposes some interesting perspectives. Both management problems
are concerned with developing a complex piece of integrated
intellectual property with constraints that are predominantly economic.
This article introduces some comparisons between managing a software
production and managing a movie production, then elaborates four
software management practices observed from successful projects. The
overall recommendation is to use a steering leadership style rather than the detailed plan-and-track leadership style encouraged by conventional wisdom.
Written by Walker Royce, author of the popular book Software Project Management, the article brings out a great point between precision and accuracy – terms which I first encountered in the software world when I read Steve McConnell’s Code Complete :
In a successful software project, each phase of development produces
an increased level of understanding in the evolving plans,
specifications, and completed solution, because each phase furthers a
sequence of executable capabilities and the team’s knowledge of
competing objectives. At any point in the life cycle, the precision of
the subordinate artifacts should be in balance with this understanding,
at compatible levels of detail and reasonably traceable to each other.
difference between precision and accuracy (in the context of software
management) is not as trivial as it may seem. Software management is
full of gray areas, situation dependencies, and ambiguous tradeoffs.
Understanding the difference between precision and accuracy is a
fundamental skill of good software managers, who must accurately
forecast estimates, risks, and the effects of change. Unjustified
precision — in requirements or plans — has proven to be a substantial
yet subtle recurring obstacle to success. Most of the time, early
precision is just plain dishonest and serves to provide a facade for
more progress or more quality than actually exists. Unfortunately, many
sponsors and stakeholders demand this early precision and detail
because it gives them (false) comfort with respect to progress achieved.
of the most common failure patterns I have observed in the software
industry is developing a five-digits-of-precision specification when
the stakeholders have only a one-digit-of-precision understanding of
the problem, solution, or plan. A prolonged effort to build a precise
requirements understanding or a detailed plan only delays a more
thorough understanding of the architecturally significant issues. How
many frighteningly thick requirements documents or micromanaged
inch-stone plans have you worked on, perfected, and painstakingly
reviewed, only to totally overhaul them months later after the project
achieved a meaningful milestone of demonstrable capability that
accelerated stakeholder understanding of the real tradeoffs? This
common practice is aptly known in our trade as turd polishing.