The
Software Development Edge is a collection of insightful and
entertaining essays about project management and leadership by Joe Marasco.
Marasco has ingeniously and thoughtfully woven together the fabric of
true-to-life experience with some fabricated personas, proven practices,
lessons learned, and some common sense measurement that should both connect
with and enlighten any reader who has lived on a real world software
development endeavor.
Many (if
not most) of the essays in the book appeared in some earlier version as part of
the "Franklin's Kite" column in The
Rational Edge from December 2000 to December 2002 while Marasco was a
Senior VP at IBM Rational. These days, Marasco is CEO of RavenFlow Software and started writing
again for the Rational Edge sometime in 2004.
The book
is split up into 6 parts each containing 4-5 essays:
Part 1 - General
Management: Beginning at the Beginning;
Computational Roots; Mountaineering; Managing
Part 2 - Software
Differences: The Most Important Thing;
Modeling; Coding; Getting It Out the Door
Part 3 - The
Project-Management View: Trade-offs; Estimating;
Scheduling; Rhythm
Part 4 - The Human
Element: Politics; Negotiating; Signing Up;
Compensation
Part 5 - Thinking
Laterally:
History Lesson; Bad Analogies; The
Refresh Problem; Not So Random Numbers
Part 6 - Advanced
Topics: Crisis; Growth; Culture; Putting
It All Together; Each
chapter in each section is a complete and (mostly) concise exposition of a
topic that is intimately relevant to both software projects in the trenches and
agility in the organization. Many of the chapters use a fictitious character
named "Roscoe Leroy" to cut through all the jargon and get to the bottom-line.
Among those, my favorite is the one entitled Estimating ("What if we
used common sense?")
Advertisement
followed closely by Scheduling ("How
late are you gonna be?"), both of which to this day embody a basic
approach I use to determine the approximate length iterations and milestones in
a software project. The chapters that cover iterative development ("The
Most Important Thing") are easy to read, providing a gentle yet
thorough introduction for those who have never trodden that path before (or
have been wary of doing so). The essays about Rhythm ("A Physicist
Looks at Project Progress"), Trade-Offs
("The
Project Pyramid"), and Signing-Up
("Commitment")
really hit home in describing the reality of many software projects while also
describing common cures (and pitfalls) for such ailments.
At the
same time, the chapters on leadership and communication (most from the "Human
Element" section) are unforgettably inspiring and insightful. The chapter on "Politics
in Technical Organizations" came at a very appropriate time for me when
I first read it. It helped me deal with several non-technical issues with
people and managers I'd been struggling with to try and turnaround a failing
project. I found the chapters on Culture
and Values and Putting it All
Together ("The
Three Phases of Life") to be equally illuminating for me at that time.
It's not that I hadn't heard of or read about these things before - I had. It
was the way they were discussed so realistically and pragmatically the
connected with me and my then responsibilities.
Even
though the book doesn't portend to be directly about agility, it is directly
about the in-the-trenches realities of software projects, and what has been
shown to work again and again over time, along with the pragmatic choices and
lessons that we make and take away. I would heartily recommend this book to any
agilista or non-agile software
project survivor, and especially to those of the budding project manager/leader
persuasion. The essays in this book bridge the gap between theory and practice
by injecting the levity and reality of human experience in a concise, entertaining
manner that is both practical and memorable.
About the Reviewer
Brad
Appleton is an enterprise SCM/ALM solution architect for a Fortune 100
technology company. Currently he helps projects and teams adopt and apply agile
development & SCM practices. Brad also author's the Agile CM Environments blog, and is
co-author of Software Configuration Management Patterns: Effective
Teamwork, Practical Integration, the "Agile SCM" column
in CMCrossroads.com's CM
Journal, and is a former section editor for The C++ Report. Since 1987,
Brad has extensive experience using, developing, and supporting SCM
environments for teams of all shapes and sizes. He holds an M.S. in Software
Engineering and a B.S. in Computer Science and Mathematics.