Book Notes #23: Agile and Iterative Development - Craig Larman

William Meller - Agile and Iterative Development - Craig Larman
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.

William Meller - Agile and Iterative Development - Craig Larman

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!

Follow me on LinkedIn - Twitter - Instagram

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!


William Meller - Subscribe


Pages