Development using a multi-phase project and iteration
Question
A project leader asks:
The Guardrails emphasizes taking an iterative approach to development, with smaller, quicker phases. What are the arguments in favor of this approach versus a 'big bang' project? How do we apply an iterative approach within a large and complex requirements set? When designing for a multi-phase project, should we design to the overall project or to the phases?
Response
The iterative approach is the quickest, safest, and smartest way to get real benefits. Taking this approach is a major win as it quickly provides returns. As you analyze requirements, you should be looking for ways to implement — and bring into production — narrow but non-trivial slices of the application.
Pegasystems Professional Services and Pegasystems' partners have successfully taken this approach within several large projects with extensive requirements. You should consider the broad requirements and architect the solution such that it can grow. By building in smaller units, however, you reduce both project risks and time to measurable return.
The best practice is to design the class structure for the overall project, but then to build out a class at a time.
The idea is that in designing the larger class structure you’ll establish the overall scope in which to operate. Then, in deep-diving into building out flows, rules, data, user interface, etc. for one work type (or several very interrelated work type) at a time, you’ll complete a functional unit.
However, as you build out each class, you should be aware of (indeed, should anticipate) use cases that threaten the validity of the larger class structure – and should investigate and address them as soon as they arise.