Learn about the roots of agile in the Agile Manifesto and the benefits agile development has for businesses.
- Agile software development manages and develop 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. - [Speaker 1] 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 respond to change over following a plan. - [Speaker 2] 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 12 principles. They are- - [Speaker 1] Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. - [Speaker 2] Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. - [Speaker 1] Next, deliver working software frequently from a couple of weeks to a couple of months with the preference to the shorter timescale. - [Speaker 2] And, business people and developers must work together daily throughout the project. - [Speaker 1] Build projects around motivated individuals, give them the environment and support they need and trust them to get the job done. - [Speaker 2] The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. - [Speaker 1] Working software is the primary measure of progress. - [Speaker 2] Agile processes promote sustainable development. The sponsors, developers and users should be able to maintain a constant pace indefinitely. - [Speaker 1] Continuous attention to technical excellence and good design enhances agility. - [Speaker 2] Simplicity, the art of maximizing the amount of work not done is essential. - [Speaker 1] The best architectures, requirements and designs emerge from self-organizing teams. - And finally, at regular intervals, the team reflects on how to become more effective then tunes and adjust its behavior accordingly. - These 12 principles are focused on the customer using the software, the expectation of 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 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 request changes, these can be really difficult to make. From a dev team's 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 aren't as critical and the scope and dates can be easily tweaked up and down. - [Speaker 2] Another key differentiator of agile is communication. Frequent communication between the team members and with external stakeholders during the entire project life cycle, allows the whole team to be more adaptable. - [Speaker 1] 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 of 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