The History of Agile for Developers

Agile software development is widely accepted as the premier style of project management today. However, this was not always the case. Not two decades ago, Agile was yet to be created. More traditional methods of software development, such as waterfall, were used by most organizations. The rise to popularity of Agile is a consequential story. Developers and their role in software development are possibly the most affected by the history of Agile.

Waterfall Development History

Before Agile software development, waterfall was the preferred method of project management. The name comes from the way a product cascades through stages in one direction. At the most basic level, the steps of waterfall software development are requirements, design, implementation, verification, and maintenance. While some of these may sound similar to the steps of Agile software development, the fact that they only happen once per project is the key difference.

Waterfall Development Requirements

Requirements are set early and are difficult or impossible to change later. Customers must give an accurate depiction of what they want before they ever see any working software. Once development has begun, customers cannot change their minds since their requirements have already been committed. For developers, requirements will ultimately become programming assignments. Even if individual requirements turn out to be much more work than anticipated or generally bad ideas, they are part of the project and must be finished.

Similar to the requirements phase, the design is completed fully for all parts and features of a product. The development team must map out exactly how everything will be created, and stick to this plan. While planning and research are useful, it is cumbersome to require that a design is set in stone from the beginning. Developers occasionally find more efficient ways for a feature to work after development has begun. Since waterfall relies on all pieces fitting together the same way from start to finish, developers may be unable to make these changes. Their hands are tied, since revisiting requirements and design are often unfeasible.

Waterfall Development Implementation

Implementation, the step in which developers actually write code, is very rigid and inconvenient in waterfall development. Instead of allowing developers the creativity to make the code work in the way they see fit, they must stick to the completed design. Inevitably, this means that programming takes longer to finish. Also, developers might be less familiar with the design than what they may have chosen to use otherwise. This leaves them without as firm of an understanding of the code and often results in programming errors.

Waterfall Development Verification

Verification makes sure that software is working the way it was intended to. Software products can be extremely complex and may interact with unfamiliar applications, so the potential for bugs and issues with the product is high.  The developers need to fix these before it goes to customers. The problem with verification in waterfall development is how quickly technical debt builds up, and how difficult it can be to address. Since everything up to this point sticks to the original requirements and design, changes and fixes must also keep up with documentation from the very beginning of the process. This can make an ideal fix hard to come up with, and increase the time it takes to implement. Developers in waterfall have fewer tools at their disposal and are thus less efficient at fixing bugs.

<– Continue Reading –>

Our Book Recommendations

We found these books great for finding out more information on Agile Scrum:

Master of Agile – Agile Scrum Developer With 59 Seconds Agile (Video Training Course)

Introductory Offer: Free Course

Master of Agile – Agile Scrum Developer With 59 Seconds Agile (Video Training Course)

What is this course?

This ‘Master of Agile – Agile Scrum Developer With 59 Seconds Agile (Video Training Course)’ provides an in-depth understanding of the Agile Scrum Developer roles and responsibilities

You will explore the Agile Scrum project life-cycle, including how an Agile User Story is created, to how we know when it is ‘done’

This course is aimed at those with or without prior knowledge and experience of the Agile values and principles

During this course you will learn the tools needed to succeed as an Agile Scrum Developer

What will you learn?

You will gain an in-depth understanding of the Agile Scrum Developer roles and responsibilities, and you will be able to

  • Fully understand the role of the Agile Scrum Developer
  • Understand the roles involved in an Agile project
  • Create an effective Product Backlog
  • Effectively participate in Scrum Meetings such as the Daily Stand-up, Sprint Review and Retrospective
  • Identify the roles involves in the Scrum Team

What topics are covered within this course

You will cover the following topics during this course:

  1. An Introduction to Agile Project Management (Developer)
  2. The 12 Agile Principles (Developer)
  3. Introduction to Scrum (Developer)
  4. Scrum Project Roles (Developer)
  5. The Agile Project Life-cycle (Developer)
  6. Acceptance Criteria and the Prioritised Product Backlog (Developer)
  7. Initiating an Agile Project (Developer)
  8. Forming the Scrum Team (Developer)
  9. Epics and Personas (Developer)
  10. User Stories and Tasks (Developer)
  11. Implementation of Scrum (Developer)
  12. The Daily Scrum (Developer)
  13. The Product Backlog (Developer)
  14. Scrum Charts (Developer)
  15. Review and Retrospective (Developer)
  16. Validating a Sprint (Developer)
  17. Retrospective Sprint (Developer)
  18. Releasing the Product (Developer)
  19. The Communication Plan (Developer)
  20. Formal Business Sign-off (Developer)