Wednesday, January 06, 2010

Selecting the best Software Development Methodology

Understanding my research interest makes me to write and simplify ideas and concepts in my research areas.

One interesting area about software process is software development process.

Here is my note on selecting the best software development methodology. I am sorry i can not give complete reference in my citation because this is my progress report and i hope that i can publish it one day.


Let's start .....


Software development process, “a framework for applying software engineering practices(Ramsin & Paige 2008), can be classified into plan-driven or traditional software development and agile software development. The former (Nerur et al. 2005a) (Mikael Lindvall et al. 2002) (Nerur et al. 2005a)(Salo & Abrahamsson 2006) emphasizes stability, repeatability and predictability, a defined incremental process, extensive documentation, up-front system architecture, detailed plans, risk management, verification and validation. In contrast, the latter process (Dybå & Dingsøyr 2008) (Mikael Lindvall et al. 2002) (Nerur et al. 2005b) (Salo & Abrahamsson 2006) embraces and responds to changing environment and changes in user requirements. The initial success of software project is determined by selecting the correct software development process.


There is no single software development (Brooks 1987) that can solve all software projects. Selecting software development methodology can use (Cockburn 2000) selection framework based on four underlying principles and two other factors affecting what methodology is appropriate to be used in software project. Combined with mapping environment and organisation of the project to agile and plan-driven home ground (B. Boehm & R. Turner 2003) (Barry Boehm & Richard Turner 2004) makes selection of software development methodology adaptive to its internal and external factors to address software project risk.


In conclusion, recent research and reports state (Fuggetta 2000) that software development is a complex process because it is a joint, sophisticated and creative work so me wust consider people, organization, culture, technology, economic factors and procedures used in software development process (Fuggetta 2000).