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

Agile Software Development - Research Paper Example

Cite this document
Summary
Agile accelerates the development process while maintaining the flexibility of adjusting to changing requirements through iterative development (Dingsoyr et al., 2010, p. 33). This report gives an overview of agile method of software development…
Download full paper File format: .doc, available for editing
GRAB THE BEST PAPER93.2% of users find it useful
Agile Software Development
Read Text Preview

Extract of sample "Agile Software Development"

? Agile Software Development Table of Contents Introduction 3 2.Agile vs. Waterfall 3 3.Agile vs. Rapid Application Development 6 4.Manifesto and Principles for Agile 7 5.Roles Involved in Agile 8 6.Agile Methodologies 9 4.1. SCRUM 9 4.2. Extreme Programming (XP) 10 7.Advantages of Agile 10 8.Disadvantages of Agile 12 9.Future of Agile 13 10.Conclusion 13 11.References 14 1. Introduction Agile software development represents a set of practice-based software development methodologies intended to design and document a software system. It is based on a collection values, principles and strategies that are light-weight by nature and yet produce effective software systems. Agile accelerates the development process while maintaining the flexibility of adjusting to changing requirements through iterative development (Dingsoyr et al., 2010, p. 33). This report gives an overview of agile method of software development. It presents a brief technical comparison with the traditional, non-iterative waterfall model, the intent and guiding principles for agile methods, the people involved its advantages and disadvantages, two common agile methodologies and lastly the future of agile. 2. Agile vs. Waterfall In contrast to the traditional non-incremental models such as waterfall, agile does not have distinct phases of capturing requirements, forming architecture and design, development, testing and incorporating feedback as shown in Figure 1. Figure 1 Waterfall Model In agile all these phases are meshed up as can be seen in Figure 2. The intent is to develop a feature set in a way the customer wants. A release of the system is built on the initial requirements with respect to the features set provided by the customer, the miniature system is then tested by the customer, requirements are revised and readjusted into the release and then the new system release based on some other remaining features is built. Figure 2 Agile Software Development Hence, there is only one similarity present between the traditional non-iterative waterfall model and agile model which is with regards to the testing phase. Agile model has a distinct testing phase as well which is a common process in all of the iterations. Generally, the testing phase comprises of two categories of testing; unit testing done from developer’s perspective and acceptance testing carried out from customer’s perspective. The difference lies in the fact that in agile, the developers and the customers are in close communication with each other while in waterfall, the case is different. In waterfall, the testing is done as per the set of requirements and design details initially put together in form of documents in the initial phases of the software cycle. Customer involvement is limited to merely the requirements capturing phase. Any change of requirements on part of customer is not guaranteed to be incorporated in the system. Therefore, agile provides a worthwhile alternative to the heavy-weight document-driven software development methodologies such as waterfall. 3. Agile vs. Rapid Application Development Agile is an incremental model similar to Rapid application development (RAD) model (Linger & Fisher, 2004, p. 180). Figure 3 shows the RAD process. In RAD, initial set of requirements are used to design a prototype for customers to test. The prototype helps customers in realizing the system requirements as mostly the customers are unaware of what they want. Figure 3 Rapid Application Development In agile, the underlying model is the same as RAD except that the delivery is made in form of releases that contain a subset of features. Unlike prototypes in RAD, these releases are supposed to be complete miniature software fulfilling a portion of the feature set. The customer defines a set of features and provides a brief detail of how the system must offer these features. A release based on a subset of the features is built within a specified interval and is tested for acceptance by the customer. Any changes requested are adjusted through constant cooperation with the customer. In the next interval, some of the remaining features are selected and built as a new release and subjected to acceptance testing again. Thus, the software is built in increments where each increment delivers a subset of features. 4. Manifesto and Principles for Agile The manifesto behind agile development comprises of a list of priorities that are different from the traditional software development methods (Kent et al, 2001). In agile, a higher priority is given to: Individuals and their interactions over the processes and involved tools A working software product over the comprehensive and extensive documentation Collaboration of customer over the negotiation of contract Responding and adjusting the changes over following a predefined plan The 12 principles (Kent et al, 2001) behind this Agile Manifesto are: 1. The highest priority rests with satisfying a customer by early and continuous deliveries of software that is useful to the customer. 2. Any changes in the requirements are welcomed, no matter if the release has passed a certain point it its development. 3. Working software is to be delivered within short intervals i.e. the span of intervals should be weeks rather than months. 4. Close daily cooperation and collaboration between the business personnel and the developers must be facilitated during the course of the project. 5. The motivated individuals are selected for building a project. They are provided with a supporting environment and are trusted in the way they choose to produce the output. 6. Face-to-face communication is employed as a means of sharing information to and amongst the development team. 7. The working software is set as the primary measure of assessing system progress. 8. User, developers and sponsors are able to keep pace due the sustainable development offered by the agile processes. 9. Agility is enhanced through maintenance of a constant check on the technical excellence and high quality design. 10. Simplest of ways are used in achieving the required features. 11. Self-organizing teams are formulated to achieve best architectures, requirements, and designs. 12. Team reflects on regular intervals on ways to increase effectiveness and then tunes and adapts the required behavior. 5. Roles Involved in Agile The roles involved in agile software development are the product owners or customer representatives, the project managers and the agile team comprising of architects, analysts, designers, developers, quality assurance, testers and technical writers. The team is generally kept small and preferable collocated. 6. Agile Methodologies Agile methodologies are characterized by four attributes (Abrahamsson et al., 2003): Incremental: has rapid development cycles that generate small releases of software Cooperative: ensure close interaction between customers and developers Straightforward: the methodology itself is simple and easy to learn and modify and is well documented Adaptive: have the ability to compensate and adapt to last minute alterations The two most widely used agile methodologies are SCRUM and XP. The remaining section gives an overview of both. 4.1. SCRUM SCRUM is an iterative development process that is used with the agile software development. The roles within Scrum are the ScrumMaster (i.e. the team Manager), the Product Owner (i.e. the customer) and the Team. Within every sprint, the team builds a useful increment of the potential shippable software. The features that are meant to be delivered within every sprint are picked up from the product’s backlog. As to which features from the backlog are sent to the sprint is decided within the sprint planning meeting. Within the meeting, the team estimates how many of the features they’d be able to complete within the upcoming sprint. During the course of a sprint the backlog cannot be changed. 4.2. Extreme Programming (XP) XP is an agile methodology that aims to develop successful software despite a requirement set that is vague and is subjected to constant change. It comprises of a collection of well recognized and accepted software engineering practices covering daily interactions, working on software, testing, etc. except that in XP all these individual practices are lined up together to work in conjunction with each other, providing an environment that is more responsive to the needs of customers i.e. agile, thus delivering high quality software. Some characteristics of XP include short iterations with small releases promoting rapid feedback model, high customer involvement, constant coordination and communication between the involved people, constant refactoring, constant integration and testing, pair programming and collective ownership of code. 7. Advantages of Agile Agile software development promotes a project management process wherein frequent inspections and adaptations are encouraged. It promoted a leadership philosophy wherein self-organization, team work, and accountability are encouraged. It supports a set of software engineering best practices that make it possible rapid delivery of high-quality software. It encourages a business approach that aids in aligning the development efforts with the needs of customers and goals of the company. From amongst the many advantages, agile software development provides, 1. Early Revenue: As agile follows an iterative development process, the features are also delivered in increments. This way a few features can be benefitted early in the development process. 2. Early Marketing: The leading positions in the market are generally taken by the ones that are first in marketing a product. Agile allows for early marketing due to its incremental approach. The philosophy of agile supports the idea of beta releases. 3. Quality: Since agile development is deeply integrated with testing, regular inspections of the product is provided. The owner can provide feedback signifying quality. 4. Visibility: Since all the people involved work together, the progress of the product is very visible to all the major stakeholders. 5. Risk Management: The small incremental releases accessible to owners and development team make it possible to identify any issues early in the development cycle and be resolved. 6. Flexibility: The model supports the integration of changing requirements into a release and therefore provides flexibility. The adjustments in a release are made within the allocated timescales. 7. Cost Control: Owing to preset timescales and the changing requirements, a fixed budged is ensured. The features and scope may vary but not the cost. 8. Business Engagement/Customer Satisfaction: The high visibility and flexibility, and active involvement of users ensure customer satisfaction and boosts business engagement. 9. Right Product: Besides making adjustments owing to the changing requirements, the product built in the end is what the customer expects to be delivered. 10. More Enjoyable: The active involvement, collaboration and cooperation of users promote higher visibility, discussions, and unanimous decisions and thus improve performance. 8. Disadvantages of Agile Agile development has a few of its own issues: 1. Too much user involvement: Active and continuous involvement of users is a requirement for the agile development method. The customer or the representative is expected to be committed throughout the duration of the project. This could pose problems in case the customer is absent from the scene. 2. Incomplete Requirements: As the model supports incorporating the shifting requirements, it may happen that the scope creeps. The development cost set for the project may not remain justified. 3. Lack of documentation: The requirements may keep on changing and the system would continue to evolve. Since in agile development, the focus is more on the product than the documentation, a problem would be created in case a team member leaves. The new comer would have a difficult time understanding the features and progress to make worthwhile progress. 4. Constant Testing: Since the testing step is integrated throughout the agile process, considerable amount of resources and time is consumed in it. 5. Constant User Acceptance Testing: This involvement of customers throughout the project could be rather difficult on part of the customer. 6. Stressful for Developers: As the feature has to be completely developed in a release, the agile process can become a stressful task for the developers. 9. Future of Agile Agile software development is useful for small scale projects with small scopes. In the present day, the use of smart phones is constantly increasing worldwide. With the use of smart phones the need of customized smart applications is also increasing. Owing to that, the trend in software development has started to shift towards agile development which not only provides rapid delivery but also is a step ahead in providing customer satisfaction. So the future belongs to the smart phones and so the agile method of software development is secure. 10. Conclusion Agile is an incremental, iterative and collaborative approach, with no distinct stages of the development lifecycle. The analysis, design and testing are integrated parts of the development process, being completed on a feature by feature basis and leading to frequent releases of the product. The success of software is determined by the satisfaction level of the customer. According to a study, customer satisfaction increases by increasing customer involvement (Hoch, 2000, p. 112). Agile software development method promotes constant customer involvement therefore is focused on achieving success through satisfied customers. 11. References Hoch, D.J. (2000). Secrets of software success: management insights from 100 software firms around the world. Harvard Business Press Dingsoyr, T., Dyba, T. & Moe, N.B. (2010). Agile Software Development: Current Research and Future Directions. Springer Abrahamsson, P., Warsta, J., Siponen, M. and Ronkainen, J. (2003). New directions on agile methods: A comparative analysis. In proceedings of the 25th International Conference on Software Engineering, IEEE Computer Society, pp. 244-254. Washington DC. Kent, B. et al. (2001). Manifesto for Agile Software Development. Agile Alliance. Available at http://agilemanifesto.org/ Linger, H. & Fisher, J. (2004). Constructing the infrastructure for the knowledge economy: methods and tools, theory and structure. Springer Read More
Cite this document
  • APA
  • MLA
  • CHICAGO
(“Agile Software Development Research Paper Example | Topics and Well Written Essays - 2000 words”, n.d.)
Retrieved de https://studentshare.org/information-technology/1391861-agile-software-development
(Agile Software Development Research Paper Example | Topics and Well Written Essays - 2000 Words)
https://studentshare.org/information-technology/1391861-agile-software-development.
“Agile Software Development Research Paper Example | Topics and Well Written Essays - 2000 Words”, n.d. https://studentshare.org/information-technology/1391861-agile-software-development.
  • Cited: 0 times

CHECK THESE SAMPLES OF Agile Software Development

Web-Based Agile Software Development

This report "Web-Based Agile Software Development" presents EasyBuys that can change to an agile approach.... The agile approach will therefore ensure that the EasyBuys responds quickly to the changes, even when it is late in the software development effort.... Agile approaches have emerged so the changes needed for development may be adopted quickly and with ease.... The main idea behind the agile approaches is to release early the working software via responding quickly to the alterations in specifications through the use of code refactoring, collaborative techniques, customer involvement, and test-driven development....
8 Pages (2000 words) Report

The Agile Software Development

Background The Agile Software Development represents a major exit from the traditional method to software engineering.... The proposition of Takeuchi and Nonaka (1986) concerning Agile Software Development involved encouraging the proximity of team members and verbal communication to create a robust quality framework.... The proposition of Takeuchi and Nonaka in promoting Agile Software Development were based on: 1.... These are the main components and elements of Agile Software Development....
36 Pages (9000 words) Dissertation

The Role of Stand Up Meetings in Agile Software Development

This paper ''The Role of Stand Up Meetings in Agile Software Development '' tells that This chapter consists of a discussion of the findings of the study.... nbsp;… According to Kathleen (2007), Agile Software Development Methods are highly iterative and incremental thereby providing a suitable platform for both stakeholders and developers to communicate and working together with a broader understanding of concepts and processes.... Agile Software Development is particularly very iterative and participative and requires excellent communication, consultations, and interaction between the members....
9 Pages (2250 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

Preventing Defects in Agile Software Development

The paper "Preventing Defects in Agile Software Development" suggests that the adoption of defective preventive measures not only works to better the project quality but serves as a valuable investment.... nbsp;… Defects in Agile Software Development are nothing but deviations from the expected values.... The expense involved in finding and rectifying defects presents one of the costly Agile Software Development undertakings.... This paper presents a comprehensive view of the defect prevention techniques and practices that can be followed in Agile Software Development....
11 Pages (2750 words) Essay

Problems and disadvantages of agile software development

This can better be explained through limitations of Limitations of Agile Software Development According to Dybå and Dingsøyr (2008), creation of agile is as a result of reaction towards the then predominant but currently infamous waterfall model.... This can better be explained through limitations of Agile Software Development as described below.... The Agile Software Development, Highsmith Series.... Empirical Studies of Agile Software Development: ASystematic Review, Information and Software Technology (2008), doi: 10....
2 Pages (500 words) Literature review

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