Understanding Agile Software Development
page 4 of 8
by Joydip Kanjilal
Average Rating: 
Views (Total / Last 10 Days): 40634/ 89

The Agile Development Standards

Agile development is based on some standards outlined in this section.

Continuous involvement of customer - The need for involvement of an end user throughout the project lifecycle in agile development is very important. An end user has to be made available throughout the project development lifecycle and interact with the developers and help them achieve their project goals. They also need to verbally communicate on a regular basis to make the project lively and free of any bugs arising from misconceptions.

Team members should take important decisions - The project development team should possess enough power to take important decisions in collaboration with the end user (customer). The team members need not always wait for their higher authorities to take important decisions for taking the project ahead. This can be done when absolutely needed and can be avoided in general. The team members can very well take proper decisions in collaboration with the customer contacts that are in collaboration. They should, however, know to manage the customer’s expectations optimally.   

Requirement analysis, a continuous process - In traditional models, the requirements are normally analyzed and fixed at the very initial level of the project lifecycle. Whatever the case may be, the emphasis is given to capture as much requirements as possible and to streamline the project scope. Any future changes are normally taken care of as a separate activity under “change request management.” Agile development works on a philosophy that is very much different from traditional software development methodologies.

Agile development methodology can address the evolving requirements over time. How? The time period for any project is kept fixed and the requirements are allowed to come in during the project lifecycle. Therefore, the project team and also the end user (the customer) need to include or remove any requirement keeping in mind the fixed time period. As a  result, they may need to adjust this new work with some other comparable work within the project to put up this change.

Project requirements are visual and adequately drawn - Agile project requirements are drawn mostly at high level and are optimal and visual in nature. These requirements are mostly drawn bit by bit and help to develop the software for any specific feature or module. The visual representation of the requirements helps the agile developers to develop the solution closest to accuracy against its actual requirements. The requirements are sufficient in volume so as to provide that much input that is required for developing and testing the feature or module. This also enables reasonable efficiency. The objective behind this approach is to minimize the time taken for secondary activities in the project lifecycle that are always required to take ahead the project, but are certainly not a part of the end product or the solution.

Development produces small, incremental releases with iterations - In traditional software development methodologies the requirements for the whole software are collected at the very beginning, analyzed and then the software is developed with all its components and finally testing is done for the entire solution followed by its release. Agile software development approach supports a different cycle in terms of analysis, development and testing. The agile development projects are produced in separate pieces with small, “incremental releases.” Each of the features in the whole solution is separately treated and each of these features has its own three phases or steps (analysis, development, and testing). Once this feature is developed, the next feature is developed in succession following similar phases. Hence, the methodology enables doing each of these steps for each feature, with one feature at a time.

Recurrent product delivery – Agile development methodology supports recurrent delivery of any software product. It enables the breakup of the product into several modular features and delivers each feature incrementally on a regular basis.

Fullest completion of each feature – Agile development ensures fullest completion of each of its isolated features in terms of analysis, development, testing and release. Only then is the next feature or module in succession taken up. Care is taken to fully complete the functionalities within each feature (a mini project by itself) and then proceed on to the next feature that is another mini project and is in succession.

The 80/20 Rule – The law of distribution and the similarity in distribution curve amongst many things are defined in the Pareto’s law which is also known as the 80/20 rule. The law defines that 20% of the efforts put in can bring out 80% of results. The percentages may vary in various situations, but overall it means that the optimum amount of very important efforts can be identified and put in to bring out the bulk of the desired results. Hence, agile development emphasizes smart development wherein the team focuses on identifying the most important “20%” efforts to bring out the greater part of the results.

Continuous testing – Agile development encourages regular testing throughout the project lifecycle. It does not normally encourage a separate all new testing phase as such. The team does the unit testing exercise while developing the feature in phases. This not only ensures developing software of great quality, but also helps in the iterative, incremental releases of the software. The automated repeatable unit tests ensure that all the modular features are working as per expectations each time while creating a build. Regular builds are created and integration is also done as the development progresses. The primary objective for this approach is to ensure the software to be available in release condition at all times throughout the development cycle.

Collaborative and cooperative development approach – Agile development is strongly based on effective collaboration and cooperation amongst all its team members and also the end users (clients). Agile development focuses on keeping sleek but effective requirements and documentation that needs great collaboration at all times. Requirements need to be clarified in the right time. The team members and the end users should always be updated equally throughout the development to understand and appreciate the status of work in progress and the goals to be attained.      

View Entire Article

User Comments

No comments posted yet.

Product Spotlight
Product Spotlight 

Community Advice: ASP | SQL | XML | Regular Expressions | Windows

©Copyright 1998-2024 ASPAlliance.com  |  Page Processed at 2024-05-22 7:02:15 AM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search