Agile Unit II
Agile Unit II
What is the need for it? & how the values are provided by scrum
team?
• Product Owner: Represents the stakeholders and is responsible for defining and
prioritizing the product backlog, ensuring the team is working on the most valuable
features.
• Scrum Master: Facilitates the Scrum process, helps the team remove impediments,
and ensures that Scrum principles and practices are followed.
• Development Team: Comprises cross-functional individuals who possess all the
skills needed to deliver a potentially shippable product increment. This includes
programmers, designers, testers, and others necessary for the project.
Scrum Teams provide value in various ways within the Scrum framework:
1. Developers: These are the programmers responsible for writing code, implementing
features, and ensuring the software works correctly. They work in pairs, practicing pair
programming, where two developers work together on the same code.
2. Customer (or Customer Proxy): The customer represents the end-users and
stakeholders, providing guidance and feedback on project requirements. They work
closely with the development team to prioritize user stories and features.
3. Tester: Testers are responsible for ensuring the quality of the software through
various testing techniques, including automated unit testing, integration testing, and
user acceptance testing.
4. Coach (optional): An XP coach or mentor can be part of the team to guide and
support the adoption of XP practices. This role is especially valuable when a team is
new to XP.
1. Cross-Functional: Agile teams are typically cross-functional, meaning they have all
the skills necessary to complete the work within the team. This includes developers,
testers, designers, and any other roles required for the project.
2. Self-Organizing: Agile teams are self-organizing, which means they have the
autonomy to make decisions about how to accomplish their work. They determine how
to best meet their goals and respond to changes.
3. Iterative and Incremental: Agile teams work in iterations or increments, delivering
a portion of the product in each cycle. This allows for frequent inspection, adaptation,
and the delivery of valuable features.
4. Customer-Centric: Agile teams focus on delivering value to the customer. They
maintain close collaboration with customers or stakeholders to understand their needs
and prioritize work accordingly.
5. Continuous Improvement: Agile teams value continuous improvement and regularly
reflect on their processes and practices to identify areas for enhancement. They use
feedback to make adjustments.
6. Visual Management: Many Agile teams use visual tools like boards (e.g., Kanban
boards or Scrum boards) to track and manage work, making it visible to the team and
stakeholders.
7. Adaptability: Agile teams are adaptable and responsive to change. They embrace
change as a natural part of the development process and adjust their plans and priorities
accordingly.
While the specific practices and roles within an Agile team may vary depending on the
chosen Agile methodology, these general characteristics hold true for most Agile teams.
The goal of any Agile team is to deliver high-quality, customer-centric results through
collaboration, flexibility, and a commitment to continuous improvement.
Typical AGILE Project life cycle with necessary examples? Classify
the difference stages of it:
The agile methodology remains a top priority for many businesses, with approximately 95% of
companies adopting it in some form or another. Noteworthy, Agile teams have shown a 37% faster profit
increase and 30% higher revenue generation than non-Agile companies, primarily due to the improved
speed, flexibility, and productivity that Agile approaches offer.
These benefits encourage more organizations to embrace Agile approaches, which allow them to create
innovative products while staying aligned with market trends and user needs. Moreover, the increased
visibility highlights the importance of focusing on Agile tools and methodologies, particularly within the
software development life cycle (SDLC).
This article delves into the core aspects of Agile SDLC, highlighting how this iterative process fosters
collaboration, innovation, and continuous improvement. By gaining an in-depth understanding of
methodology, Agile SDLC phases, tools, and roadmap, you can harness the power of this transformative
approach, enhancing your ability to respond to market shifts and deliver exceptional value to your
customers.
Table of Contents
• Why Agile?
o What is meant by Agile SDLC?
o What advantages does Agile offer for your businesses?
• The Basic Concepts of Agile Software Development
• Top Agile Methodologies in Software Development
• Key 6 Stages of the Agile Development Life Cycle
o Phase 1: Concept
o Phase 2: Inception
o Phase 3: Iteration
o Phase 4: Testing
o Phase 5: Release
o Phase 6: Review
• Agile Techniques and Tools
o V-shape SDLC
o Iterative SDLS
o Spiral SDLC
o Waterfall SDLC
o Can Agile be combined with other methodologies?
• Agile Roadmap
o Define goals
o Get management support
o Develop a transformation roadmap
o Make a plan for three months
o Adapt and learn
o Link actions to results
o Provide transparency for everyone involved
• How do Agile Methodologies Fit in the Remote Work Era?
o Pros of a remote Agile team
o Challenges of Agile SDLC application while collaborating with distributed teams
• Bottom Line
• FAQ
Why Agile?
Before diving into Agile’s particularities, it’s crucial to grasp what Agile is and how it differs from the
Waterfall methodology that previously dominated software development.
The Agile methodology emphasizes functional software over extensive documentation, personal
communication over procedural tools, partnering with clients over formal agreements, and adapting to
alterations over sticking to a blueprint. It focuses on providing incremental, usable software components
that facilitate ongoing feedback and adjustments.
On the other hand, the Waterfall model follows a linear and progressive software development strategy.
Each stage, including requirements analysis, design, coding, testing, and deployment, must be finalized
before moving on to the next step. Changes are typically difficult to implement once a phase is completed,
and there is little room for flexibility or iterative improvements.
A mere 9% of Agile projects experience failure, compared to a substantial 29% of projects that adhere to
the Waterfall model.
Agile software development revolves around iterative and time-boxed cycles called sprints. Typically
lasting two weeks, each sprint focuses on a set of “user stories” or features the team can deliver within the
time frame. This approach allows for a more manageable product development and release cycle than the
more extensive features in a waterfall project.
The Agile team maintains a modest size, consisting of no more than 12 participants, such as developers,
analysts, QA specialists, the product proprietor, and the Scrum Master, who assumes the role of the project
overseer.
The contemporary Agile approach was formally established in 2001 when 17 software development experts
gathered to discuss alternative project management methodologies. The authors described an adaptable,
streamlined, and collaborative methodology in the Manifesto for Agile Software Development. The
Manifesto focuses on “discovering better ways of developing software” and outlines the fundamental
principles of this innovative approach.
• Agile development’s utmost priority is ensuring customer satisfaction by promptly delivering
valuable software.
• The adaptable nature of Agile processes provides a competitive edge for customers.
• Changing requirements are accommodated even at later agile software development stages.
• Working software is delivered in short intervals, typically within weeks or months, to show
progress.
• Developers and employers engage in daily communication throughout the project.
• Motivated people work best in the right environment with proper support.
• Self-organizing teams are better equipped to create optimal requirements, architectures, and
designs.
• In-person interaction continues to be the most efficient method for sharing information among
development team members.
• Teams regularly review performance metrics and adjust performance accordingly.
• Agile software development is a sustainable process that emphasizes continuous improvement.
• Technical excellence and good design are crucial to ensure flexibility and adaptability.
• Keeping things simple and minimizing work in progress can help increase efficiency and
productivity.