Agile Methodology (Incremental)

Basic Principle

In incremental model the requirement is divided into various sub components. Multiple development cycles take place here, making the life cycle a “multi waterfall” cycle. Each sub component passes through the requirements, design, implementation and testing phases. There is no sequence. Modules are integrated later.

Agile is a group of software development methods which promotes evolutionary development prototyping and continuous improvement. Agile methods are based on a linear combined iterative approach to software development. A series of mini-waterfalls can be performed. Overall requirements are defined before preceding to evolutionary. Agile methodology is the most used methodology nowadays.

Strengths

  1. Generates working software quickly and easily during the software life cycle.
  2. More flexible since changes can be applied anywhere during the development.
  3. Easier to test and debug during a smaller iteration.
  4. Promote adaptive planning.
  5. Less costly to change scope.
  6. Once a step has been completed, developers can go back.
  7. Doesn’t rely on initial requirements.
  8. If a requirement error is found, it can be modified without going back.
  9. The plan does take into account a client’s evolving needs.
  10. We don’t have to wait until the end of the project to realize value.
  11. Less risky.
  12. Optimal balance between quality and productivity.
  13. Moderate control is maintained over the life of the project through the use of written documentation.
  14. Stakeholders can be given concrete evidence of project status throughout the life cycle.
  15. Allows delivery of a series of implementations that are gradually more complete.
  16. Gradual implementation provides the ability to monitor the effect of incremental changes.

Weaknesses

  1. Focus on the code rather than the design.
  2. Problems in scaling because developers can’t identify how many iterations will happen.
  3. There is usually a lack of overall consideration of the business problem.
  4. Well-defined interfaces are required.
  5. Difficult problems tend to be pushed to the future.

Situations where most appropriate

  1. Product development where a software company is developing a small product for sale.
  2. Large projects where requirements are not well understood.
  3. Web Information Systems since this supports changes.
  4. Leading edge applications.

Situations where least appropriate

  1. Long-duration project because it needs sufficient amount of resources.
  2. Very small projects of very short duration.
  3. Integration risks are very low.
  4. Highly interactive applications where the data for the project already exists.

References :

SELECTING A DEVELOPMENT APPROACH. (2005). 3rd ed. [ebook] Centers for Medicare and Medicaid Services, pp.1-10. Available at: https://www.cms.gov/Research-Statistics-Data-and-Systems/CMS-Information-Technology/XLC/Downloads/SelectingDevelopmentApproach.pdf [Accessed 6 March. 2017].

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s