Learn about the roots of agile in the agile manifesto and the benefits agile development has for businesses.
- Agile Software Development manages and develops software in an iterative and incremental way. There are many agile methodologies, but most share the same philosophies, characteristics, and practices. - In this context, the word agile is derived from the Agile Manifesto. In 2001, a small group of experienced developers got together to discuss traditional approaches to managing software development projects. The consensus was that software development was failing far too often and there had to be a better way.
- They came up with the Agile Manifesto. It describes four important values that guide the principles of Agile Development. These are: individuals and interactions over tools and processes, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan. - The intent of the Manifesto was that while there's importance to the items on the right, the items on the left were valued more.
The manifesto describes twelve principles. They are: - These 12 principles are focused on the customer using the software, the expectational change during the development process, feedback, communication, and iterative working software.
- Agile practices can have many benefits for your organization. From a business perspective, the two biggest wins are visibility and the continuous delivery of business value. - And because product owners are a part of the team building the software, they can visualize the progress towards a working product through every iteration. If necessary, they can make changes from iteration to iteration. From a business perspective, owners always know how the project is progressing. - That's right. In a traditional waterfall development cycle, the communication between product owners and development happens frequently at the start of the project but declines as the project progresses.
- In later stages, when the product owner does get an update and requests changes, these can be really difficult to make. From a dev teams perspective, it changes the scope and affects the product timeline. This can understandably cause friction between the owners and the developers. - An Agile approach is deliberately more iterative. You deliver working software from the very beginning. Instead of a mass of half-working features that only work near the end of a project cycle. - This way, the target dates are less critical and the scope and dates can be easily tweaked up and down.
- Another key differentiator of Agile is communication. Frequent communication between the team members and with external stakeholders during the entire project lifecycle allows the whole team to be more adaptable. - The development team can anticipate upcoming changes in scope. Product owners can see iterative progress. And test and deployment teams are aware of what's coming up and can be prepared. - Finally because the entire team is working in sync, the overall status and risk of the project is known in a manner that's impossible in traditional development processes.
The developers on the team can raise concerns about complexity or issues with specific features to the product owners during the implementation phase, giving them the chance to revisit workflow and requirements. The added communication reduces risk and gives everyone further visibility into where features actually stand. - Now that you've gotten a quick primer of what Agile Development is all about, let's look at how it's implemented and some of the key terms that are frequently used in Agile Software Development.
- What is agile?
- What is lean?
- Measuring success
- Learning and adapting
- Building a culture of metrics
- Continuous learning
- Advanced concepts