By Jim Brosseau
Lewis Carroll captured this dialog between Alice and the Cheshire Cat in 1865:
`Would you tell me, please, which way I ought to go from here?’
`That depends a good deal on where you want to get to,’ said the Cat.
`I don’t much care where–‘ said Alice.
`Then it doesn’t matter which way you go,’ said the Cat.
`–so long as I get SOMEWHERE,’ Alice added as an explanation.
`Oh, you’re sure to do that,’ said the Cat, `if you only walk long enough.’
In many software projects, even those that appropriately deal with some key design issues such as concurrency, error handling and data persistence, there is often an important design phase opportunity that is missed. If design is viewed as a problem solving activity, it is best to choose a solution from a number of possible alternatives, by applying the concepts of diversification and convergence.
I recently worked with a graphic design firm, and had a chance to see their design process in action. In software, it is often the case that after the project scope is specified, an approach is selected and we quickly move directly to the implementation phase (…we are coding, so we’re finally being productive, right?). It was fascinating to see the effort spent by this firm in exploring the diversity of solution alternatives before narrowing the search. This was actually done several times, explicitly, in the process of arriving at an optimal solution, with a toolset consisting of pencil, paper, and imagination. The results of this design process left literally hundreds of design options that were explored and rejected for one reason or another, finally converging on a design approach that fit the original specified goals and could be used as a basis for the final implementation. Those alternatives that were cast aside were retained until project closure, so we could go back to review the approaches we had considered.
As Glenford Myers noted almost 30 years ago, “We try to solve the problem by rushing through the design process so that enough time will be left at the end of the project to uncover errors that were made because we rushed through the design process.” Getting closure successfully on software projects requires appropriate selection of your destination, as well as the right path along the way. [24×7]
Jim Brosseau, PMP
Jim has a career spanning 20 years in a variety of roles and responsibilities. Project management, software estimation, quality assurance and testing, peer reviews, and requirements management are all areas that Jim has a demonstrated grasp and ability to provide training and mentoring, both publicly and onsite with clients across North America.
Jim is the principal of the Clarrus Consulting Group of Vancouver, BC.