The Advantages and Disadvantages of Agile Development Software Methods

Agile development software methods have certainly been the hype for software developers everywhere since 2001. There are so many different kinds of agile methods available that it's a bit of a challenge to choose the right one for your project. The simplest way to find out would be to read up on the pros and cons of each of the three most popular methodologies, and figure out which one suits you and your project best.

1) Scrum

Developed by Jeff Sutherland and Ken Schwaber, this method involves one or more small teams (composed of a ScrumMaster, a Product Owner, and a development team) that work together to complete a project based on a list of tasks that are arranged according to priority . They do this by dividing the list into shorter ones that will be completed within a "sprint", or a set period of development that lasts from 2-4 weeks. While this is one of the most popular agile development software methods because of its simplicity, the problem with it is that most programmers find it necessary to integrate other methodologies to cover for additional practices that fall outside of agile scrum.

2) Dynamic Systems Development Method (DSDM)

DSDM is an agile method that has multiple variations, but the most recent and popular version of it is the DSDM Atern method. This method focuses primarily on projects that have tight schedules and budgets, and adheres to eight main principles:

• Focus on what the business needs
• Deliver work on time
• Collaborate effectively
• Never, ever compromise quality
• Build the project incrementally using solid foundations
• Develop the project iteratively
• Continuously communicate with clarity
• Demonstrate control

Because of its strictness and eight principles, the main problem with DSDM Atern is that it can be restrictive and difficult to work with compared to other agile development software methods.

3) Extreme Programming (XP)

XP, developed by Kent Beck, is a methodology is somewhat similar to Scrum in that it "timeboxes" or uses short development cycles throughout the entire process. This helps reduce costs compared to having one lengthy process, and helps keep the project dynamic and adaptable. This method makes use of four activities:

• Coding – where the program or software is actually coded
• Testing – where the product created through Coding is tested
• Listening – where the developers listen to the needs and suggestions that the clients or customers point out after Testing
• Designing – where developers organize and design the system's logic based on their experiences from the first three activities

This agile development software method is popular for its more laid back and non-restrictive method, but is highly criticized for its lack of a solid structure since everything is mostly done on-the-fly without any prior planning.

Based on the pros and cons listed above, you probably have a good idea which method to go for now. If you want something done in a more disciplined fashion while still adhering to the agile concept of speed, go for DSDM Atern. If you feel that the project will benefit from a more laid-back sort of process that allows your development team to take the wheel and gives them freedom to be creative, go for XP or Scrum. If none of these three methods appeal to you, do not fret – there's a large number of other agile development software methodologies out there to choose from; it's all a matter of finding the method that caters to your project's needs.

Filed under: general Tagged with: , . - permalink.