* This month's Feature Article: Discovering and Maintaining Your Project's Heartbeat, Part 2
Feature Article: Discovering and Maintaining Your Project's Heartbeat, Part 2
Last month, I discussed how you to generate and maintain a project's heartbeat–a project's rhythm. If you missed that issue, see https://www.jrothman.com/pragmaticmanager/heartbeatpart1.html. This month, you might want to consider some development and testing approaches for maintaining that heartbeat.
1. Continuously integrate all code.
Continuous integration is a cheap way of creating and maintaining a heartbeat. A developer who checks in his or her code every day develops a daily rhythm. If all the developers check in every day, the project develops a rhythm. Now, you can't just check in broken code–you need to check in *working* code. Which brings us to point #2.
2. Develop and use automated unit tests and regression tests.
Unit tests and regression tests help the project team accomplish different tasks, and both are necessary for a regular project heartbeat.
Unit tests help developers know about the details of their work and see the micro problems. If developers write and maintain unit tests, it's easy to see these small problems as they occur–and fix them. If developers write and run unit tests, they know whether or not *their* code is working.
But unit testing alone isn't enough to maintain an entire project's heartbeat. You also need to know that anything you're considering checking in doesn't break already-existing functionality. That's the reason for regression tests. You run regression tests against a local build, before you check into the main.
If you miss something your unit tests and regression tests don't check, you can decide where to add more tests. I'll explain some more about the possible choices for regression tests at the system level in a future Pragmatic Manager.
If you have unit tests and regression tests, you know you're checking in working code. I recommend you automate your unit tests and as many regression tests as possible, because then the cost to run those tests is low.
Some of you might be asking, “But our regression tests test through the GUI, and the cost to automate those tests is high, higher than we want to spend.” Okay, then write regression tests from under the GUI. You may have other regressions you can't test on a regular basis with these automated tests, but you will obtain considerable benefit from the regression tests you have automated.
BTW, I prefer test driven development to developing the unit tests after the code. I was never disciplined enough to write all the unit tests if I wrote them after the code. Maybe your developers are smarter and tougher and more disciplined than I was. But, I think I'm representative of too many developers. That's why I now write unit tests first 🙂
3. Monitor the Fault Feedback Ratio.
I use the weekly Fault Feedback Ratio (the number of rejected fixes to the total number of fixes), the FFR, to know if there's something else I need to suggest to the developers or testers as a project manager. If the FFR rises above 10%, it's time to take some action.
For example, if developers aren't already reviewing their fixes, I'll ask them to start. If they're not automating and rerunning their unit tests, I'll ask them to start. If they're doing all the unit testing and system-level regression testing, I'll ask them to consider some other testing on the testing continuum.
But I won't know what actions to take until I have some data, and the FFR is one good piece of data.
Esther Derby, Jerry Weinberg, and I will be teaching another PSL (Problem Solving Leadership) March 16-21 in Albuquerque, NM. PSL is experiential training for learning and practicing a leader's most valuable asset: the ability to think and act creatively. PSL is the gold standard for leadership training, and I'm thrilled to be teaching again with Esther and Jerry. See https://www.jrothman.com/syllabus/PSL.html for the syllabus. We have just a couple of spaces left. If you're interested, please send me email, jr at jrothman dot com. We'd love to have you.
I updated the templates for Manage It! Your Guide to Modern, Pragmatic Project Management. If you don't have templates for your projects, or if you're not satisfied, see http://www.pragprog.com/titles/jrpm and download the templates. Or, you can download them from my site ManageItTemplates.
Take a look at my blogs for my most recent writings:
Thanks for reading, and please do send me your comments.
© 2008 Johanna Rothman
Tags: automated test, continuous integration, fault feedback ratio, project management