StudentShare
Contact Us
Sign In / Sign Up for FREE
Search
Go to advanced search...
Free

Agile Software Development - Essay Example

Cite this document
Summary
This paper explores agile software development including its evolution, values, principles, and application of its methodologies in software development. The agile software development process unites the various methodologies of software development into common goals, vision, and values…
Download full paper File format: .doc, available for editing
GRAB THE BEST PAPER97.6% of users find it useful
Agile Software Development
Read Text Preview

Extract of sample "Agile Software Development"

Agile Development Table of Contents Table of Contents Introduction Defining Agile Development 2 Evolution of Agile Development 3 Values of Agile Manifesto 4 Characteristics of Agile Development 4 Principles of Agile Development 6 Application of Agile Software Development Methodologies 9 Conclusion 10 References 10 Introduction Agile software development is considered the most effective approach in the development of software systems for individuals and organization. This approach applies the iterative and incremental approaches within its methodologies to ensure high quality, functional and quickly delivered software. This paper gives a critical analysis and discussion of agile software development including its evolution, values, principles and application of its methodologies in software development. Defining Agile Development Agile development is simply defined as a unique way in which IT projects and management teams are organized and managed for effective and efficient software development (Barlow, et al. 2010, p. 25). Agile software development is a combination of various methodologies in software development which are based in incremental and iterative approaches in software development. These approaches involve software development process which is characterized by collaboration of teams in the evolution of software from the requirements and the attainment of a solution to the problem. The teams within the agile software development process are usually, cross functional and self organizing (Clutterbuck, 2009, p. 107). Agile software development serves to promote adaptability in software planning, efficiency in the evolution of software during its development and effectiveness and speed in delivery of complete and functional software (Ionel, 2009, p. 381). The iterative approach in agile software development is the most significant aspect of the process as it prepares organization for a flexible and often rapid process of change so that their response to the new software is also fast. The agile software development process provides a framework in which the whole software development process and cycle is designed in a manner which makes it as interactive as possible (De Cesare, et al. 2010, p. 126). Extreme Programming (XP), Dynamic Systems Development Method (DSDM), Feature-Driven Development (FDD), Scrum, Lean Development and Crystal are the most common agile software development methodologies. The agile software development process unites the various methodologies of software development into common goals, vision and values. Evolution of Agile Development In 2001 a group of IT and software development experts came together to find a solution to the frequent failure of the traditional software development projects which was caused by poor management of the processes and activities of software development within organizations, companies and public agencies. The group decided to share ideas so that they would come up with a better approach to software development. This group came up with the Agile Manifesto from which the agile software development concept is derived. The Agile Manifesto describes core values that the group who proposed it considered the most significant and relevant in the contemporary software development processes and management (Lee and Xia, 2010, p. 87). Agile software development combines the various development methodologies and approaches in an iterative and developmental process which involves continuous feedback which promotes the development of a refined software system and its efficient delivery to the customer (Mishra and Mishra, 2011, p. 54). The processes of the agile software development include planning, testing, integration and evolution of the software in a continuous process. The evolution of the agile software development processes from the traditional approaches is demonstrated by the fact that the agile software development processes are lightweight and thus adaptable and thus efficiency and effectiveness in software system development (Batra, 2009, p. 143). Moreover the agile software development is an evolution of the traditional approaches because it focuses on collaboration in decision making among individuals within teams and thus empowering them to efficiently develop and deliver software systems. Values of Agile Manifesto The Agile manifesto values individuals within projects and their interactions more than the tools and processes which are involved (Aken, 2008, p. 317). In addition, the production of a working or functional software was valued by the group of experts rather than the comprehensive documentation which characterized traditional software development. Moreover, the Agile Manifesto put more value to the collaboration of customers with developers as compared to negotiation of the contract. Finally, the manifesto values the process of responding to change rather than strictly following a software development plan. Characteristics of Agile Development An iterative and incremental approach within the agile software development process is among its major characteristics which differentiate it with the traditional approaches of developing software (Stacey and Nandhakumar, 2008, p. 146). The software development projects in agile development are delivered by developers in small pieces of byte capacity. Unlike the traditional approaches which developed software in analysis, development and testing simplified life cycle, agile software development is more detailed with each step of the life cycle delivering one feature at a time. The advantages of iterative approach of agile software development make it more effective than the traditional approaches. There is a reduction of risk in iterative approach of software development (Barlow, et al. 2010, p. 30). Moreover, the value of the software is increased because specific benefits are delivered early in the development process. Agility or flexibility of the agile software development makes it more suitable in developing software packages as compared to the traditional approaches. Moreover, the iterative approach of software development enables the managers of the projects to effectively manage the costs associated with the software development (Rowlands and Seamons, 2009, p. 13). Through the application of the agile software development processes, clarifications with the end user are possible with emerging requirements being included in the software package. As a result the end product is delivered with the right specifications. Moreover, the agile software development ensures that the software system is iterative, intuitive and user friendly (Clutterbuck, 2009, p. 109). It is through the user representatives that software development teams are empowered to develop software packages and systems which fit the user needs in an efficient manner and thus delivery of the right product which serves the intended purpose. However it is argued that empowerment of software development teams is achieved through motivational approaches such as good leadership, compensation and appropriate working environments (Procter, et al., 2011, p. 197). Integration of software testing throughout its development cycle is a characteristic of agile software development which makes this approach unique from the traditional approaches of software development in which testing was a distinct process (Miller, 2009, p. 14). Because the testing phase is not separated from other processes of software development, agile methodologies produce high quality software which is delivered with tested and workable functionality. The Extreme Programming (XP) agile software development methodology for example recommends a software development which is test-driven. Because of this, XP methodology of software development is characterized by writing of software tests before the actual software is written (Procter, et al., 2011, p. 197). The testing process is facilitated by the testing developers who specialize in software testing and who act to ensure that all features of software are tested for functionality before the whole software is written and delivered to the owners or consumers who comprise of the end users of the software system. Principles of Agile Development The various methodologies within the agile software development share basic principles which characterize them and thus make these methodologies unique from the traditional waterfall methods and approaches of developing software systems. These principles have been discussed in the following sections with a comparative analysis of various studies and researches so that their contribution into the effectiveness of agile software development is determined. Active involvement of the user in the software development is an important principle of the agile software development process (Miller, 2009, p. 13). It is challenging to involve users within the software development projects but agile software development methodologies have endeavored to involve end users especially when they are external consumers or customers of the software package. The effectiveness of agile software development is demonstrated by its collaboration with the end user so that the software development understands the user requirements at a high level (Nerur, Mahapatra and Mangalaraj, 2005, p. 73). This therefore ensures that the developers of software prioritize on the user requirements during the development process. The agile software development applies the principle of empowerment to the project teams (Stacey and Nandhakumar, 2008, p. 143). The empowerment of the software devilment team is made possible through ensuring that its composition is adequate including decision makers who are entitled to making right choices for the success of the project. The development team is also empowered by inclusion of end user representatives within the team so that the requirements of the users are clarified and any modifications understood by the team members. Proper time management is an important principle in the application of agile software development methodologies in software system development (Lee and Xia, 2010, p. 89). Time management makes the agile software development process unique and advantageous as compared to the traditional approaches of developing software packages. The traditional methods valued capturing all requirements regardless of the time they took based on the premise that it is more expensive to make modifications to the software later on. On the other hand, the revolutionary agile software development processes value the fact that the requirements of end users are destined to evolve and new requirements often emerge (Rubin and Rubin, 2011, p. 118). Because of this premise, appropriate timelines are set for the development stages of software so that a lot of time is not consumed on requirements which are likely to evolve into new requirements from the end user. The premise that agile requirements are not sufficient forms an important principle within the agile software development process because developers do not spend time on requirements which are not considered to be part of the final software package or product (Mishra and Mishra, 2011, p. 549). The agile requirements are thus considered as the minimum requirements which act to propel the process of development and software testing with maximum efficiency (Nerur, Mahapatra and Mangalaraj, 2005, p. 76). This principle illustrates the flexibility that the agile software development process has over the traditional approaches in developing software systems. On the other hand, it is asserted that the agile software development is ineffective by the fact that they have a less elaborate picture of the overall design and functionality of the product when its development is being initiated. Fast delivery of products is a principle with which the agile technologies operate. However, the speed of delivery is regulated in a manner that it does not compromise on the quality of the software packages developed (Batra, 2009, p. 146). The agile software projects and programs are designed in a way that ensures that the products are provided to the consumers without delay and without any fault. Scrum agile software development methodology for example breaks the project into small sprints which facilitates the speed of development and delivery of the software (Aken, 2008, p. 313). Fast delivery within agile development is characterized by regular delivery of products to the consumers and thus enhancing their satisfaction especially when the fast delivery is combined with non faulty software packages. Through proper management of the agile software projects, the needs of the consumers are determined and predictability of the most appropriate delivery speed made possible. In return, the delivery of agile development methodologies is much fast and regular as compared to the traditional approaches of software development. Products should be complete at the end of the development in accordance to the principle of agile software development approaches and methodologies (Lee and Xia, 2010, p. 87). For example at the end of a sprint, Scrum agile development methodology ensures that a product is complete and done which makes it ready for use by the consumer. Therefore the development of software by the application of agile methodologies ensures that when a product is pronounced as done, it has been adequately tested and styled. Additionally, the developed software must be accepted by the users or owners before it is pronounced as complete or done (Rubin and Rubin, 2011, p. 117). To ensure that software is complete at the end of a sprint, the developers ascertain that one feature is developed at a time and that the next feature of software is started only after the completion of the previous feature. The most significant principle of the agile software development methodologies is described to be the collaboration among the developers, team members and all other stakeholders such as the end users, customers and the management teams of the software system development projects (Salo and Abrahamsson, 2008, p. 58). Through the collaboration of the software development stakeholders, the development process emphasizes that software changes are normal and acceptable software development processes. As a result, the documentation and requirements for specific software are kept as lightweight activities. The stakeholders of the development of software thus collaborate to ensure that they interact in making appropriate changes, modifications and improvements to the software so that requirements are achieved in the most accurate, effective and efficient manner (De Cesare, et al. 2010, p. 127). The collaboration process in the software development process includes proper communication among the developers themselves and with the management, end users and owners of the software under development. Application of Agile Software Development Methodologies The application of the various methodologies of agile software development approach aims at upholding the Agile Manifesto which stipulates the most valuable aspects of software development process (Salo and Abrahamsson, 2008, p. 59). DSMD is a popular software development methodology within the UK which is one of the original agile development approaches. It is applicable in the development of software systems such as information systems for organizations with the application of agile software development methodologies. Scrum which is another common agile development methodology which is applicable in software development especially in a team based software development scenario. The Scrum methodology also applies the agile principles in ensuring that there is adequate collaboration among members of the team efficient, effective software production is guaranteed for timely delivery of a functional and high quality product to the owners or end users (Ionel, 2009, p. 383). Extreme Programming is described as a radical agile software development methodology because is applicable in cases where a lot of software engineering processes are involved in the development of software with many features (Miller, 2009, p. 15). The application of Extreme Engineering process ensures that software engineering includes elaborate software testing so that a quality and functional end product is delivered to the end users within the set timelines. XP and Scrum are easily implemented as compared to DSMD and thus are applied in the development of software which is required in a short period of time by the end users. However it is important to note that regardless of the notable differences of the agile software methodologies, their implementation in software development follows the Agile Manifesto and principles in software development and as a result, they have found wide application within software development companies. Conclusion Agile software development which is a set of methodologies for affective, efficient and iterative software development follows values of the Agile Manifesto. The principles that are applied in the agile software development include involvement of users, team empowerment, evolving requirements, iterative and incremental release of software, frequent product delivery, testing and collaborative development of software systems and packages. These principles as discussed in the above sectional have enabled the application of agile methodologies such as Extreme Programming, Scrum and DSMD to be more effective in software development as compared to the traditional approaches. References Aken, A. (2008). Chunk: An Agile Approach to the Software Development Life Cycle. Journal of Internet Commerce, 7(3), 313-338 Barlow, J. B., et al. (2010). Overview and Guidance on Agile Development in Large Organizations. Communications of AIS, 2010(29), 25-44. Batra, D. (2009). Modified Agile Practices for Outsourced Software Projects. Communications of the ACM, 52(9), 143-148. Clutterbuck, P. (2009). A Risk Management Investigation of SME Adoption of Agile Method Information System Development. Proceedings of the European Conference on Information Management and Evaluation, 107-115 De Cesare, S., et al. (2010). Examining Perceptions of Agility in Software Development Practice. Communications of the ACM, 53(6), 126-130 Ionel, N. (2009). Agile Software Development Methodologies: An Overview of the Current State of Research. Annals of the University Of Oradea, Economic Science Series, 18(4), 381-385. Lee, G., and Xia, W. (2010). Toward Agile: An Integrated Analysis of Quantitative and Qualitative Field Data on Software Development Agility. MIS Quarterly, 34(1), 87-114 Mishra, D., and Mishra, A. (2011). Complex software project development: agile methods adoption. Journal of Software Maintenance and Evolution: Research and Practice, 23(8), 549-564 Miller, G. (2009). Agile Software Development for the Entire Project. Journal of the Quality Assurance Institute, 23(1), 13-16. Nerur, S., Mahapatra, R., and Mangalaraj, G. (2005). Challenges of Migrating to Agile Methodologies. Communications of the ACM, 48(5), 73-78 Procter, R., et al. (2011). Agile Project Management: A Case Study of a Virtual Research Environment Development Project. Computer Supported Cooperative Work: The Journal of Collaborative Computing, 20(3), 197-225 Rubin, E., and Rubin, H. (2011). Supporting agile software development through active documentation. Requirements Engineering, 16(2), 117-132 Rowlands, T., and Seamons, O. (2009). A Case Study of SME Web Application Development Effectiveness via Agile Methods. Electronic Journal of Information Systems Evaluation, 12(1), 13-26. Stacey, P., and Nandhakumar, J. (2008). Opening Up to Agile Games Development. Communications of the ACM, 51(12), 143-146 Salo, O. O., and Abrahamsson, P. (2008). Agile methods in European embedded software development organizations: a survey on the actual use and usefulness of Extreme Programming and Scrum. IET Software, 2(1), 58-64 Read More
Cite this document
  • APA
  • MLA
  • CHICAGO
(“Agile Software Development Essay Example | Topics and Well Written Essays - 2500 words”, n.d.)
Retrieved from https://studentshare.org/information-technology/1395632-agile-software-development
(Agile Software Development Essay Example | Topics and Well Written Essays - 2500 Words)
https://studentshare.org/information-technology/1395632-agile-software-development.
“Agile Software Development Essay Example | Topics and Well Written Essays - 2500 Words”, n.d. https://studentshare.org/information-technology/1395632-agile-software-development.
  • Cited: 0 times

CHECK THESE SAMPLES OF Agile Software Development

Agile Software Development Methodologies

This paper presents an overview of the Agile Software Development methodologies.... he basic purpose of this research is to show that 'Agile Software Development methodologies' are a superior design method that is why Scrum and XP rapidly emerging frameworks … Traditional techniques to software development do not allow software developers to change requirements or design during the software development life cycle.... Therefore, in order to deal with this issue of traditional project development methodology, a new software development methodology was introduced that is known as Agile Software Development methodology....
3 Pages (750 words) Essay

Overview of Agile Software Development

The paper "Overview of Agile Software Development" discusses that without a doubt, Agile Software Development methodologies have been proved to be successful for the completion of small size teams and limited size projects.... hellip; It is believed that Agile Software Development methodologies are not suitable for large size and critical projects.... In this scenario, Agile Software Development methodologies have become a trend in quickly changing software industry....
17 Pages (4250 words) Term Paper

Distributed agile software development

Additionally, the use of agile practices for distributed development is increasingly gaining momentum in various Distributed Agile Software Development Distribution of software development has in the recent past increasingly become common with the main aim being to save the costs of production and a reduction of the time to market.... We can alternatively term Agile Software Development as a group of methods of software development based on both iterative and incremental developments....
2 Pages (500 words) Essay

Agile Software Development Process

An author of the essay "Agile Software Development Process" outlines that the main goal of Agile Software Development is to develop client's approved parts as the project proceeds other than opposing the delivery of huge application at the end of the project.... hellip; Agile Software Development process is a creative process' methodology that applies a level of pragmatism and anticipates the need for flexibility in the delivery of finished goods....
6 Pages (1500 words) Coursework
sponsored ads
We use cookies to create the best experience for you. Keep on browsing if you are OK with that, or find out how to manage cookies.
Contact Us