DEVELOPMENT APPROACHES

A development approach is the means used to create and evolve the product, service, or result during the project life cycle. There are different development approaches, and different industries may use different terms to refer to development approaches. Three commonly used approaches are predictive, hybrid, and adaptive. As shown in Figure 2-7, these approaches are often viewed as a spectrum, from the predictive approach on one end of the spectrum, to the adaptive on the other end.

images

Figure 2-7. Development Approaches

  • Predictive approach. A predictive approach is useful when the project and product requirements can be defined, collected, and analyzed at the start of the project. This may also be referred to as a waterfall approach. This approach may also be used when there is a significant investment involved and a high level of risk that may require frequent reviews, change control mechanisms, and replanning between development phases. The scope, schedule, cost, resource needs, and risks can be well defined in the early phases of the project life cycle, and they are relatively stable. This development approach allows the project team to reduce the level of uncertainty early in the project and do much of the planning up front. Predictive approaches may use proof-of-concept developments to explore options, but the majority of the project work follows the plans that were developed near the start of the project. Many times, projects that use this approach have templates from previous, similar projects.

A project to develop a new community center might use a predictive approach for the construction of the grounds and facilities. The scope, schedule, cost, and resources would be determined up front, and changes would likely be minimal. The construction process would follow the plans and blueprints.

  • Hybrid approach. A hybrid development approach is a combination of adaptive and predictive approaches. This means that some elements from a predictive approach are used and some from an adaptive approach are used. This development approach is useful when there is uncertainty or risk around the requirements. Hybrid is also useful when deliverables can be modularized, or when there are deliverables that can be developed by different project teams. A hybrid approach is more adaptive than a predictive approach, but less so than a purely adaptive approach.Hybrid approaches often use an iterative or incremental development approach. An iterative approach is useful for clarifying requirements and investigating various options. An iterative approach may produce sufficient capability to be considered acceptable prior to the final iteration. An incremental approach is used to produce a deliverable throughout a series of iterations. Each iteration adds functionality within a predetermined time frame (a timebox). The deliverable contains the capability to be considered as completed only after the final iteration.The differences and interactions between iterative and incremental development are shown in Figure 2-8.An example of a hybrid approach could be using an adaptive approach to develop a product that has significant uncertainty associated with the requirements. However, the deployment of the product can be done using a predictive approach. Another example is a project with two main deliverables where one deliverable is developed using an adaptive approach and the other using a predictive approach.

images

Figure 2-8. Iterative and Incremental Development

As part of the community center, a project to establish senior services could be developed and deployed iteratively. For example, the first iteration could be a Meals on Wheels program. This could be followed by a transportation service, then group outings and events, caregiver relief, adult day care, and so forth. Each service would be complete on its own and could be deployed when it was available. Each additional service would improve and increase the senior services for the community.

A project to establish training for community action patrol volunteers could use an incremental approach. The training, comprised of basic training, logistics training, and patrol training, can be developed by different people. It can be developed at the same time in modules, or one module can be developed, feedback gathered, and then subsequent modules can be developed. However, the community action patrol training program will only be complete after all the modules are developed, integrated, and deployed.

  • Adaptive approach. Adaptive approaches are useful when requirements are subject to a high level of uncertainty and volatility and are likely to change throughout the project. A clear vision is established at the start of the project, and the initial known requirements are refined, detailed, changed, or replaced in accordance with user feedback, the environment, or unexpected events.Adaptive approaches use iterative and incremental approaches. However, on the far side of the adaptive methods, the iterations tend to get shorter and the product is more likely to evolve based on stakeholder feedback.While agility is a wide mindset that is broader than a development framework, agile approaches can be considered adaptive. Some agile approaches entail iterations that are 1 to 2 weeks in duration with a demonstration of the accomplishments at the end of each iteration. The project team is very engaged with the planning for each iteration. The project team will determine the scope they can achieve based on a prioritized backlog, estimate the work involved, and work collaboratively throughout the iteration to develop the scope.

The community center will need a website so community members can access information from their home computer, phone, or tablet. The high-level requirements, design, and page layouts can be defined up front. An initial set of information can be deployed on the website. User feedback, new services, and internal stakeholder needs would provide content for a backlog. The backlog information would be prioritized, and the web team would develop and deploy new content. As new requirements and new scope emerge, the estimates for the work would be developed, the work would be done, and once tested, it would be demonstrated for stakeholders. If approved, the work would be deployed to the website.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *