The Agile Manifesto, created in 2001, revolutionized software development. It prioritizes people, collaboration, and over rigid processes and plans. The manifesto's four core values and twelve principles guide teams in delivering value to customers through iterative, adaptive approaches.

Agile methods emphasize customer satisfaction through early, continuous delivery of . Teams welcome changing requirements, collaborate closely with customers, and reflect regularly to improve. This flexible, people-centered approach contrasts sharply with traditional project management's linear, documentation-heavy methods.

Agile Manifesto Principles

Core Values and Creation of the Agile Manifesto

Top images from around the web for Core Values and Creation of the Agile Manifesto
Top images from around the web for Core Values and Creation of the Agile Manifesto
  • The Agile manifesto was created in 2001 by a group of 17 software developers to define the key values and principles of Agile software development
  • The Agile manifesto states four core values
    • over processes and tools
    • Working software over comprehensive documentation

12 Principles Behind the Agile Manifesto

  • There are 12 key principles behind the Agile manifesto that provide more specific guidance on how to implement Agile practices
  • Principles include satisfying customers through early and continuous delivery, welcoming changing requirements, delivering working software frequently, and maintaining a
  • Other principles focus on simplicity, , , and regular reflection and adaptation
  • The Agile manifesto and principles prioritize people, collaboration, flexibility, and delivering value over rigid processes, plans, and documentation
    • For example, face-to-face conversations are valued over detailed written documents
    • Delivering functional software to customers is prioritized over producing comprehensive documentation

Customer Satisfaction and Collaboration in Agile

Delivering Value to Satisfy Customers

  • Agile principles emphasize early and continuous delivery of valuable software to satisfy customers and gain their trust
    • Teams aim to deliver working software to customers frequently (e.g. every 2-4 weeks)
    • Frequent releases allow customers to see progress and provide feedback regularly
  • Agile processes harness change for the customer's competitive advantage by welcoming changing requirements, even late in development
    • Changing market conditions or customer needs are seen as opportunities to improve the product
    • Teams adapt plans as needed to deliver the most valuable features

Collaboration and Communication

  • Close, daily cooperation and face-to-face conversations between business people and developers throughout the project are considered the most efficient and effective methods of communication
    • Examples include meetings, co-located teams, and customer representatives on the team
  • Projects are built around motivated individuals who should be given the environment, support, and trust they need to get the job done
  • Regular reflection by teams on how to become more effective and tuning and adjusting behavior accordingly leads to better outcomes and customer satisfaction
    • Teams hold meetings after each iteration to identify improvements
    • leads to higher quality products that better meet customer needs

Adapting to Change in Agile

Flexibility as a Core Tenet

  • Agile recognizes that change is inevitable in software development and embraces flexibility and adaptability as core tenets
  • Agile teams aim to maintain a constant pace and work in short iterations to allow for changes in priorities and requirements throughout the development process
    • Short cycles (sprints) of 1-4 weeks allow teams to adapt plans based on changing needs
    • The is regularly refined to re-prioritize work as needed

Practices That Enhance Agility

  • Continuous attention to technical excellence and good design enhances agility by making systems easier to change and maintain over time
    • Practices like , , and make code more adaptable
  • Simplicity, defined as the art of maximizing the amount of work not done, is considered essential in Agile as it allows teams to more easily adapt to changing needs
    • Teams focus on the most valuable features and minimize unnecessary complexity
  • At regular intervals, Agile teams reflect on how to become more effective, then tune and adjust their behavior accordingly to improve their change responsiveness
    • Retrospectives after each iteration drive continuous process improvement
    • are adapted based on what works best for each team and project

Agile vs Traditional Project Management

Iterative vs Linear Approaches

  • Agile uses an iterative and incremental approach delivering working software in short cycles, while traditional "waterfall" projects have linear, sequential phases with one single final deliverable
    • Agile projects deliver value incrementally (e.g. every sprint), allowing for early customer feedback
    • Waterfall projects deliver the full product at the end, with limited opportunity for course correction
  • Requirements evolve and change is embraced throughout an Agile project, whereas requirements are defined upfront and changes are controlled in traditional approaches
    • In Agile, the product backlog is refined based on learning and feedback
    • In waterfall, requirements are gathered upfront and scope changes require formal change requests

Team Structure and Customer Involvement

  • Agile teams are typically small, self-organizing and cross-functional, while traditional projects have larger teams with top-down task assignment based on specific roles
    • Agile teams have a , , and 5-9 development team members
    • Waterfall teams are often organized into separate functional groups (e.g. business analysts, developers, testers)
  • Customer feedback and involvement happens throughout an Agile project, while customers are mainly involved during requirements gathering and acceptance testing in waterfall
    • Agile product owners represent the customer and stakeholders to the team
    • In waterfall, customers provide requirements upfront and evaluate the final product at the end

Tracking Progress and Documentation

  • Agile measures progress through working software, while traditional project management focuses more on conformance to plans and milestones to track progress
    • Agile teams demonstrate working features to stakeholders at the end of each iteration
    • Waterfall projects track progress against requirements documents and project schedules
  • Documentation is less emphasized in Agile with a focus on informal, face-to-face communication, whereas waterfall projects typically produce comprehensive documentation
    • In Agile, requirements are captured as with acceptance criteria
    • Waterfall projects produce detailed requirements documents and design specifications upfront

Key Terms to Review (23)

Agile Frameworks: Agile frameworks are structured methodologies that embody the principles and values of the Agile Manifesto, promoting adaptive planning, evolutionary development, early delivery, and continual improvement. These frameworks guide teams in managing complex projects through iterative cycles, enhancing collaboration and responsiveness to change. Each framework has unique practices and roles but shares the common goal of delivering high-quality products while accommodating customer feedback and changing requirements.
Burndown Chart: A burndown chart is a visual representation of work completed versus work remaining in a project over time, typically used in Agile methodologies to track progress during a sprint. It helps teams monitor their progress, predict timelines, and identify any issues that may hinder successful delivery. By illustrating the relationship between planned and actual work, it fosters accountability among team members and supports effective decision-making.
Continuous Improvement: Continuous improvement is an ongoing effort to enhance products, services, or processes through incremental and breakthrough improvements. This concept is essential in various methodologies to foster a culture of learning and adaptability, enabling teams to respond to changes effectively and efficiently.
Continuous Integration: Continuous Integration is a software development practice where developers regularly merge their code changes into a central repository, with automated builds and tests conducted to detect integration issues early. This approach fosters collaboration and quality by ensuring that code is consistently tested and integrated, minimizing the chances of conflicts and bugs.
Cross-functional teams: Cross-functional teams are groups of individuals with different expertise and skills who work collaboratively towards a common goal or project. These teams leverage diverse perspectives and knowledge, enabling them to solve complex problems more effectively and foster innovation.
Customer collaboration over contract negotiation: Customer collaboration over contract negotiation emphasizes the importance of engaging with customers and incorporating their feedback throughout the project lifecycle, rather than strictly adhering to predetermined contractual agreements. This approach fosters a partnership mindset, enabling teams to adapt and deliver better value based on evolving customer needs and preferences, ultimately leading to more successful project outcomes.
Daily Stand-Up: A daily stand-up is a short, time-boxed meeting held by Agile teams, usually lasting around 15 minutes, where team members share updates on their progress, discuss challenges, and plan their work for the day. This practice fosters communication and accountability within the team, allowing for quick identification of obstacles and alignment on tasks.
Flexibility: Flexibility refers to the ability to adapt and change plans or approaches in response to new information, feedback, or changing circumstances. In the context of agile methodologies, flexibility is crucial as it enables teams to respond quickly to evolving requirements and maintain a focus on delivering value throughout the project lifecycle. This adaptability fosters collaboration and continuous improvement, ensuring that the final product meets the needs of stakeholders.
Individuals and Interactions: Individuals and interactions emphasize the importance of people and their collaboration in the Agile framework over strict processes and tools. This principle highlights that successful project outcomes are driven by effective communication, teamwork, and relationships among team members rather than rigid methodologies, allowing for greater adaptability and responsiveness to change.
Iterative Development: Iterative development is a software development process that builds and improves products through repeated cycles, or iterations. Each iteration typically involves a portion of the overall project that is developed, tested, and evaluated before moving on to the next segment, allowing teams to refine their work based on feedback and changing requirements.
Product Backlog: The product backlog is a prioritized list of features, enhancements, bug fixes, and technical work that needs to be completed for a product. It serves as a dynamic roadmap that guides the development team and stakeholders in delivering value, aligning closely with the principles of collaboration and customer satisfaction.
Product Owner: The Product Owner is a key role in Agile project management, specifically within the Scrum framework, responsible for maximizing the value of the product resulting from the work of the development team. This role acts as a bridge between stakeholders and the development team, ensuring that the product backlog is prioritized and that user stories reflect the needs and expectations of users and stakeholders.
Refactoring: Refactoring is the process of restructuring existing computer code without changing its external behavior, improving its readability, and making it easier to maintain. This practice is essential in Agile development as it aligns with the principles of continuous improvement and delivering high-quality software. Regularly refactoring code helps teams adapt to changing requirements while ensuring that the system remains scalable and efficient.
Responding to Change Over Following a Plan: Responding to change over following a plan emphasizes the importance of adaptability in project management. It encourages teams to remain flexible and open to adjusting their strategies based on new information or changing circumstances, rather than rigidly adhering to a pre-established plan. This principle supports continuous improvement and enhances collaboration among team members, ultimately leading to better project outcomes.
Retrospective: A retrospective is a structured meeting held at the end of an iteration or project, where team members reflect on what went well, what didn’t, and how to improve moving forward. This practice is essential for continuous improvement, fostering open communication and collaboration among team members, and enhancing overall team performance.
Scrum Master: A Scrum Master is a facilitator and servant leader for a Scrum team, responsible for ensuring that the team adheres to Agile practices and principles while helping to remove any obstacles that may impede progress. This role is crucial in fostering an environment of collaboration, accountability, and continuous improvement within the team.
Self-organizing teams: Self-organizing teams are groups of individuals who collaboratively determine their own roles, responsibilities, and processes without relying on a central authority. This autonomy empowers teams to adapt quickly to changes, make decisions that affect their work, and foster a culture of accountability and innovation, which aligns with Agile principles.
Sprint Planning: Sprint Planning is a collaborative meeting in Agile methodologies, specifically within the Scrum framework, where the team defines the work to be accomplished during the upcoming sprint. This meeting sets the stage for the sprint by prioritizing tasks and ensuring that the entire team understands the sprint goal, connecting to principles of iterative development and flexibility.
Sustainable working pace: Sustainable working pace refers to the consistent and manageable speed at which a team can work over an extended period without causing burnout or sacrificing quality. This concept is key to maintaining a healthy work environment, where team members can deliver value regularly and continuously, promoting long-term productivity and well-being. It emphasizes the importance of balance in workloads to support ongoing performance and adaptability in Agile methodologies.
Technical Excellence: Technical excellence refers to the continuous pursuit of high-quality technical practices, standards, and processes within a project. It emphasizes the importance of maintaining superior coding practices, testing, and engineering methods to enhance product quality and ensure sustainable development. This commitment helps teams deliver more reliable software while adapting swiftly to changes, which is a core principle of Agile methodologies.
Test-Driven Development: Test-Driven Development (TDD) is a software development practice that relies on creating automated tests before writing the corresponding code to ensure that the software meets its requirements. This approach emphasizes the importance of testing throughout the development process, aligning closely with Agile principles that advocate for iterative progress, customer collaboration, and maintaining a working product. TDD fosters better communication about acceptance criteria and the definition of done by clarifying expectations and ensuring that features are testable from the start.
User Stories: User stories are short, simple descriptions of a feature or functionality told from the perspective of the end-user. They are crafted to capture what the user wants to achieve with a product or service, focusing on their needs and desired outcomes, which is crucial for driving development in Agile methodologies.
Working Software: Working software refers to software that is fully developed, functional, and ready for use by end-users. It is a core principle of Agile methodologies, emphasizing that the primary measure of progress is the delivery of functional software rather than comprehensive documentation or extensive planning. The focus on working software facilitates iterative development and frequent feedback, allowing teams to adapt quickly to changing requirements.
© 2024 Fiveable Inc. All rights reserved.
AP® and SAT® are trademarks registered by the College Board, which is not affiliated with, and does not endorse this website.