Defining and validating high level design metrics

You may have already garnered initial support via your pre-project planning efforts (part of portfolio management), but realistically at some point somebody is going to ask what are we going to get, how much is it going to cost, and how long is it going to take.You need to be able to provide reasonable, although potentially evolving, answers to these questions if you're going to get permission to work on the project.The basic ideas, shown in Figure 6, are that you should implement requirements in prioritized order and let your stakeholders evolve their requirements throughout the project as they learn.The diagram also indicates several advanced agile concepts.Figure 3 depicts the V Model for software development, basically a sophisticated form of the traditional waterfall model.With the V model the work on the left-hand side of the diagram is validated later in the lifecycle through corresponding activities later in the lifecycle (for example requirements are validated through acceptance testing, the architecture via integration testing, and so on).We like to say that agile developers are "quality infected" and in many ways that's true.

Figure 7: The Agile Model Driven Development (AMDD) Lifecycle.Finally, I just wanted to point out that the results depicted in Figure 4 aren't an anomaly.Various surveys over the years have found that people believed that agile teams were producing greater quality than traditional teams, providing better stakeholder satisfaction, and providing greater levels of productivity.First, it's really a stack of work items and not just functional requirements (defect reports also appear on the stack as you can see in Figure 2, more on this later, and you also need to plan for work such as reviewing artifacts from other teams and taking vacations). Figure 7 depicts the project lifecycle of As you see in Figure 7, during Inception agilists will do some initial requirements modeling with their stakeholders to identify the initial, albeit high-level, requirements for the system.Second, to reduce the risks associated with complex work items, not all work items are created equal after all, you will want to consider modeling a bit ahead whenever a complex work item is an iteration or two away. The goal of initial requirements envisioning is to do just enough modeling to identify the scope of the system and to produce the initial stack of requirements which form the basis of your prioritized work item list (it just doesn't magically appear one day, after all).

Defining and validating high level design metrics