This book brings research, results, and evidence about the value of using agile and the value of switching to agile and iterative methods.
Summary
Title: Agile and Iterative Development: A Manager's Guide
Author: Craig Larman
Themes: Agile, Career, Cases, Technology, Management, Business
Year: 2004
Publisher: Addison-Wesley Professional
ISBN: 0131111558, 9780131111554
Pages: 342
This book is an efficient introduction for both managers and practitioners that need a distilled and carefully organized learning aid for hands-on practices from planning to requirements to testing and the values that define these methods.
This was considered, in 2004, the definitive guide for managers and students to agile and iterative development methods: what they are, how they work, how to implement them, and why you should.
Craig Larman provides evidence of the value of switching to agile and iterative methods. Research (examined and cited in detail within this book) shows that iterative methods reduce the risk of failure, compared to traditional models of development.
My Book Highlights:
"... Adaptive development is a related term. It implies that elements adapt in response to feedback from prior work—feedback from users, tests, developers, and so on. The intent is the same as evolutionary development, but the name suggests more strongly the feedback-response mechanism in evolution..."
"... A study by Boehm and Papaccio showed that a typical software project experienced a 25% change in requirements. This trend is corroborated in another large study; software development is a domain of inventive high-change projects..."
"... Each iteration includes production-quality programming, not just requirements analysis, for example. And the software resulting from each iteration is not a prototype or proof of concept, but a subset of the final system..."
"... In each iteration, there is a one- or two-day requirements workshop in which the specifications expand and refine, in response to further analysis and feedback from the system under development..."
"... Research shows that project failure is reduced when there is increased direct involvement and links between the ultimate clients or users of a new software product and developers..."
"... Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress..."
By studying this book, you will learn to apply the key ideas in agile and iterative development, the details and comparison of four influential iterative methods, the answers to frequently asked questions, and important related management skills.
Some key insights and learnings from the book include:
- Agile development is a flexible and adaptive approach to software development that emphasizes rapid iteration and continuous improvement.
- The Agile Manifesto, a set of guiding principles for Agile development, emphasizes individuals and interactions, working software, and customer collaboration over processes and tools.
- Agile development methods, such as Scrum and Extreme Programming (XP), provide frameworks for implementing the Agile Manifesto in practice.
- Iterative development is a key aspect of Agile development, in which the software development process is repeated in cycles or iterations. Each iteration involves planning, design, development, and testing.
- Agile development requires strong collaboration and communication among team members, as well as active involvement from the customer or end user.
- Agile development can lead to faster delivery of high-quality software, improved customer satisfaction, and increased flexibility in responding to changing requirements.
- Agile development may not be suitable for all projects, and organizations should carefully consider their specific needs and constraints before adopting an Agile approach.
- Agile and iterative methods have emerged as the most popular approaches to software development, and with good reason.
The book's goal is quality information that can be quickly understood and applied.
Chapters of the Book:
1 - Introduction
Software Is New Product Development?
What's Next?
Web Resources
2 - Iterative & Evolutionary
Iterative Development
Risk-Driven and Client-Driven Iterative Planning
Timeboxed Iterative Development
During the Iteration, No Changes from External Stakeholders
Evolutionary and Adaptive Development
Evolutionary Requirements Analysis
Early Top Ten High-Level Requirements and Skillful Analysis
Evolutionary and Adaptive Planning
Incremental Delivery
Evolutionary Delivery
The Most Common Mistake?
Specific Iterative & Evolutionary Methods
What's Next?
Recommended Readings
3 - Agile
Agile Development
Classification of Methods
The Agile Manifesto and Principles
Agile Project Management
Embrace Communication and Feedback
Programming as If People Mattered
Simple Practices and Project Tools
Empirical vs Defined & Prescriptive Process
Principle-Based versus Rule-Based
Sustainable Discipline: The Human Touch
The team as a Complex Adaptive System
Agile Hype?
Specific Agile Methods
What's Next?
Recommended Readings
4 - Story
What's Next?
5 - Motivation
The Facts of Change on Software Projects
Key Motivations for Iterative Development
Meeting the Requirements Challenge Iteratively
Problems with the Waterfall
What's Next?
6 - Evidence
Summary
Research Evidence
Early Historical Project Evidence
Standards-Body Evidence
Expert and Thought Leader Evidence
A Business Case for Iterative Development
The Historical Accident of Waterfall Validity
What's Next?
Recommended Readings
7 - Scrum
Method Overview
Lifecycle
Work products, Roles, and Practices Values
Common Mistakes and Misunderstandings
Sample Projects
Process Mixtures
Adoption Strategies
Fact versus Fantasy
Strengths versus Other
History
What's Next?
Recommended Readings
8 - Extreme Programming
Method Overview
Lifecycle
Work products, Roles, and Practices Values
Common Mistakes and Misunderstandings
Sample Projects
Process Mixtures
Adoption Strategies
Fact versus Fantasy
Strengths versus Other
History
What's Next?
Recommended Readings
9 - Unified Process
Method Overview
Lifecycle
Work products, Roles, and Practices Values
Common Mistakes and Misunderstandings
Sample Projects
Process Mixtures
Adoption Strategies
Fact versus Fantasy
Strengths versus Other
History
What's Next?
Recommended Readings
10 - Evo
Method Overview
Lifecycle
Work products, Roles, and Practices
Values
Common Mistakes and Misunderstandings
Sample Projects
Process Mixtures
Adoption Strategies
Fact versus Fantasy
Strengths versus Other
History
What's Next?
Recommended Readings
11 - Practice Tips
Project Management
Environment
Requirements
Test
12 - Frequently Asked Questions
In conclusion, "Agile and Iterative Development" by Craig Larman provides a comprehensive and insightful look into the world of Agile development.
From the principles of the Agile Manifesto to the specifics of Scrum and Extreme Programming, this book offers valuable guidance for anyone looking to implement an Agile approach to software development.
It highlights the importance of flexibility, collaboration, and continuous improvement in the software development process.
Agile development can lead to faster delivery of high-quality software, improved customer satisfaction, and increased flexibility in responding to changing requirements.
Craig Larman is known throughout the international software community as an expert and passionate advocate for object-oriented technologies and development, and iterative and agile development methods. He serves as Chief Scientist at Valtech, a global consulting and skills transfer company, where he has led the adoption of iterative and agile methods. Larman also authored Applying UML and Patterns, the world's best-selling text on object-oriented analysis and design, and iterative development.
I am incredibly grateful that you have taken the time to read this post.
Your support and engagement mean the world to me, and I truly appreciate your interest in the topics I write about.
I hope that you have found this post informative, educational and engaging.
If you are interested in reading more of my work, please visit other articles here on the website.
I promise to continue providing valuable and high-quality content for your enjoyment and education.
Thank you again for reading and I hope to see you soon!
Here are some related articles you may enjoy:
There are even more good things I've prepared for you!
Subscribe below or click here to receive new posts in your Email!
Do you want to read some book notes and recommendations? Discover more here!
Do you want to have amazing weekly content curation? Discover more here!
Ready to make a positive impact?
Support my work by sharing my content with your network.
Your simple act of kindness can reach new heights and help spread valuable information.
Want to show your support in a tangible way? A virtual coffee is a small but mighty way to show your appreciation and give me the extra energy to keep crafting valuable content!