Rapid Development : Function Point Analysis
When I was studying Computer Science, one of my favorite CS Professors was a fan of Steve McConnell’s approach to system analysis and software design. I had read his book Code Complete, which is an industry standard for software design. When I was getting ready to go on the road for a brief tour, my professor suggested I take McConnel’s Rapid Development as reading material.
Side note : I have always been a voracious reader when traveling, particularly on band tours. I would carry a few books with me at the start of any trip, and as I completed a book, I’d look for a bookstore where I could trade it for another title. In some cases, venues provided a “band house” for our lodging while performing several shows in the area. This was especially nice, because it meant we could (1) do our laundry and (2) actually cook a meal. The band houses usually had a small collection of videos and books to keep us entertained. I often would leave books behind for others to read. On occasion I found an interesting book and brought it along for the next leg of the journey. In Victoria, BC, the band house had a copy of Foucault’s Pendulum, by Umberto Eco, which I finished reading as we made our way down the west coast. Ultimately, that book was left in Bend, Oregon. I’m sure it continued its journey in the hands of another musician.
My copy of Rapid Development is from the first pressing. It’s a dog-eared book with post-it notes, and hand-written margin notes. It’s been on my work bookshelf in various cubicles and offices for the past 20 years, and I’ve loaned it out more times that I can count. This is the book that made me want to become a project manager. It also has been a book that I have found useful as a manager and leader.
Among the highly useful principles in this book is the practice of “Function Point Analysis”, which is an estimation technique that is very useful in modern Agile decomposition and estimation. I have adapted FPA for use with my PMO team at Disney, and it’s a good basis for task estimation in software development. In addition, the book emphasizes effective principles for managing high-performing teams, and for business customer satisfaction – which has a strong basis in effective, precise communication.
For Agile development teams, one of the initial opportunities for improvement tends to be estimation. Newly formed teams will not have a baseline velocity, and will not have estimation / retrospective data to feed the continuous improvement loop. Narrowing the estimation error has an immediate effect on normalizing the team’s performance; this is where FPA can be effectively leveraged. After 4-6 sprints, estimation variability versus actuals will be reduced, and sprint loading will become a reliable predictor of the work that will be actually accomplished in each sprint.
This book is worth a read. Steve’s seminars are also interesting, and he has established a good curriculum for technology thought leaders.