Saturday, July 14, 2012

Cost Reduction With Agile Methodology

Agile methodology is becoming a more and more popular software development method. While there are many advantages of agile, including more control on the part of the product owner and less risk of the product not going to market, the reduction in the actual cost of development is one of the most important advantages.

Agile development is a strategy of software development in which the development process occurs though short increments. The phases of the development process occur continuously in iterative cycles, with each team member and the product owner sharing in the responsibility for producing "potentially shippable" software at the end of each iteration or "sprint". The team meets after each increment to discuss what has occurred, re-evaluate requirements and determine priorities. This allows for greater transparency between clients and programmers and clients have greater influence in what is being designed to ensure the product is what they want. This is a departure from the traditional "waterfall" method, which typically involves the product owners during the requirements phase; then the development team takes over and develops the application.

In agile methodology, there is no upfront requirements document detailing all the work that will be done on the project because it changes constantly. Initially, software development companies may have difficulty budgeting for the project when so many things are unknown at the beginning. However, the development team works with user stories which are short descriptions of application functionality from the perspective of the user. A collection of user requirements are stored in the product backlog, to be developed as the project continues.The development team assigns each user story an estimation of the amount of time and effort the team will need to put forth to complete. Once the most important user stories have been identified, the project manager can determine a budget to present to the product owner. Of course, with agile methodology, there are bound to be changes, but it is possible to determine a budget up front that is a good estimation of production costs.

The main way agile methodology can reduce costs in software development is by reducing the amount of time it takes to bring a useable product to market. Agile methodology focuses on developing the most important aspects of the project first. If an aspect of the system does not work, it will become evident early in the process and there will be little time wasted on something that will not work. Also, if the system is not exactly what the product owner or user had in mind, it can be altered immediately. The development team does not waste time developing aspects that will get little or no use by the user.

The project is continuously tested to ensure it is running correctly. A useable function of the system is completed after each iteration. Each meeting at the end of an iteration provides an opportunity to make sure the system is working and contributing toward a finished product. The team is not waiting until the end to see if the program runs correctly, resulting in costly and time-consuming changes.

Agile is about collaboration and communication is key. Less time is spent dealing with miscommunication because the team meets often. All members of the team meet so everyone agrees and is made aware of what is being developed. The product owner is included in all meetings to ensure he or she is getting exactly what is needed.

Less cost is associated with overhead in agile methodology. Management and administration occur within the team and extra staff is not required, for example, to write the requirements document at the beginning as with the waterfall method. Staff is not needed to schedule meetings and track down members of the team because everyone is aware that meetings happen regularly and are required.

Agile is an effective method for working with distributed teams. Outsourcing or nearshoring may be instituted to reduce costs, and utilizing agile will ensure multiple teams work well together by reducing miscommunication and catching errors quickly.

Agile methodology can reduce costs for a software development company. However, it is important to have an end point so the budget can accurately reflect what the project can entail. When there is no upfront requirements document, the team could continuously make changes to the system, extending the project indefinitely. Once a company becomes comfortable with the agile methodology, it will begin to see reductions in costs.


View the original article here

0 comments:

Post a Comment

Blog Archive