A Django site.
June 3, 2008
» Presentation Zen by Garr Reynolds

One of the books I added to my permanent collection earlier this year is Presentation Zen: Simple Ideas on Presentation Design and Delivery (Voices That Matter) by Garr Reynolds. This was around the time I attended VizThink, which filled my head with ideas of how presentations can be more compelling and engaging experiences. In March, Reynolds spoke at Google and the video of that presentation is available for online viewing (Found via a blog I was reading last night, but I can't remember which one).

1360

May 27, 2008
» BOOK: Implementing ITIL Configuration Management

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.'"

May 22, 2008
» How to Read a Computer Book

As someone who has spent a small fortune on books over the years, this paragraph from Seth Godin's recent post on How to read a business book has me wanting to expand on this topic:

Computer books, of course, are nothing but bullet points. Programmers get amazing value because for $30 they are presented with everything they need to program a certain tool. Yet most programmers are not world class, precisely because the bullet points aren’t enough to get them to see things the way the author does, and not enough to get them motivated enough to actually program great code.

Seth's Blog: How to read a business book

In Seth's post, he writes, "If you’re reading for the recipe, and just the recipe, you can get through a business book in just a few minutes." The same can be said for most of the "computer books" on the market. I can only think of a few books related to software development that I've read cover-to-cover. The rest I treated as software development recipe books. I suspect that I'm not alone in doing that. However, I think one premise of Seth's bit about "computer books" is not always valid, which is that these books are written by world-class programmers. Some authors are just good at aggregating a bunch of useful content in one place - creating recipe books. There are some great authors who are world-class programmers. They add a lot of value above and beyond what you could discover for yourself in the product documentation. They write the books I'll buy based solely on the strength of the author's brand. Their books are worth of cover-to-cover reading; however, they are the exception.

Who are your favorite authors?

1355

May 12, 2008
» BOOK: Programming Groovy and Groovy Recipes

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:

» BOOK: Outside-in Software Development

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.

April 26, 2008
» Zero to Hyper Agile in 90 Days or Less

This is an evolving web version of a book that I'm writing titled "Zero to Hyper Agile in 90 Days or Less." If you have the time to read it straight through, that would be great. If you don't have the time or inclination for that, how about picking a section or two and leaving your frank feedback? Any and all feedback will be appreciated. Many thanks to all who have commented so far!

The end of each section of the "book" links to the next section.

Table of Contents

Introduction
Agile in a Nutshell
What is Agile?
Primary vs Secondary Benefits
Agile Development, What's in it for Me?

The Problems With Traditional Development
Dev Team Having Performance Problems? Try Niagra!
The Chinese Finger Trap of Traditional Development
The Chinese Finger Trap: Architecture, Development, and QA

Short Iterations
Unconciously Agile
Natural Law
Agile Development is People Oriented
The Agile Waterfall

Hyper Agile Development
There is no Bug. It is Not The Bug That Bends, it is Only Yourself
Apply Elegant Architecture to Your Dev Team
How Agile Solves Problems

Hyper Agile Lifecycle

Agile Product Management
The Role of Defect Management in Agile Development
Designing Software is the Same as Predicting the Future
Frequent Releases Improve Code Quality Faster
The Role of QA in an Agile Project
The Role of QA in an Agile Development Project Part II

Integration
Multi-Stage Continuous Integration

Releasing
It is Better to Find Customer Reported Problems as Soon as Possible
Customers Don't Want Frequent Releases
Tuning the Frequency of Your Release

Complimentary Practices
Refactoring and the Law of Unintended Consequences

Bibliography

More to come!

February 19, 2008
» BOOK: Lean Project Management

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

February 13, 2008
» Paul Duvall “Continuous Integration”

Continuous Integration was popularized by Martin Fowler and Kent Beck. It is so tightly integrated with version control system (”Maintain a Single Source Repository”, “Everyone Commits Every Day”, “Don’t Commit Broken Code” are basic practices of CI), that it clearly deserves mentioning here. Martin Fowler wrote an overview article: “Continuous Integration”.

“Continuous Integration: Improving Software Quality and Reducing Risk” is the book by Paul Duvall which was published in Martin Fowler signature series. You may find sample chapters online:

February 3, 2008
» The Majesty of the Mythical Man-Month

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.”


January 16, 2008
» Book Recommendations for Agile Development

Continuous Integration, Paul M. Duvall
There's much more to Continuous Integration (CI) than just kicking off lots of builds and this book proves it. I've always been a big fan of CI, but even so I was skeptical that there could be enough material to fill a whole book (283 pages). There's really much more in this book than just CI. The author uses the context of CI to cover lots of software development best practices. Topics include: Continuous Build, Continuous Test, Continuous Inspection, Continuous Database Integration and many more. Release Engineers in particular will want to recommend this book as it eloquently and effectively covers many topics which are RE pet peeves such as "it works on my machine" and creating a consistent directory structure.

Patterns of Agile Practice Adoption, Amr Elssamadisy
This is a no-nonsense book for those that are looking to adopt some Agile practices, but aren't sure where to start. The book will help you to identify which problems you have that Agile practices can help solve and then gives straightforward advice on how to adopt those practices. It is available from InfoQ for free here.

Extreme Programming Explained - 2nd Edition, Kent Beck
Whether you agree with the idea of 3x5 cards or not, Kent's book is a short and easy read that is well worth the effort. A seminal book on Agile development.

Lean Six Sigma, Michael L. George
I read this book because I was interested in learning more about Six Sigma. However, I selected this book because the idea of "Lean" was appealing. The way that the problem and solutions for finished product sitting on a factory floor is explained immediately suggested parallels to finished features sitting in the source repository waiting for release.

Lean Software Development, Mary Poppendieck and Tom Poppendieck
These folks have done an excellent job of taking the lessons of Lean manufacturing, pioneered by the Toyota Production System, and translating them to software development. I read "Lean Six Sigma" first and on my next trip to the book store "Lean Software Development" became an obvious choice. Reading this book was the tipping point for me.

Agile Project Management with Scrum, Ken Schwaber
If you are already familiar with Scrum, this is a treasure trove of examples of how it has been applied in the real world.

January 15, 2008
» BOOK: The Art of Agile Development

My review of The Art of Agile Development is in the January 2008 issue of the Agile Journal

This 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

January 8, 2008
» Flexible Development, Manage It, and Continuous Integration

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-Bass

Manage It! Your guide to Modern Project Management

by Johanna Rothman
published June 2007 by the PragmaticProgrammer's Pragmatic Bookshelf
    My 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 Series
    My 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 Professional

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.

January 2, 2008
» Agile Book Development

I'm working on a book tentatively titled "Zero to Hyper Agile in 90 Days or Less." I have found that writing blog entries is a good way to create new content and conversely that turning parts of the book into blog entries is a good way to get early feedback on the book. However, a blog is a pretty poor way to organize content for a book, so I've decided to try an experiment. I'm copying all of my blog posts to a wiki, organized in the same way as the book. I'll do a bit of editing as I go, but initially the content will be pretty close to straight copies from my blog. Also, I'm not currently planning to put the full book content there, so there will be missing transitions initially, but I'll try to make the wiki "version" of the book as readable as possible as quickly as I can.

Please take a look at and provide feedback on the on-line version of "Zero to Hyper Agile in 90 Days or Less."

October 27, 2007
» Karl Fogel: “Subversion’s Delta Editor: Interface as Ontology”

Second chapter in O’Reilly book “Beautiful Code: Leading Programmers Explain How They Think” was written by Karl Fogel, and is called “Subversion’s Delta Editor: Interface as Ontology”. Karl has put this chapter online under the free license.

Read this chapter online: rants.org: “Beautiful Code Chapter Now Online”.

August 13, 2007
» BOOK: Design for Trustworthy Software

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.

» Quick Thinking on Your Feet in the Line of Fire

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.

» BOOK: Nanoconvergence

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"

August 7, 2007