The term Iterative and Incremental amelioration (Iid) describes a class of methodologies for software amelioration where the ideas grows incrementally through a series of unblemished amelioration cycles. Agile software development methods are a group of definite iterative methodologies that combine relatively short iterations with evolutionary refinement of the requirements, plans and targets over each subsequent iteration.
In our experience, agile and iterative methodologies are more dependable and lower risk than using more primary 'waterfall' style methods for software development. We have also found that various Agile software methods such as extreme Programming (Xp), Scrum, Unified Process (Up) and Evo supply important and useful paradigms for dependable delivery of software amelioration projects.
Backup Strategy
We believe that one potential infirmity of these methods is the trust on regular ongoing testing between iterations to ensure software quality, without providing definite processes or tools to define or facilitate this testing. We have successfully utilised the Six Sigma question solving methodology Dmaic (Define, Measure, Analyse, improve and Control) within each iteration to improve the reliability of the software amelioration process. The key to the success of this methodology is its focus on using data-driven tools to recognize what is to be changed and then to monitor the actual impact of changes in a feedback loop.
Most software project failures are the consequent of enterprise needs not being correctly understood or by overly optimistic software amelioration estimates. These errors lead to long delays and large cost overruns. The primary mechanism for ensuring that requirements are understood and that estimates are precise is to engage in lengthy up-front analysis, create and planning. Unfortunately this approach is inflexible and is inappropriate for the majority of real-world projects. Agile methods use an iterative approach to ensure that flexibility is an potential component of the project any way this can lead to a lack of clarity as to either the deliverable is tracking to goal. By applying Six Sigma concepts of defining, quantifying and measuring key delivery factors we can monitor extensive delivery and capability of the resulting software without resorting to "analysis paralysis" in the early stages.
The definite parameters to be measured and analysed will be project dependent and should relate directly to the extreme end-user functionality of the software being developed. In addition, we have found that some useful key indicators for software capability include measurements of numbers of defects found in a test cycle, the ration of rework per iteration (the whole of requirements which need to be re-implemented during one cycle) and the whole of new features which are logged after one cycle.
We believe that Six Sigma provides a framework and effective tools that reserve dependable Agile software amelioration project delivery. Based on our experience, we strongly suggest combining Six Sigma with Agile and Iterative software amelioration methodologies.
Six Sigma and Agile Software amelioration
No comments:
Post a Comment