0% found this document useful (0 votes)
7 views

Unit-1

The document outlines Agile methodologies, focusing on theories, principles, project management, team interactions, and ethical considerations. It discusses various frameworks, challenges, and the importance of collaboration, customer satisfaction, and adaptability in Agile practices. Key components include Agile values, drivers, capabilities, and the role of documentation in supporting Agile processes.

Uploaded by

shanthibimmari07
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Unit-1

The document outlines Agile methodologies, focusing on theories, principles, project management, team interactions, and ethical considerations. It discusses various frameworks, challenges, and the importance of collaboration, customer satisfaction, and adaptability in Agile practices. Key components include Agile values, drivers, capabilities, and the role of documentation in supporting Agile processes.

Uploaded by

shanthibimmari07
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 34

Agile Methodologies

Unit-1
Agenda:
• Theories for agile management
• Agile software development
• Traditional model vs. agile model
• Classification of agile methods
• Agile manifesto and principles
• Agile project management
• Agile team interactions
• Ethics in agile teams
• Agility in design, testing
• Agile documentations
• Agile drivers,
• Capabilities and values.
Theories for agile management :
1) Complex Adaptive Systems (CAS) Theory
2) Lean Thinking
3) Systems Thinking
4) Theory of Constraints (ToC)
5) Servant Leadership
6) Human-Centered Design (HCD) and User-Centered Design (UCD)
7) Empirical Process Control
8) Maslow’s Hierarchy of Needs
9) Motivation 3.0 (Daniel Pink’s Theory)
10) Kaizen (Continuous Improvement)
11) The Cynefin Framework
12) Tuckman’s Stages of Team Development
1. Complex Adaptive Systems (CAS) Theory:

In this theory acknowledges Organizations and teams function as


dynamic systems, where interconnected parts work together and
continuously adapt to environmental changes.

Relevance to Agile:
It focuses on improving solutions step by step, using feedback and
making adjustments, instead of planning everything upfront.
2.Lean Thinking:
Lean thinking is a business methodology. It comes from the
history of Japanese manufacturing techniques applied to
industries and organizations around the world.
The core Principles of lean thinking are eliminate waste
(activities that don't add value) and optimize flow (ensuring
smooth progress of tasks).
• Value: Define value from the customer’s perspective.
• Value Stream: Identify and optimize the flow of value-
creating activities.
• Flow: Ensure smooth and continuous flow of work.
• Pull: Produce only what is needed when it is needed.
• Perfection: Continuously improve processes and eliminate
waste.
3.Systems Thinking
Views a project or organization as a whole
system rather than a collection of isolated
parts.
Encourages understanding of how changes in
one part of the system affect the whole.
• Example: In a software company,
developers, testers, and operations teams
collaborate using DevOps principles.
Automating the deployment pipeline
ensures smooth transitions from
development to production, avoiding delays
caused by handoffs.
4. Theory of Constraints (ToC):

ToC focuses on identifying the most


significant bottleneck (constraint) in a
process and improving it to enhance
overall system performance.

• Example: In a development process,


if testing is the bottleneck, the team
might introduce automated testing
tools to speed up the process and
reduce the manual workload.
5.Servant Leadership:
In this theory, leaders focus on
serving their teams by removing
obstacles, providing support, and
fostering collaboration.

Example: A Scrum Master spends


time resolving team conflicts,
negotiating with stakeholders to
protect the team from scope
creep, and ensuring the team has
the necessary tools and
resources.
Challenges of Agile Software Development:
1.Inconsistent Processes:
Teams follow different workflows, leading to
inefficiencies and misalignment.

2.Lack of Agile Mindset:


Resistance to change and rigid thinking prevent
true Agile adoption.

3.Poor Team Collaboration:


Weak communication and silos hinder teamwork
and productivity.

4.Lack of Management Support:


Leaders fail to provide resources, trust, or
guidance for Agile success.
Classification of agile methods:
• Agile methods can be classified based on their focus areas, processes, and adaptability.

1. Iterative and Incremental Frameworks:


These methods emphasize delivering small, functional parts of a product through iterative cycles.
Eg: Scrum, Extreme Programming(XP), Dynamic Systems Development Method (DSDM)

2. Flow-Based Frameworks:
These methods focus on managing workflows and visualizing progress to optimize delivery.
Eg: Kanban, Scrumban.

3. Scaling Agile Frameworks:


Designed for large organizations with multiple teams working on interconnected projects.
Eg:Scaled Agile Framework (SAFe), Large-Scale Scrum (LeSS), Disciplined Agile (DA)
4. Agile Methods for Continuous Improvement:
These methods emphasize incremental improvement and lean thinking.
Eg: Lean Software Development, Kaizen

5. Hybrid Agile Models:


These combine Agile principles with elements of other methodologies.
Eg: Agile-Waterfall Hybrid, Hybrid Project Management

6. Industry-Specific Agile Methods:


These are tailored for specific fields or workflows.
Eg: Agile Marketing, Agile UX Design
Agile Manifesto And Principles:

The Agile Manifesto is a foundational document for Agile software development. It was created in 2001 by a
group of software practitioners.
The Four Core Values of the Agile Manifesto:
1.Individuals and Interactions:
Emphasizes the importance of collaboration and communication
among team members.
2.Working Software:
Prioritizes delivering functional software to customers rather than
spending excessive time on documentation.
3.Customer Collaboration:
Encourages continuous collaboration with customers
to ensure the product meets their needs.
4.Responding to Change:
Plans provide direction but must be flexible to adapt to evolving requirements
Agile Principles:
Agile Principle 1:

Our highest priority is to satisfy the customer through early and continuous delivery of valuable
software.

Agile Principle 2

Welcome changing requirements, even late in development. Agile processes harness change for the
customer’s competitive advantage.

Agile Principle 3

Deliver working software frequently, from a couple of weeks to a couple of months, with a
preference to the shorter timescale.

Agile Principle 4

Business people and developers must work together daily throughout the project.
Agile Principle 5

Build projects around motivated individuals. Give them the environment and support they need, and
trust them to get the job done.

Agile Principle 6

The most efficient and effective method of conveying information to and within a development team is
face-to-face conversation.

Agile Principle 7

Working software is the primary measure of progress.

Agile Principle 8

Agile processes promote sustainable development. The sponsors, developers, and users should be able
to maintain a constant pace indefinitely.
Agile Principle 9

Continuous attention to technical excellence and good design enhances agility.

Agile Principle 10

Simplicity—the art of maximizing the amount of work not done—is essential.

Agile Principle 11

The best architectures, requirements, and designs emerge from self-organizing teams.

Agile Principle 12

At regular intervals, the team reflects on how to become more effective, then tunes and adjusts
its behaviour accordingly.
Agile Project Management(APM):
Agile Project Management (APM) is an approach to managing projects that focuses on flexibility,
collaboration, and delivering value incrementally.
Key Characteristics of Agile Project Management:
Iterative and Incremental Progress:
Work is divided into small, manageable increments (e.g., sprints) that allow frequent delivery of functional
products.
Collaboration:
Encourages teamwork among cross-functional teams and active involvement of stakeholders
Flexibility and Adaptability:
Plans are adaptable to changing requirements and priorities
Customer Focus:
Continuous customer involvement ensures the product meets evolving needs
Value Delivery:
Prioritizes delivering value early and often rather than waiting until the project's end.
Core Components of Agile Project Management:
• Roles:
Product Owner: Represents the stakeholders, defines the product vision, and prioritizes the backlog.
Scrum Master (or Agile Coach): Facilitates Agile practices, removes roadblocks, and ensures the team stays on track.
Team Members: Cross-functional individuals responsible for executing the work (e.g., developers, testers, designers).
• Artifacts:
Product Backlog: A prioritized list of features, tasks, and bugs.
Sprint Backlog: Tasks selected for completion during a sprint.
Increment: The working product delivered at the end of an iteration.
• Events:
Sprint Planning: Defining what the team will deliver in the upcoming sprint.
Daily Stand-Up: Brief, daily meetings to discuss progress, challenges, and plans.
Sprint Review: Demonstrating the work completed in a sprint to stakeholders.
Sprint Retrospective: Reflecting on what went well and identifying areas for improvement.
• Frameworks:
Common frameworks for APM include Scrum, Kanban, Extreme Programming (XP), and SAFe.
The Agile Project Lifecycle:

Concept/Initiation:
Define high-level goals and identify key stakeholders.

Iteration Planning:
Break the project into sprints or iterations, each lasting 1-4 weeks.

Execution:
Teams work collaboratively to complete tasks from the sprint backlog.

Monitoring and Adapting:


Regularly review progress through stand-ups and sprint reviews.

Closure:
Deliver the final product increment.
Agile Team Interactions:
Agile team interactions are central to the success of Agile projects, emphasizing collaboration, communication, and
continuous improvement.

Key Elements of Agile Team Interactions:


1.Collaboration:
Agile teams are cross-functional, including developers, testers, designers, and product owners working together
toward shared goals.
2.Face-to-Face Communication:
Direct interactions are preferred for clarity and efficiency.
3.Transparency:
Teams share progress, challenges, and plans openly during meetings like daily stand-ups and sprint reviews.
4.Continuous Feedback:
Feedback is exchanged regularly, both within the team and from stakeholders
5.Empowered Teams:
Agile teams are self-organizing, making decisions collaboratively and taking ownership of their work.
Ethics In Agile Teams:
• Ethics in Agile teams plays a crucial role in fostering trust, collaboration, and accountability. Agile principles
prioritize people, interactions, and delivering value to customers, which aligns naturally with ethical behavior.

Core Ethical Principles in Agile Teams


• Transparency: Avoid hiding issues or misrepresenting the status of deliverables.
• Respect: Treat all team members, stakeholders, and customers with dignity and fairness.
• Accountability: Take responsibility for actions, decisions, and outcomes.
• Integrity: Maintain honesty in communication, estimation, and reporting.
• Collaboration: Encourage open communication and active participation from all team members.
• Customer-Centricity: Encourage open communication and active participation from all team members.
• Commitment to Quality: Ensure that the product or service meets high standards of usability, functionality,
and security.
AGILITY IN DESIGN, TESTING:

• Agility in Design and Testing refers to applying Agile principles and practices to the design and
testing phases of software development.

• It emphasizes collaboration, flexibility, and delivering high-quality, valuable features quickly, with
a focus on adapting to change and continuous improvement.

• This approach is essential in Agile methodologies like Scrum, Kanban, and Extreme Programming
(XP), where design and testing are integrated and occur iteratively throughout the project.
AGILE DESIGN:
• Agile design encourages simplicity, responsiveness to change, and close collaboration between designers,
developers, and stakeholders.
Agile Design Techniques:

1. User-Centered Design (UCD):


UCD involves understanding user needs, behaviors,
and goals to create a design that meets
those needs effectively.
2. Prototyping:

Prototyping helps clarify requirements,

explore ideas, and validate designs

before development begins


3.Behavior-Driven Development (BDD):

BDD is a technique that can be used in Agile design to ensure that the design aligns with user behavior and business
outcomes

4. Storyboarding and Wireframing:

• Storyboarding
It helps designers and stakeholders understand how users will interact with the software.

• Wireframing
It helps clarify design concepts early on and facilitates discussions with the team.
5. Domain-Driven Design (DDD):

DDD emphasizes collaboration between domain experts and developers to create a shared understanding of the problem
space.

6. Design Patterns:

Design patterns are reusable solutions to common design problems.


AGILE TESTING:
• Agile Testing refers to a set of software testing practices that are aligned with Agile development methodologies.
Types of Testing in Agile:
Unit Testing: Unit tests are often written by developers
Integration Testing: Focuses on testing the interaction between
different components or systems.
Acceptance Testing: Verifies that the software meets the
requirements and fulfills the user story's acceptance criteria.
Functional Testing: Ensures that the application behaves as
expected in different functional areas.
Regression Testing: Ensures that new changes in the codebase
do not break existing functionality.
• Exploratory Testing: Exploratory testing complements other types
of testing by discovering edge cases or unanticipated issues.
Agile Testing life cycle:
• Impact assessment. Here, we collect the inputs and responses from users and stakeholders to execute the
impact assessment phase.
• Agile Testing Planning. Here, all teams and end-users to plan the testing process schedules,
regular meetings, and deliverables.
• Release Readiness where test engineers have to review the features
which have been created entirely and test if they are ready to go live or
not and which ones need to go back to the Previous Dev Phase.
• Daily scrums To help the test engineers to understand the status
of testing, the goals and targets of the day are set daily.
• Test Agility Review agility reviews are implemented regularly
in the development process to analyze the progress of the development.
Agile Documentations:
• Agile emphasizes producing just enough documentation to meet the needs of the team and stakeholders while
prioritizing working software and collaboration over extensive paperwork.
Key Principles of Agile Documentation:
Just Enough Documentation:
Agile prioritizes working software over comprehensive documentation.
Living Documents:
It is updated regularly as requirements, designs, and solutions change.
Collaboration Over Contract Negotiation:
Agile emphasizes collaborative documentation that fosters communication between team members, stakeholders, and
customers.
Customer-Focused:
The documentation should be simple, accessible, and designed to meet customer needs.

Examples of Agile Documentation Tools:


Jira, Trello, Confluence, Miro/MURAL, GitHub/GitLab, TestRail.
Types of Agile Documentation:
• User-Focused Documentation:
It will focus on User Stories, Acceptance Criteria, User Manuals/Guides, Release Notes
• Team-Focused Documentation:
It will focus on Sprint Backlog, Definition of Done (DoD),
Working Agreements, Technical Designs and Diagrams.
• Process Documentation:
It will focus on Retrospective Notes, Release Plans,
Daily Stand-Up Notes (Optional).
• Technical Documentation:
It will focus on Code Documentation, API Documentation,
Architecture Diagrams, Testing Documentation.
AGILE DRIVERS:
• Drivers are the underlying factors or motivators that push the adoption of Agile methodologies.
Key Drivers of Agile:
Customer Satisfaction: Agile methodologies prioritize customer
feedback and iterative delivery to ensure that the product
evolves to meet the customer’s needs.
Faster Time to Market: Agile enables faster delivery by breaking
down the development process into smaller, manageable chunks (sprints).
Adaptability to Change: Teams must be flexible and responsive to
evolving requirements, market shifts, or new customer demands,
which is why Agile is a natural fit for dynamic industries like tech.
Collaboration: Agile focuses on collaboration both within the team and with
Innovation: Agile methodologies provide a platform for experimentation and innovation
Quality Focus: This ensures defects are identified and addressed early, maintaining high product quality.
Risk Management: Agile helps mitigate risk by delivering work in small, incremental steps, allowing teams to
assess and adjust after each iteration.
AGILE CAPABILITIES:
Capabilities refer to the skills, tools, and practices that Agile teams need to successfully implement Agile
methodologies.

Key Agile Capabilities:


Cross-Functional Teams: This capability allows the team to work collaboratively
and independently, delivering features end-to-end .
Self-Organization: Meaning they can manage their own work and make
decisions about how to tackle tasks
Continuous Integration and Continuous Delivery (CI/CD): Teams must be
able to automate the build, testing, and deployment processes to ensure that
features can be delivered quickly and reliably.
Iterative Development:
Agile teams are capable of working in short, iterative cycles (sprints or iterations), delivering small
increments of work that can be reviewed, tested, and refined
Collaboration and Communication:
Regular stand-ups, sprint reviews, and retrospectives facilitate clear, open, and timely communication
Feedback Loops:
Agile teams need the capability to quickly gather feedback from stakeholders and customers and incorporate
that feedback into the development process.
Agile Planning and Estimation:
Agile teams are skilled in planning and estimating work effectively using techniques like story points,
velocity, and burn-down charts.
Adaptability and Flexibility:
Teams must be capable of adapting to changes in requirements, priorities, and market conditions.
AGILE VALUES:
The values of Agile form the foundation of its culture and decision-making framework.
Agile Values (from the Agile Manifesto):
Individuals and Interactions Over Processes and Tools:
The goal is to foster a cooperative, communicative, and empowered team
environment.
Working Software Over Comprehensive Documentation:
Agile emphasizes delivering functional, working software rather than spending
excessive time on detailed documentation.
Customer Collaboration Over Contract Negotiation:
Agile prioritizes collaboration with customers over negotiating contracts
Responding to Change Over Following a Plan:
Agile values the ability to adapt to change over adhering to a fixed plan.
Drivers, Capabilities and Values:
How Agile Drivers, Capabilities, and Values Interact:

✅ Agile Drivers – Focus on customer satisfaction, speed, and adaptability.


✅ Agile Capabilities – Enable iterative development, cross-functional teams, and CI/CD.
✅ Agile Values – Promote collaboration, flexibility, and delivering high-quality products.

Example of Agile Drivers, Capabilities, and Values in Practice:

✅ Driver – Need for faster feature releases to stay competitive.


✅ Capability – Use Agile practices like iteration & CI/CD for speed.
✅ Value – Prioritize collaboration & flexibility to adapt quickly.

You might also like