Design as a Deliverable
Before software can be properly implemented, requirements must first be gathered and a design must be created. It has been shown that when software teams spend the proper amount of time on requirements and design, the cost of producing and maintaining enterprise software decreases dramatically, along with the number of bugs and the duration of the implementation and testing phases.
Various research studies have endeavored to identify the “ideal” amount of design time to spend in the pre-implementation phases of a software project. The findings vary, but are generally in the range of 20-35% of the overall project time. Figures such as these often draw strong negative reactions from the people you’d least expect—software engineers. The reasons vary. In many ways, software engineers are to source code as artists are to a canvas: both expect a certain level of independence and feel creatively inhibited by external forces requiring them to do things that they view as superfluous.
There’s only one problem: engineering isn’t art and both requirements and a design are necessary. Nobody would ever step foot into a skyscraper whose design was conceived during construction. That’s common sense. So,why isn’t it also common sense in the world of software that no business wants their critical software systems designed while they’re in the middle of being built?
It turns out that many software vendors do not spend the proper amount of time gathering requirements or working up a design. Amazingly, many don’t put forth any effort at all in these areas prior to implementation. When we explored the reason why professionals in the business would knowingly undermine the quality of their own product like this, the answer was interesting, but not too surprising: many software vendors view the pre-implementation phase as a necessary evil whose duration should be minimized because clients want deliverables, not paperwork or excuses.
However, is the tail not wagging the dog? When a customer hires a contractor to build a home, the customer relies on the professionalism and expertise of the contractor to follow the right procedures in constructing the home. As such, it is the contractor’s responsibility to not only set expectations by explaining how long it takes to properly design a house, but to fully involve the customer in the design choices.
In the same way, software vendors should not treat the design phase as an item on some internal checklist, but rather as a tangible work product that should be not only shown to the client, but also fully involve the client in every aspect. Indeed, many clients will admit that they don’t even know what they want at the outset of the project. Involving them in the design phase not only offers the advantages described earlier, but also puts the client to ease—both with herself and with her vendor.
Prolifogy is a national software consulting firm comprised of software industry veterans, including practitioners, scholars, researchers, authors, inventors of patented technology, university professors, and holders of other prestigious industry credentials. It offers both software development and software consulting services worldwide. To contact Prolifogy, please call (855)-PROLIFOGY or visit our web site.