My review of Jim Brosseau's Software Teamwork: Taking Ownership for Success is available in the May issue of the Agile Journal. It is nothing less than outstanding!
I found Software Teamwork to be an immensely helpful, intensely practical, profusely insightful field guide to improving team outcomes and changing team behaviors by focusing on interpersonal action and personal leadership. This book belongs on any software team-leader's bookshelf, along with Jean Tabaka's Collaboration Explained and Murray Cantor's Software Leadership.
Other articles in this issue on the theme of "Challenges with Distributed Agile" are:
I started reading through the book Implementing ITIL Configuration Management, by Larry Klosterboer. I'm really not what I'd consider an expert on ITIL nor IT Service Management, but I've had more than my fair share of exposure to it and am certainly no "slouch" in that area either.
This book looks to be an overview of ITIL and to how it applies to configuration management. From there one can extrapolate how much of it relates to CM for not just IT assets and infrastructure but to the software development environment and to software development itself.
The book includes coverage of the following (from the back cover):
- Assessing your current configuration management maturity and setting goals for improvement
- Gathering and managing requirements to align ITIL with organizational needs
- Describing the schema of your configuration management database (CMDB)
- Identifying, capturing, and organizing configuration data
- Choosing the best tools for your requirements
- Integrating data and processes to create a unified logical CMDB and configuration management service
- Implementing pilot projects to demonstrate the value of configuration management and to test your planning
- Moving from a pilot to wide-scale enterprise deployment
- Defining roles for deployment and ongoing staffing
- Leveraging configuration management information: Reporting and beyond
- Measuring and improving CMDB data accuracy
To take the next step, and for a REALLY thorough treatment of how IT service management and CM comes full circle to embrace all of enterprise architecture and software development, I highly recommend Charles Betz' book Architecture and Patterns for IT Service Management, Resource Planning, and Governance: Making Shoes for the Cobbler's Children. As I mentioned in a blog-entry early last year, this book "really ought to be required reading for anyone that fancies themselves a 'CM professional' (especially Software CM) or an 'Enterprise Architect.'"
I just received an advance copy of Programming Groovy from the Pragmatic Programmer's Bookshelf. This complements their work that came out last month on Groovy Recipes.
From the Programming Groovy book webpage:Groovy brings you the best of both worlds: a flexible, highly productive, agile, dynamic language that runs on the rich framework of the Java Platform. Groovy preserves the Java semantics and extends the JDK to give you true dynamic language capabilities?programming in Groovy feels like you’re using an augmented Java. Programming Groovy will help you learn and take advantage of the latest version of this rich dynamic language, so you can be a more productive Java Platform developer.
From the Groovy Recipes book webpage:If you’re a busy Java professional who needs quick solutions to everyday problems, then Groovy Recipes is for you. The Groovy language and Grails web framework give you seamless integration with your legacy Java code while adding the flexibility and dynamism of a scripting language and giving you modern, agile, time-saving techniques. Groovy allows you to write code the way you always thought you should—you’ll never look at Java the same way again.
For those who like Ruby and Rails and the ability to access other Java frameworks and APIs, but also really want their Java-like syntax (and hence more than just JRuby), these are the books to read. Groovy even has its own answer to Rails called "Grails"
See also:
My review of Outside-In Software Development is in this month's edition of The Agile Journal. Kessler and Sweitzer's Outside-in Software Development should resonate deeply with all those who genuinely value the principle of customer collaboration in the Agile Manifesto, and with anyone who has played the role of Product Manager for a software project. This 2008 Jolt award Finalist is not a book about eliciting or prioritizing requirements (or "user stories") for an Agile project. This book goes beyond mere user-stories and their ranking or velocity to focus on uncovering the underlying needs and goals of your stakeholders and understanding what truly adds value for the customer and the business.
... I think Outside-in Software Development is a profoundly important book for anyone in the Agile or Lean "camps" because it addresses and embraces the often neglected pieces of the customer-relationship puzzle that emerge from the stakeholders' perspective, often after the software is released. It shows us how many of those same Lean and Agile values of collaboration, responsiveness, waste-elimination, and respect for people can be successfully applied to the users' experience with our software, and to the stakeholders' experience with ourselves in the service of realizing the very business value we strive to deliver.
Read the full review.
My review of Lean Project Management is in the February 2008 issue of the Agile Journal.Lean Project Management: Eight Principles for Success, is actually a second edition of the eBook Eight Secrets to Supercharge your Project with CCPM. It is available both in hardcopy and eBook formats. Lawrence Leach (www.advanced-projects.com) is perhaps best known as author of one of the most comprehensive texts on the subject of Critical Chain Project Management (CCPM). In this book, subtitled "Combining CCPM and Lean tools to accelerate project results," the author essentially integrates Lean Thinking into CCPM, along with elements from the Theory of Constraints (TOC) and PMBoK/PMI. Leach calls the result Lean Project Management or LPM.
... All in all, I found Lean Project Management to be a fairly quick read providing a good overview of some TOC and CCPM fundamentals and how they align with Lean thinking, as well as how Lean thinking can be applied to some of more traditional PMBoK methods. Someone looking for a more comprehensive reference on TOC thinking processes and CCPM would probably be better off reading Goldratt's books, the work of William H. Dettmer, and the 2nd edition of Leach's Critical Chain Project Management. But for those wanting the bird's eye overview with a brief "zoom in" on some of the details, along with how Lean thinking helps tie it all together with some of the more traditional project management methods, Lawrence Leach's Lean Project Management is a nice overview text describing some of the most powerful aspects of TOC and CCPM through "Lean eyes for the PM guy!"
Read the full review
I am still amazed at the number of software managers who are unfamiliar with "The Mythical man-month" lesson that says (paraphrasing here) adding more people to a late project makes it even later. So I decided to round-up some resources on the subject. Here they are:
Several of the materials I found were course lectures from various Universities:
I like the classic quotes! Among my favorites ...“Adding manpower to a late software project makes it later.”
“How does a project get to be a year late?... One day at a time.”
“Nine women cannot deliver a baby in one month”
“Program maintenance is an entropy-increasing process, and even its most skillful execution only delays the subsidence of the system into unfixable obsolescence.”
“Plan to throw one away; you will, anyhow.”
“Conceptual integrity is the most important consideration in system design.”
“If a system is to have conceptual integrity, someone must control the concepts. This is an aristocracy that needs no apology.”
“The purpose of organization is to reduce the amount of communication and coordination necessary.”
“Build a performance simulator, outside in, top down. Start it very early. Listen when it speaks.”
“The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself... One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be... It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time.”
“The computer resembles the magic of legend in this respect, too. If one character, one pause, of the incantation is not strictly in proper form, the magic doesn't work. Human beings are not accustomed to being perfect, and few areas of human activity demand it. Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program.”
My review of The Art of Agile Development is in the January 2008 issue of the Agile JournalThis is an amazing book! The Art of Agile Development is nothing less than 10+ years' worth of agile development experience distilled into a single compendium of practical insight and mindful application of Agile practices and principles. James Shore and Shane Warden have succeeded marvelously in doing exactly what they set out to do: "packed everything we knew about the day-to-day practice of agile development into 400 pages ... to provide a complete how-to guide and starter kit for beginning and intermediate agile practitioners" (quoted from the book's website).
... I can't think of a better XP practitioner-guide to date that conveys both the practices and principles of XP for novices and intermediate-level readers, and also goes beyond explaining them to provide quintessential insights, tips, contraindications, alternatives, and organizational strategies for how to overcome the many technical and organizational barriers that can stall an otherwise successful attempt adopting XP.
Read the full review
During my hiatus from this blog since the summer, I still managed to keep up with a few of my book reviews for The Agile Journal. Here they are (with hyperlinks) ...Flexible Development: Building Agility for Changing Markets
by Preston G. Smith
published September 2007 by Jossey-BassMy rating: Very good for those looking to apply Agile principles outside of software development. And a very useful concept and measure of flexibility.
Read the full review in the December 2007 Agile Journal (also see the book's website at www.flexibledevelopment.com)
Manage It! Your guide to Modern Project Management
by Johanna Rothman
published June 2007 by the PragmaticProgrammer's Pragmatic BookshelfMy rating: Outstanding! If a budding project manager came to me, with knowledge of text-book project management concepts and project management tools, and asked me "what one book would you recommend to help me swiftly bridge the gap from theory into modern-practice that would most increase my chances of succeeding" I'd be hard pressed to find another book that I'd recommend more highly than Manage It!
Read the full review in the November 2007 Agile Journal.
Continuous Integration: Improving Software Quality and Reducing Risk
by Paul Duvall, Steve Matyas, and Andrew Glover
published June 2007 in the Addison-Wesley Signature SeriesMy rating: Outstanding! For those of you seeking a book on the subject of Continuous Integration (a.k.a. "CI") ... look no further. The book you have got to run out and get is here! No other book to date even comes close to being such a comprehensive and authoritative source of principles, practices, and current technologies and resources about continuous integration.
Read the full review in the October 2007 Agile Journal (also see the book's website at www.integratebutton.com)
Visual Studio Team System Better Software Development for Agile Teams
by Will Stott & James Newkirk
published May 2007 by Addison-Wesley ProfessionalMy rating: A highly practical and comprehensive "nuts and bolts" guide for how to use Microsoft's Team System to do eXtreme Programming (XP) using the Agile values. Read the full review in the August 2007 Agile Journal (also see the book's companion site at www.bettersoftwaredevelopment.org)
Oh, and don't forget to look for my upcoming review of The Art of Agile Development in the January 2008 issue of the Agile Journal.
Design for Trustworthy Software is a rather impressive tome that comprises a compendium of the latest and greatest methods, tools and techniques for system and software design applied to software. It covers Design for Six-Sigma (DFSS) techniques, TRIZ, Taguchi Methods, Quality Metrics, Poka Yoke, 5S, QFD, FMEA, and more.
I expect this book to become a standard reference and graduate-level software engineering text. It is so comprehensive and and yet modern/up-to-date in its coverage. It's a very dry read (and I'm not finished with it yet) and looks to be a comprehensive synthesis of what has been working best in industry for the last 25 years that has only recently (in the past 10 years) been getting some visibility in complex systems software of any significant scale. And it shows how to apply them to software.
Do you find it a challenge to both think and act quickly and gracefully in key situations? I ran across three books in the past year all of which have great advice on how to train yourself to do exactly that:
Maybe this stuff is obvious for a lot of folks who are already skilled at this. Heck some of it is even obvious to me too ... AFTER you learn about it, or while someone is telling you about it. But being able to see it in the moment -- to recognize and identify it, and in less than a heartbeat, respond intelligently and succinctly with grace, civility, shrewdness, and openness, well ... I'm less skilled at that than most (I think) and these are proving helpful to me.
The book Nanoconvergence: The Unity of Nanoscience, Biotechnology, Information Technology and Cognitive Science is an utterly riveting short yet well researched, clear and concise text on the coming future of nanocomputing & botechnology and how it will pervade our everyday life every bit as much as barcodes and magnetic strips on credit/debit cards do today. It is both exciting and scary, and really makes you think about software security and quality attributes and regulatory standards and how much more of a role they must be required to play in this science-fiction-becomes-reality future.
I recommend this book, along with a slightly older one called It's Alive: The Coming Convergence of Information, Biology, and Business to get a really good understanding of what this all portends for the future of software and the business and economic ramifications (Think of Enterprise Architecture and how complex it is, then take it all down to the nano-level and meld it with biotech and cognitive science and cybernetics and man-machine interfaces. Then imagine the first Microsoft and Apple releases of the technology and try not to let your skin crawl while being utterly fascinated)
Then go check out www.nanobioconvergence.org
It hurts to even try to wrap my brain around what CM and things like "continuous integration" even mean and how they will be performed and executed in this "new frontier"
April 2007 marked the release of theObject-Oriented Analysis & Design with Applications, 3rd edition by Grady Booch et.al.
For many, this book was the one that first turned them on to object-orientation as more than just a particular programming language or two, but as an overall way of thinking about how to analyze and design software programs. The book has many classic epiphanies that were precursors to things UML, RUP, patterns and agile development. Booch himself is practically a demi-god of modern software development, architecture and practice.
I guess I've moved on a bit since reading the first edition in the early nineties, because the third edition didn't have as much "zing" for me. And there are so many other good texts around now, that this one reads a bit dry and academic.
I'm actually more interested lately in the work that Booch is doing toward a Handbook of Software Architecture and in his blog.
xUnit Test Patterns: Refactoring Test Code, by Gerard Meszaros (Addison-Wesley Signature Series, May 2007) is nothing short of FANTASTIC!
As I'm reading through the book, I keep saying to myself "Yes!" and "Aha!" over and over again. This book is very appropros for me right now because I'm dealing with a team that has a legacy codebase and is just trying to develop automated tests and they don't yet have a lot of training or experience refactoring or in automating their own tests, or the xUnit-style tools, much less using all of them together.
This book is EXACTLY what the doctor ordered for my current situation. It covers the basics of test automation styles and frameworks using harnesses and drivers, data-driven as well as other styles and the challenges to be addressed, especially with test setup. It has comprehensive coverage of 68 patterns and an awesome website at http://xunitpatterns.com/ which does a far better job of depicting them than I could on this blog.
If you're trying to get a small group of folks to learn how to do agile-style test-automation and refactoring, this is the book with all the patterns and insight you will want to convey to your team.
'Nuff said!
I reviewed the book Lean Software Strategies for the June 2007 issue of the Agile Journal.Lean Software Strategies seems to be one of the first books specifically about applying Lean principles and techniques to software development that is not written by the Poppendiecks. When the book first came out, I admit I was put off by several unfavorable reviews at Amazon.com. When I later learned it won the 2007 Shingo prize for excellence in manufacturing research, and saw Lisa Crispin's review at StickyMinds, I decided to give it a second look. I'm glad I did!
Written by Lean experts from two backgrounds, one an academician/researcher and the other an industry practitioner, the style of the book is very different from that of the Poppendiecks. It takes a much more purist (even academic at times) application of Lean production to software development rather than landing squarely on "Agile" or roughly equating the two. I can understand why fans of the Poppendiecks' books, and perhaps those coming from a background that is more "Agile" than "Lean" didn't exactly "rave" about Middleton and Sutton's book. I can also understand the perspective of those coming from a background in Lean production who complain that the Poppendiecks' books are more about "Agile" than "Lean" and that Sutton and Middleton's book is, in their mind, the first book that is truly about applying Lean to Software. I think both camps are "right" in their own way, and that is why I think it is important to read this book in order to gain a broader and deeper perspective of what Lean is and how it applies to software development.
You can read the full review at agilejournal.com.
I'm behind in a lot of reading and am finally catching up. As a result I be blogging a LOT about books this month. I have all of the following books (most of which are brand spanking new) that I'll be trying to blog about this summer:
I'm looking forward to writing more about them in the coming weeks!
I just received a copy of "Release It! Design and Deploy Production-Ready Software" by Michael Nygard. This looks to be yet another winner from the PragmaticProgrammers' Pragmatic Bookshelf. In fact it made #1 on Amazon.com's "Hot New Releases" list for Design Tools and Techniques for the past two weeks.
Actually, this book isn't about what I had originally thought from reading the early descriptions. I thought it was going to be related to build+release+deployment engineering (CM guy that I am :). It's not about that at all. It is about architecture and design for production deployment concerns, such as: hardware/software "fit", availability/reliability, operability, stability, capacity, and maintainability (not just of the code, but of the deployed product at the customer's site).
"Release It!" covers all those things many of us software-only, high-level abtractionists forgot (or worse yet, never learned) about design & architecture for where the rubber meets the road. I need to add it to my reading list!
[last update: 27-April-2007]
For a colleague at work, I compiled a list of resources covering Lean principles & practices, their integration with Six Sigma and/or Agile development methods, and the application of Lean to software development. I thought others might find it useful, so here it is ...
Books:
- Agile Management for Software Engineering, by David J. Anderson, Prentice-Hall PTR, September 2003
- Lean Software Development: an Agile Toolkit, by Mary & Tom Poppendieck, Addison-Wesley, October 2005 in The Agile Software Development Series
- Implementing Lean Software Development: From Concept to Cash, by Mary & Tom Poppendieck, Addison-Wesley, September 2006 in The Addison-Wesley Signature Series
- Lean Software Strategies: Proven Techniques for Managers and Developers, by Peter Middleton & James Sutton, May 2005 by Productivity Press
- Managing the Design Factory, by Donald G. Reinertsen, The Free Press, New York, 1997
- Product Development for the Lean Enterprise, by Michael N. Kennedy, Oakela Press, 2003
Presentations:
- Lean Project Management, by David J. Anderson
- Agile Management for Software Engineering, by David J. Anderson
- Managing Lean Software Development with Cumulative Flow Diagrams, by David Anderson
- Lean Manufacturing and the Theory of Constraints – Focusing Lean, by Eric Gowland
- Lean Accounting & Throughput Accounting, Peter Milroy
- Lean Six Sigma - Benefits beyond CMMI L3, Nancy POMA, EDS, October 2006
- Software and Lean: Like Chocolate & Cranberries, by James S. Sutton, STSC 2005 Proceedings
- Lean Software Development, by Dr Christoph Stiendl, 2004
- Lean Thinking: The Theory behind Agile Software Development, by Mary Poppendieck, 2002
- Implementing Lean Software Development (Practitioner’s Course), Mary Poppendieck, November 2006
- Competing on the basis of Speed, 1hr video presentation to Google by Mary Poppendieck
- Other talks by Mary Poppendieck at http://www.poppendieck.com/events.htm
Articles/Papers:
- Business Process Management: What's Driving Toyota?, Baseline magazine, September 2006
- Agile Product Development: Managing Development Flexibility in Uncertain Environments, by Stefan Thomke and Donald Reinertsen, California Management Review 40, no. 1 (fall 1998): 8-30
- Managing Lean Software Development with Cumulative Flow Diagrams, by David J. Anderson
- Agile Software Management Accounting for Systems, by David J. Anderson
- Agile Software Management: Dealing with Uncertainty, by David J. Anderson
- The Lean-Agile Connection: Developing Quality Software Efficiently by Alan Shalloway
- Introducing the Integrated Theory by Dan Rawsthorne and Alan Shalloway
- Whitepaper: Agile Work Uses Lean Thinking, Whitepaper by Mishkin Berteig
- Business Performance Through Lean Six Sigma : Linking The Knowledge Worker, The Twelve Pillars, And Baldrige / by James T. Schutta
- Introducing Lean Software Development, by the Lean Software Institute
- Lean Six Sigma and High-Performance Organizations Combined, by Tom Devane (book excerpt)
- Lean Thinking. Protein-based dietary fad or Management’s New Testament?, BPM Europe
- Bringing Lean Systems Thinking to Six Sigma, by Paul Mullenhour and Jamie Flinchbaugh, 2005
- Lean Software Delivery with the IBM Rational Solution, by Clay Nelson, The Ratioinal Edge, October 2006
- TOC and Lean, Iowa State University Center for Industrial Research and Service
- Lean Thinking for Process Improvement, part 2 of a three part series by bizmanuals.com
- Six Sigma and Lean Manufacturing, by Michael Baudin
- Agile vs Lean Software Develompent
- Lean articles at isixsigma.com
- How to Compare Six Sigma, Lean and the Theory of Constraints, by Dave Nave, Quality Progress, March 2002
- Software Development Convergence: Six Sigma-Lean-Agile, by David Hallowell
- Design for Six Sigma and Lean Manufacturing, by Praveen Gupta, 2001
Websites / Blogs:
- Tom & Mary Poppendieck’s home page at http://www.poppendieck.com/
- David Anderson's Agile Management website at http://www.agilemanagement.net/
- Lean Enterprise Wiki search engine: http://lean-enterprise-swicki.eurekster.com/
- http://www.leansoftwareinstitute.com/
- http://leaninsider.productivitypress.com/
- http://www.lean.org/
- http://www.evolvingexcellence.com/
- http://www.leansoftwareengineering.com/
- Lean blogger Pete Shmula at http://www.shmula.com/has lots of nice blog-entries/articles on aspects of Lean
- NetObjectives Lean Software Resources at http://www.netobjectives.com/resources/lean
- Lean manufacturing - Wikipedia, the free encyclopedia
The folks over at SmartBear software have written a nice little book entitled The Best Kept Secrets of Code Reviews. It's free if you go over to their webpage and ask for it (you have to fill out a registration form, and it takes a few weeks to arrive, but they havent spammed me at all since I registered with them a few months ago).
This is a pretty good book and it is VERY pragmatic! It is applicable to Agile development too! [You don't have to do Pair-Programming to be Agile! Pairing is part of XP, which is one particular agile method -- several other agile methods do not require it.]
SmartBear also has a pretty neat suite of tools that look to me like they would be REALLY USEFUL for an organization trying to streamline some of its otherwise heavyweight processes for peer-reviews and related quality metrics:
And "No!" they did not ask me to blog or say anything nice about them or their products! I'm simply coming from the perspective of someone in a large organization who has witnessed a lot of homegrown and heavyweight processes and tools for these kinds of things, and don't see too many commercial tools addressing the peer-review aspect of development and trying to make it lighter-weight and better-integrated with version-control and the rest of SCM.
The have some other nice resources too:
Looks like a lot of "good stuff" to me!!!
Dean Leffingwell, previously known for his book Managing Software Requirements: a Use-case driven approach has just published a new book entitled Scaling Software Agility: Best-Practices for Large Enterprises. He also has a corresponding Scaling Software Agility blog. See the forthcoming reviews on amazon.com.
So how did Dean go from being a requirements-management guru to being a large-scale agile guru? It's not too big of a leap if you think about it! Dean is at Rally Software Development these days (the noted Agile consulting services & tool vendor) and has also authored a few Agile Whitepapers, an essay on The Essence of Agile (now an excerpt from the book), and a few articles for The Agile Journal, most notably Agile at Scale: 7+7 Practices for Enterprise Agility.
Charles Betz' book Architecture and Patterns for IT Service Management, Resource Planning, and Governance: Making Shoes for the Cobbler's Children really ought to be required reading for anyone that fancies themselves a "CM professional" (especially Software CM) or an "Enterprise Architect."
I've been following his erp4it blog for over a year now (and his corresponding erp4it YahooGroup). Those looking for a taste of what the book is like can look there, and also at the paper ERP for IT which I understand was an early precursor for the book that has since been vastly updated and expanded in the latter.
Even though the subject of the book and the blog doesnt explicitly scream "CM", the content in the book and the blog are filled with often fundamental and profound insights about CM from the enterprise view (not just IT/ITIL) and where software CM, infrastructure CM, and network/element CM all fit in to the bigger enterprise picture. Several of his post that are among my favorites made their way into the book in some form or another:
And if that weren't enough, the book also puts together three of my favorite topics: CM, patterns, and architecture.






