Useful, quality applications can be delivered rapidly. We recently worked with a client to implement one in four months. The application involved imaging a stub, (similar to the stub sent in with a utility bill), the check to pay the stub, and any customer correspondence. The new imaging system was designed to replace a microfilm system. Imaging provides a higher quality record of the transaction; but more importantly, the images can be delivered onto the customer service representative's PC to enable them to immediately resolve customer phone calls. Here are the critical success factors for this rapid application development project:
Achievable Goal: This was a relatively straightforward, self-contained, development project with no complicated processing rules or interfaces. We had a clear, well-understood goal.
Cooperative Business Partner: This effort was blessed with a cooperative, enthusiastic business partner. There was trust between the development team and the business. Most importantly, the business partner was as committed to meeting the deadline as development was, and the business was willing to cut functionality.
Building Blocks: Our client had a product development group which focused on buying, or building, reusable components. They bought components, the modular walls/floors/ceilings if you will, to actually build products. In this case, they bought the third party imaging product, Filenet, which we implemented along with custom software.
Process: This client had a standard development methodology already in place. Everyone on the team knew the process and generally adhered to it.
Shared Vision: The team believed and was committed to delivering an imaging product four months from the date of the business requirements.
Strong Team: We had the right mix of people to do the job. Everyone on the team had been involved in system development efforts relatively similar to this one. Everyone respected each other for their unique technical capabilities and experiences. The team was small and the team was flexible. Everyone felt genuinely responsible for the success of the team as a whole.
Management Support: Problems affecting progress were resolved quickly. Once a problem was identified, management found someone with the necessary skills from the larger organization to resolve the problem. This is in contrast to normal shops where it often takes six weeks to get relatively small issues resolved. Management also gave the team a somewhat freer hand with the budget. If we needed something in the $500 - $1,000 range, we bought it without going through the layers of corporate purchasing bureaucracy. There was little energy wasted on political battles over territory, resources, or semantics.
Good Communications: The full team met weekly. These meetings identified who was accountable for the various tasks. Because of the complexity of rolling out eighty brand new PC's, the implementation project leader held weekly meetings with all the LAN administrators to discuss coordinating the roll-out. The specific development area on the hot seat, be it analysis, design, construction, or QA, met daily.
Some team members began to burn-out after four months of intense effort, but the results were worth it. Should your organization decide to implement a rapid application development project, we trust the above information will serve as a guide. We at Complexity Management remain keenly interested in rapidly delivering high quality software. Call us if you'd like to discuss this project in more detail.
©Complexity Management 1996
Complexity Management Chronicles, a newsletter for software quality assurance professionals, is published in print form four times a year. Send your name and snail-mail address to the e-mail address below if you would like to be on the mailing list - at no cost to USA mailing addresses.