Why does adding more controls make for fast software development?
Ideally, adding controls makes the team's progress reports more visible and more accurate, which makes for fast development cycles in three ways. First, it makes bottlenecks stand out so they get attention sooner. Second, it encourages each member of the team to be more productive on a day-to-day basis. Third, it encourages the right participation by executives who may have no one else to answer to within the development team.
"Thirty percent of the calls to the PMO [project management office] used to be requests for status," said one customer, "even though there was an online project dashboard and emailed spreadsheet." Tracking project progress continues to be mysterious and reports are frequently inaccurate.
Tracking project progress continues to be mysterious and reports are frequently inaccurate.
Why is this? Status meetings are held with software engineers who are optimists -- "It'll be ready tomorrow. Just one more test" -- and quality engineers who are pessimists -- "We need more testing." Consequently, any status delivered is tempered by the experience and wisdom of the project manager. We know which project teams deliver and which have a more flexible approach to the calendar. Project managers adjust plans accordingly.
We trust the project team to do its own thing in its own way in its own time. We don't want to micromanage. We want an organic creative process. This leaves room for turnover delays to go unremarked for a day or two. Incomplete turnovers result in additional work.
Errors not logged consistently add the burden of missed remediation. Waiting for an overdue executive approval wastes time. Re-planning around late changes to infrastructure disrupts everyone.
Some teams are productive and have high quality results. Some meet tight schedules while others need wiggle-room. The project manager's challenge is to accurately account for all these variables.
Adding more process controls, stage gates and data collection to the burdensome business of delivering software will have teams screaming about the delays it will create. However, fast software development is often the result. When we start to measure and publish timeliness, incompleteness and error rates, they all improve. No one wants to be at the top of those reports.
Controls don't even have to have human intervention. For many tasks that are already partially automated, we can add additional automation that directly updates the project plan. When moving code to the test area, add a step that reports this action. If an approval is overdue, automate an escalation email to the VP and CIO. If a release turnover is incomplete, automatically check the bill-of-materials, report omissions and, if necessary, revert the turnover. This check should include training docs, build scripts and test results, as well as the code.
When automated systems track human activity, the outcome is either, "It happened as planned" or "It failed." Systems aren't affected by a charming smile or a plea for forgiveness. When automation nags tardy executives, they can rail all they want at the technology, but it won't be cowed by an executive's title or political clout.
It seems project managers are the cobbler's children still. We are the last business unit in the organization to maximize the project management automation possibilities that will bring the same efficiency, quality and predictability that we expect from other departments. Will we ever be able to attend status meetings to give status to the project team?
This was first published in February 2014