Unit-1
Unit-1
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:
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):
2. Flow-Based Frameworks:
These methods focus on managing workflows and visualizing progress to optimize delivery.
Eg: Kanban, Scrumban.
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
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
Agile Principle 10
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.
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.
• 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:
BDD is a technique that can be used in Agile design to ensure that the design aligns with user behavior and business
outcomes
• 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: