There are four key processes to governance, and only one of them has the potential to be counterproductive, and that's usually because enough attention was not given to the other three processes. These processes are:
- Policy Definition
- Measurement and Feedback
The review consists of the project architect going before one or more people the organization has deemed as "smart" and the review becomes more about them demonstrating their knowledge than actually reviewing the project against any kind of standards or guidelines.
To be fair, often times the review board is not given any more guidance, either. They're asked to judge based on their experience, not on any documented standards or guidelines. The way to fix this is through the other processes.
It begins with policy definition. In order to have any hope of a successful governance program, you have to establish the expectations against which projects will be reviewed. These are the principles, standards, and guidelines. They must be rooted in the business goals and operational model of the company, otherwise they are at risk of being perceived as arbitrary.
For example, it's one thing to enforce that the approach to services use RESTful practices. It's another thing to require that a very specific development framework be used to implement it. If your company is concerned about developer portability across projects, and you have a centralized support organization, then the latter may make perfect sense.
If developers are allocated to particular business lines and provide their own third level support, then the use of REST may be important, but standardization of the development framework may not be important, and will probably be resisted. Once you have the principles, standards, and guidelines established, you now have a clear set of policies to which projects are expected to adhere.
The next step is to make sure your development teams are aware of these policies. While having documented policies is better than no policies, it doesn't do much good if the reviewers are the only people who know what they are. The development teams that will be governed must be made aware of the expectations through an effective education program.
Throughout the process, the message must not be about passing a review, but rather, making their job easier so they can focus on the important part of the project, implementing the business logic. Simply put, you've given the teams everything they need to be successful. Too many projects start out without proper positioning for success. Do everything you can so the project can be successful from the very beginning.
If you do these processes right, enforcement can become very efficient. The teams can perform a self-assessment against the policies, allowing them to focus on areas where an exception will be needed, or areas of concern that may not be addressed by current policies. This keeps the focus on creating the best solution possible and avoids wasting time on unnecessary areas.
Finally, like any good process, the system must continually improve. If exceptions are consistently being asked for certain policies, perhaps there's a problem with the policy. If business needs change, such as a need to shift from maximizing growth to reducing costs, the policies will need to change.
New approaches and new technologies will come along, and new policies may be needed in those areas. The team defining the policies must listen to the teams being reviewed and incorporate their experiences into the policy decisions they make.
If you effectively implement all four of these processes, rather than just focusing on enforcement, your odds will be much better that the governance program is effective rather than dreaded.
This was first published in November 2010