1.3 Agile Project Management and practices

In the 1990s, the software industry faced significant challenges. First, it was relatively young, and there weren't enough skilled software developers available. Second, the industry relied on a strict project management approach known as "waterfall." This method prioritized creating extensive lists of requirements, often more for legal agreements than collaborating with clients. This lack of cooperation led to widespread distrust.

Additionally, software development differed from the incremental approach used today. Instead of gradual improvements, software was created in large packages. Consider software like the old Office 95, with numerous features that most people didn't use. Developing such extensive packages took years and often resulted in bugs. The Pareto Law illustrated that only around 20% of the software was utilized, leaving 80% of resources wasted.

In the traditional "waterfall" approach, a software project might take a whole year to complete without any input from the client. However, in the Agile approach, that same software gets delivered to the client every month or during a "sprint," allowing for early feedback and gradual improvements. This way, by the end of the year, you have a successful final solution.

The Agile development process involves several key practices. First, there's the "product backlog," which is a list of desired features and tasks for the entire year. Then, for each month, you have a "sprint backlog," which is a list of things to work on during that month. The Agile cycle happens regularly, usually every two weeks or a month, as decided by the team, and it involves steps like planning, designing, developing, testing, and releasing the software. This cycle keeps repeating, with each sprint drawing from the sprint backlog, and it leads to the delivery of the final product.

Various methods and approaches can be used to work in an Agile way. They all follow the principles and values we talked about earlier.

Some well-known Agile frameworks in software development include Scrum, Kanban, Hybrid, Lean, Bimodal, XP, and Crystal. Among these, Scrum is the most widely used.

Last updated