Software Development Lifecycles
Balancing increasingly complex requirements for new software applications with the constraints of costs, time and resources has made the use of software development lifecycles invaluable. The reliance on software development methodologies is increasing as shortages of programming expertise are leading to many companies relying on virtual project development teams (Batra, Xia, VanderMeer, Dutta, 2010). Virtual teams and the new reality of software development being global in scope are strong catalysts for the continued adoption and best practices of software development lifecycles (Cecil, 2004). The intent of this analysis is to evaluate the advantages and disadvantages of three dominant software development lifecycle methodologies including the Iterative Enhancement Life Cycle Model, the Prototyping Software Life Cycle Model and the Waterfall Software Development Lifecycle.
Advantages and Disadvantages by Software Development Lifecycles
Beginning with the Iterative Enhancement Life Cycle Model, which is designed to overcome the structural and time-based limitations of the Waterfall Model while integrating the benefits of Agile development, this model stresses continual iterations of improvement in code. As this technique is heavily based on Agile-based development methodologies and standards, it is well-suited for Web-based application development in Java, J2EE, C+, C++ and Python programming languages. Advantages of the Iterative Enhancement Life Cycle Model include rapid iteration of system coding modules, greater control of software quality assurance, and greater flexibility in responding to customers specific requirements in the code (Carey, 1990). The disadvantages of this specific software development lifecycle are the level of expertise required to implement it as successfully as possible; the level of cross-functional discipline necessary for the teams using it to gain the greatest value from it; and the ability to control scope-creep with each iteration of software development.
In larger organizations this approach will also lead to more potential conflict to ensure each specific area of software code is well integrated into the final application.
The Prototyping Software Life Cycle Model concentrates on creating an initial prototype as quickly as possible then continually improving it with reviews and quality assurance analysis over time. The initial prototype built using this approach is based on all known customer requirements and requests, then continually fine-tuned to evolving needs and requirements with each successive iteration (Carey, 1990). The goal of these iterations in this specific software development lifecycle is to eventually create a prototype that the customer will be able to evaluate and determine if the completed application will meet their needs or not (Carey, 1990). This approach has accelerated rapidly with Web-based development tools that can replicate actual system performance, complete with system integration performance simulations and measures of overall system performance.
The advantages and disadvantages of the Prototyping Software Life Cycle Model make this approach especially valuable for creating social media applications where there will be intensive user interaction with the applications once released. The advantages of this specific software development lifecycle.