售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
Title Page
Copyright and Credits
The Agile Developer's Handbook
Packt Upsell
Why subscribe?
PacktPub.com
Contributors
About the author
About the reviewer
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the color images
Conventions used
Get in touch
Reviews
The Software Industry and the Agile Manifesto
Why the software industry needed to change
Delivery as a software product
Delivery as a software project
Product versus project
Scope was the priority
Estimates
Uncertainty buffers
Estimates became ironic
Variability in our estimates
And then there's missing the point entirely
Where's the business value?
So the project mindset isn't good?
The Agile values
The Agile principles
Incremental – adaptive versus waterfall – predictive
The Waterfall process and predictive planning
Incremental delivery and adaptive planning
Agile is a mindset
An Example of "Being Agile"
Scenario
Our response
Summary
Agile Software Delivery Methods and How They Fit the Manifesto
Understanding Scrum
Background
Introduction to the mechanics of Scrum
Sprint Planning – part 1
Sprint Planning - part 2
The Daily Scrum
The Sprint Review
The Sprint Retrospective
Additional events
XP - Extreme Programming
Background
Introduction to the mechanics of XP
The planning game
Part 1 – Release planning
Part 2 – Iteration planning
Implementing the iteration plan
Iteration demo
Iteration retrospective
Kanban and Lean Software Development
Background
Reducing waste
Single-piece flow
How Kanban/Lean fit into the Agile movement
Introduction to the mechanics of Lean/Kanban
Getting started with Kanban
Step 1 – Make the team's work visible
Step 2 – Make the work policies of the team explicit
Step 3 – Improve flow
Step 4 – Kaizen or continuous improvement
Choosing the right framework
Designed for small teams
They don't include product discovery phases
Not all frameworks prescribe technical practices
There are similarities with subtle differences
Mixing and matching Agile methods
Summary
Introducing Scrum to your Software Team
Why Scrum is an excellent place to start
Iterations and iteration length
Starting a new Scrum team
Prerequisites
Preparing to Sprint
Activity – defining the Product Backlog
Activity – release planning
Activity – introducing the Product Backlog
Activity – estimating User Stories on the backlog
Activity – setting up the Scrum Board
Discussion – Sprint Zero
Day one of the Sprint
Event – Sprint Planning
What can we achieve in this Sprint?
How will we achieve it?
The Sprint Goal
Event – first Daily Scrum
A day in the life of a Scrum team
Measuring and reporting progress with visualization
Avatars
Done stickers
Burndowns
Sprint Goal confidence
The importance of visible workspaces
Removing impediments
Managing delivery as a team sport
The last day of the Sprint
Event – Sprint Review
Event – Sprint Retrospective
The importance of team retrospectives
Summary
Gathering Agile User Requirements
The pitfalls of traditional big upfront requirements
Why User Stories produce results
What a User Story is and how to use it
The User Story format
Additional story card elements
The stub
Acceptance criteria
Story size
Notes
Card, conversation, confirmation
Acceptance criteria versus the Definition of Done (DoD)
Telling the team "what", not "how"
Brainstorming a bunch of User Stories
Estimating Agile user requirements
Planning Poker
Playing Planning Poker
References
Summary
Bootstrap Teams with Liftoffs
What's a team liftoff?
ACTIVITY – Agile training
ACTIVITY – Sharing the vision
Step 1 – Meet the sponsors
Step 2 – The company purpose
Step 3 – The product vision
Step 4 – The current mission
Step 5 – Define success
Defining success metrics
Activity – Forming a team charter
Step 1 – Defining done
Step 2 – Working agreement
Step 3 – Team calendar
References
Summary
Metrics that will Help your Software Team Deliver
A brief introduction to measurements for Agile software delivery
Understanding measurements
Qualitative versus quantitative measurements
Negative versus positive metrics
Quantitative metrics
Team velocity
Sprint Burndown chart – TEAM
Release burndown charts
Simple Release Burndown chart
Enhanced Release Burndown chart
Code quality
Code complexity
Qualitative metrics
Defining what success looks like
Defining our success
Using our Team Success Indicators
User Happiness Index
Summary
Software Technical Practices are the Foundation of Incremental Software Delivery
Building the thing right versus building the right thing
Refactoring
How does this keep us Agile?
Things to try
Test-Driven Development
How does this keep us Agile?
Things to try
Pair programming
How does this keep us Agile?
Things to try
Activity – pair programming ping pong
Emergent design
How does this keep us Agile?
Things to try
Activity – emergent design discussion
The DevOps culture
Continuous Integration
How does this keep us Agile?
Things to try
Continuous Delivery
How does this keep us Agile?
Things to try
Continuous Deployment
How does this keep us Agile?
Things to try
Summary
Tightening Feedback Loops in the Software Development Life Cycle
Implementing incremental delivery in Agile
Working with software in small, manageable chunks
Inspection and adaption
The importance of User Experience (UX)
Shifting left
Shifting right
Introducing some Lean thinking to improve flow
The coin game results
Systems thinking – Optimizing the whole
Changing our workflow
Kaizen and developing a small, continuous improvement mindset
Fail Cake
Root cause analysis with the Five Whys method
Adopting Lean Startup methods to validate ideas
Build, Measure, Learn
An example of Lean Startup MVP
Background
Hypothesis
Approach
Learning rapidly by doing and failing fast
Summary
Seeking Value – How to Deliver Better Software Sooner
Moving from project to product thinking
Cynefin – A sense-making framework
The advantages of a product team
Moving from project to product
Setting objectives to create alignment of purpose
Using Objectives and Key Results (OKRs)
Hypothesis-Driven Development (HDD)
Data, Insights, Beliefs, Bets (DIBBs)
Seeking value
How to seek value
Telling our team "the why" not "the what"
Summary
Using Product Roadmaps to Guide Software Delivery
The importance of Product Roadmaps
Product Discovery to create roadmaps
User Story Mapping
Activity – creating a User Story Map
Step 1 – User roles
Step 2 – The first User Journey
Step 3 – Alternative paths, sub-tasks, details, and business rules
Step 4 – Naming the activities
Leveraging the User Story Map
Impact Mapping
Activity – Creating an Impact Map
Question 1 – Why are we doing this?
Question 2 – Who will help us?
Question 3 – How will they help us?
Question 4 – What will we do?
Leveraging an Impact Map
Working collaboratively with the team to create a shared understanding
Using Spikes to reduce business and technical unknowns
Using Rolling Wave Planning for adaptive delivery
Summary
Improving Our Team Dynamics to Increase Our Agility
How to create high-performing teams
Collaboration is the key
Knowledge work and high-bandwidth communication
Communication lines
Psychological safety – what it is and how to create it
Further reading
The stages of team formation
Stage 1 – forming
Helping our team process this phase
Relationship-building games
Stage 2 – storming
Helping our team process this phase
Coach – diversity is a good thing
Coach – conflict happens, how to navigate it
Positivity and successful relationships
Activity – process the conflict
Group decision making
Coach – focus on the task, not the person
Coach – conflict protocols
Coach – giving feedback
Stage 3 – norming
Helping our team process this phase
Activity – experiments in process
Activity – improve the team's ability to self-assess
Stage 4 – performing
Helping our team process this phase
Activity – 360 team review
Stage 5 – adjourning/mourning
Helping our team process this phase
Learning by practicing
Hackathons
Innovation Days
Running a hackathon or innovation day
Google's 20% time and other alternatives
Summary
Baking Quality into Our Software Delivery
Cross-pollination of skills
Mob programming
Why does mob programming work?
How does mob programming work?
Ergonomics
No more bugs
Bugs caused by the way we write code and design our software
Bugs caused by our understanding of the problem
Bugs caused by the nature of the problem changing
Refactoring our environment
No more estimates
Summary
The Ultimate Software Team Member
The power of motivation
Extrinsic drivers
Intrinsic drivers
Mastery
Autonomy
Purpose
Activity – moving motivators
Why are intrinsic drivers important?
The entrepreneurial developer
The team player
The problem with "rockstars"
The growth mindset
Growth mindset versus fixed mindset
An example of a fixed mindset behavior versus a growth mindset behavior
How can we embrace a growth mindset?
Fostering a learning habit
Summary
Moving Beyond Isolated Agile Teams
How an Agile approach will organically flatten an organizational structure
From a hierarchical organization to collaborative governance
The Big Agile board
A network of teams
Self-selection to create a true-self organization
Further reading
Modern leadership
Changing to a fly-by-wire system
Implementing a fly-by-wire approach
Setting the challenge
Cultivating culture
Ensuring team engagement
Feeling recognized
Feeling relevant
Feeling successful
Creating engagement
Example – Changing up the performance review
Performance review 360 – Intermediate level
Performance Review 360 – Advanced level
The art of Agile leadership
Experiment – Creating informal networks as a nervous system
Experiment – Communities
Organizational styles for flatter structures
Further reading
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜