Our Development Delivery Framework
Prodigy’s team has experience with a number of requirements definition and software development methodologies that are based on specific approaches, such as object-oriented development, RAD (rapid application development), Agile and traditional “waterfall” development. Our standard approach is to use the standard methodology of our clients as this provides the greatest benefit to our client. Should the client not have a standard methodology, a PMBOK based approach, modified to provide “Agile” features will be used.
Prodigy’s approach to project delivery is based on our framework and a number of other key attributes:
- Time-boxed – We deliver what we can deliver in a specified period of time. This helps eliminate scope creep, ensures team focus and provides early results to confirm the project is going in the right direction.
- Release based – Delivery is based on implementing a series of functional capabilities over time. In other words, rather than wait for the complete product, partial delivery occurs throughout the project. This “short burst” approach keeps the users actively involved and, like the time boxed approach, provides early results that can be used to confirm the project is going in the right direction.
- Business driven prototyping – Extensive use of prototyping is used to articulate the design of the system in tangible terms (i.e. a pseudo working system the users can immediately relate to). It also provides the basis for further development, which helps cut development time and costs compared to traditional paper based requirements that are then translated into a working system.
- Deliverable focused – Our efforts are focused on the end result, not how to get there (i.e. the tasks). This is reflected in how the project is planned and the freedom the developers have to structure their own work around producing the end result. This approach leads to higher quality work faster.
- Quality targeted – Prodigy employs reviews by experts outside the team as well as peer reviews to ensure quality results. The quality may not be immediately evident to the end user, which only sees
the interface to the system, but is reflected in reduced maintenance costs and greater “up times”. All aspects of the development are subject to review, from requirement definition and data models through to code, test plans and training materials.
Our Delivery Framework has evolved to combine some of the most effective principles of several methodologies into a single model that may be applied across any project type. It is a phase-based, milestone-driven, and iterative model. In particular, it combines the best principles of the waterfall and iterative or RAD models. It derives the benefits of predictability from the milestone based planning of the waterfall model, as well as the benefits of feedback and creativity from the RAD model.
Prodigy’s Development Delivery Framework has five standard phases: Envisioning; Planning; Developing; Stabilizing and Deploying:
- Project Initiation Phase (Envisioning) – This phase involves creating a business vision and defining the scope of work necessary to bring the vision to reality.
- Project Planning Phase (Planning) – This phase involves the planning, architecture and definition work required to establish how the vision and the requirements will be converted to reality. It is a critical step as many of the decisions made during this phase will influence all aspects of the development in the next phase.
- Project Stabilization Phase (Stabilization) – During this phase final integration, testing and user acceptance testing is completed based on the original testing strategy and project expectations set in the initial phase. At the same time considerable effort is spent on planning the transition into production including finalizing details of deployment and target configuration. Documentation is also finalized and training materials and events prepared and delivered.
- Project Execution Phase (Development) – In this phase the actual work of detailed design, coding and integration occurs. As discussed earlier, the methodology uses a series of planned, time-boxed releases to build the complete solution in an iterative but scheduled fashion. A series of releases are defined which progressively build up the required functionality of the system. Each build will be tested as appropriate and as defined in the test strategy developed during the planning phase. At the same time there will be a requirement for both quality and user review to ensure that any misunderstandings, errors or other deficiencies are discovered early.
- Project Closeout Phase (Deployment) – During this phase all the loose ends are tied off and the system is transferred to the new owners and operators.