Another use of ISO9126 is to provide a basis for determining the most appropriate development method to use. We oft hear of the Agile vrs CMMI debate, but the need to actually reconcile them has been addressed only recently. It was historically one or the other and one camp would build a strawman of the other to tear down.
- What sort of environment do we have?
- How interactive are our customers?
- How stable are our requirements?
- What goal are we trying to achieve by using Agile/CMMI (bland “to improve” statements just don’t cut it)
- What is the cultural fit?
By looking at the development objectives we can use both Agile AND CMMI approaches.
- What problem are we trying to solve by implementing Agile/CMMI?
- What are the symptoms we want to address?
- What changes do we expect to achieve with the improvement
- What unintended effects will we probably encounter?
- What method/approach are we taking to determine the most appropriate characteristics of each method
By determining the characteristics of what each method is required will enable you to select the best of each – rather than a gut feel. By making the characteristics explicit you can better determine to most appropriate methods.
Look at the organisational characteristics of your environment:
- startup – customers unknown, features still being determined
- stable environment – but a new type of project
- stable environment, stable requirements, but changes in customer needs (not just functional requirements)
Where are the majority of your projects? Do they need to move from one region to another? How will this impact existing projects? What product strategy do we have and how can we use this in developing customers and our organisational environment. Each organisation will have different characteristics for this profile map, but by determining the highest 2-3 priorities, you can leapfrog the problem of which one to use.