Introduction to Agile and Scrum
- > 70% of organizations have incorporated some Agile approaches. — Project Management Institute
- 28% more successful using agile than traditional projects. — Price Waterhouse Coopers
- 47% agile transformations’ failure rate. — Forbes
- #1 reason is inexperience with implementing and integrating the Agile methodology. — VersionOne
- Agile is a mindset that requires culture change.
- It’s hard to learn Agile from just reading a book.
- Recognizing when something is wrong is just as important as knowing how to do something right.
Introduction to Agile Philosophy: Agile Principles
What is Agile?
Agile is an iterative approach to project management that helps teams be responsive and deliver value to their customers faster
Agile defining characteristics:
Agile emphasizes:
- Adaptive planning
- Evolutionary development
- Early delivery
- Continual improvement
- Responsiveness to change
Agile Manifesto:
We have come to value:
Individuals and interactions over processes and tools.
Working software over comprehensive documentation.
Customer collaboration over contract negotiation.
Responding to change over following a plan.
That is, while there is value in the items on the right, we value the items on the left more.
Agile Software development:
- An iterative approach to software development consistent with Agile Manifesto
- Emphasizes flexibility, interactivity, and a high level of transparency
- Uses small, co-located, cross-functional, self-organizing teams
Key takeaway:
Build what is needed, not what was planned.
Methodologies Overview
Traditional Waterfall Development:
Problems with waterfall approach:
- No provisions for changing requirements
- No idea if it works until the end
- Each step ends when the next begins
- Mistakes found in the later stages are more expensive to fix
- There is usually a long time between software releases
- Teams work separately, unaware of their impact on each other
- The people who know the least about the code are deploying it into production
Extreme Programming (XP)
- In 1996 Kent Beck introduced XP
- Based on an interactive approach to software development
- Intended to improve software quality and responsiveness to changing customer requirements
- One of the first Agile method
Extreme Programming values:
- Simplicity
- Communication
- Feedback
- Respect
- Courage
Kanban
What is Kanban?
Kanban | ‘kanban | noun
(also Kanban system) a Japanese manufacturing system in which the supply of components is regulated through the use of an instruction card sent along the production line.
- An instruction card used in a Kanban system.
Origin
1970s: Japanese, Literally mean ‘billboard, sign’
Core principles of Kanban:
- Visualize the workflow
- Limit work in progress (WIP)
- Manage and enhance the flow
- Make process policies explicit
- Continuously improve
Working Agile
- Working in small batches
- Minimum Viable Product (MVP)
- Behavior Driven Development (BDD)
- Test Driven Development (TDD) (Gherkin Syntax — Developed by Cucumber Company)
- Pair programming
Introduction to Scrum Methodology
Agile and Scrum:
- Agile is a philosophy for doing work (not prescriptive)
- Scrum is a methodology for doing work (add process)
Scrum Overview
Scrum:
-
Is a management framework for incremental product development
-
Prescribes small, cross-functional, self-organizing teams
-
Provides a structure of roles, meeting, rules, and artifacts
-
Uses fixed-length iterations called sprints
-
Has a goal to build a potentially shippable product increment with every iteration
-
Easy to Understand – Difficult to master
Sprint:
-
A sprint is one iteration through the design, code, test, and deploy cycle
-
Every sprint should have a goal
-
2 weeks in duration
Steps in the Scrum process:
Agile development is iterative:
The 3 Roles of Scrum
Scrum roles:
- Product owner
- Scrum master
- Scrum team
- Product owner:
- Represents the stakeholder interests
- Articulates the product vision
- Is the final arbiter of requirements’ questions
- Constantly re-prioritizes the product backlog, adjusting any expectations
- Accepts or rejects each product increment
- Decides whether to ship
- Decides whether to continue development
- Scrum master:
- If your team is experienced, you might skip this role, but if you have a team new to Scrum, you require an experienced Scrum master.
- Facilitates the Scrum process
- Coaches the team
- Creates an environment to allow the team to be self-organizing
- Shields the team from external interference to keep it “in the zone”
- Helps resolve impediments
- Enforces sprint timeboxes
- Captures empirical data to adjust forecasts
- Has no management authority over the team
- Scrum Team:
- A cross-functional team consisting of
- Developers
- Testers
- Business analysts
- Domain experts
- Others
- Self-organizing
- There are no externally assigned roles
- Self-managing
- They self-assign their own work
- Membership: consists of 7 ± 2 collaborative members
- Co-located: most successful when located in one team room, particularly for the first few Sprints
- Dedicated: Most successful with long-term, full-time membership
- Negotiates commitments with the product owner – one sprint at a time
- Has autonomy regarding how to reach commitments
Artifacts, Events, and Benefits
Scrum Artifacts:
-
Product backlog
-
Sprint backlog
-
Done increment
Scrum events:
-
Sprint planning meeting
-
Daily Scrum meeting (a.k.a. daily stand-up)
-
Sprint
-
Sprint review
-
Sprint retrospective
Benefits of Scrum:
-
Higher productivity
-
Better product quality
-
Reduced time to market
-
Increased stakeholders satisfaction
-
Better team dynamics
-
Happier employees
Scrum vs. Kanban:
Organizing for Success: Organizational impact of Agile
Organize for success:
-
Proper organization is critical to success
-
Existing teams may need to be reorganized
Conway’s Law:
“Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.”
— Melvin Conway, Datamation, 1968
Examples of Conway’s Law:
If you ask an organization with four teams to write a compiler … you will get a 4-pass compiler!
How teams should be aligned?
-
Teams are loosely coupled, tightly aligned
-
Each team has its own mission aligned with the business (like a “mini startup”)
-
Teams have end-to-end responsibility for what they build
-
The long-term mission is usually around a single business domain
Autonomy is important:
-
It’s motivating – and motivated people build better stuff
-
It’s fast – decisions happen locally in the team
-
It minimizes handoffs and waiting, so teams don’t get bogged down
The Agile dilemma!
The entire organization must be Agile:
Agile + DevOps = Alignment
Mistaking Iterative Development for Agile
The biggest pitfall for companies is that, they think they’re agile, but actually they’re just doing an iterative work.
Agile is not…
- Agile isn’t a new version of a waterfall, software development life cycle (SDLC), where you do legacy development in sprints
- Agile isn’t just the developers working in each sprint, it involves a cross-functional team
- The Agile Manifesto doesn’t include the term “Agile project management” (and so there are no “project managers” in Agile)