Centers of Excellence & Best Practices

I've had occasion to work for companies big and small and a common denominator in many of them gravitated towards having centers of excellence and best practice libraries, policies and the like. In every single case, I learned. In hindsight, in every single case, the entity and associative output became a holy place without regard for actual evolutionary learning. I've had fifteen years of software experience to reflect on these entities and concluded for myself that they are over-used, misunderstood delusions of security we put in place so that we don't have to manage the real problems in companies. Other than that, I think they are great.

Of course I can't be let off that easily, so I'll explain.

People constantly yearn for consistent, predictable, repeatable experiences.

When I have an omelet, I expect consistency in the egg, the contents, salt, pepper and hot sauce and/or salsa every single time. It follows that I may be interested in ensuring that I experience the expected result to such an extent that I put in place a method -- explicit contents, explicit place to get contents, explicit naming, explicit measurements, explicit timing, explicit order of events, and perhaps even a specified cook. After I've created this process and associative procedure, I then manage to it. Deviation from the procedure is a problem, so I spend time putting in place methods to discover deviation, methods to notify me of deviation, methods to correct deviation and maybe, if it occurs to me, methods to mitigate and prevent deviation. Later, I'll likely have metrics, create statistics and then call it a best practice. My Center of Excellence created this process and my best practices emerged after I had metrics and so forth. Ta-da. I'm a corporation. My mom would be so proud.

The problem we really seek to solve is consistency. A pursuit we often fail to see is the need for consistent evolution.

When I create an architecture group in a development organization, it may very well serve a very temporal purpose politically, technologically and socially. However, should I leave it in place for very long it isolates individuals and teams, creates misconceptions of inequality and special treatment amongst team members, and creates an us:them assembly line conflict where one group allegedly does the thinking while another group does the grunt work thereafter. Later, the grunts may believe the architect is something to aspire to while the architect may believe grunts are non-respectable architect wannabes. Unhealthy.

Another example is having a particular group of people set aside to define methods of quality for the entire corporation. Whether they are experienced in the areas for which they create a process and procedure of quality or not is less relevant than the fact that they are not actually doing the work. So, someone who may have previous experience, maybe has performed fifty interviews of workers or just thinks they are super-smart, gets set aside in a special group of people to define the processes and procedures of excellence that will allegedly render excellence. Then line staff and management will need to be trained in said processes and procedures and then measured against them. This sets us up for a variation on a theme suggesting,

The beatings will continue until output matches our {contrived} standards of excellence.

It never ends because reality never matches ideals especially when more than one person is involved. To have a baseline is necessary. To devolve forward progressing behaviors back down to the baseline is a failure to value human aptitude.

It is far easier for managers to put up a fence and say, "Stay in there" than it is to lead by example, especially if the manager doesn't actually know how to do the work, let alone lead it by example.

I could continue. However, I'd rather focus on what the constant pursuit of excellence really looks like in a healthy team and environment. We do not need a group of people set aside to go Mensa on a problem, create a document and then employ project managers to police the line staff against it. We need an environment that fosters team-centered autonomous evolution. It is a very simple formula for some people, and a nasty medicine for others.

First, have a baseline. In order to evolve, there needs to be evolution from a point in time, position or state. Else, how can one know where you are in relation to where you started?

Second, demand the baseline to be destroyed due to evolutionary change. Not because the baseline is poor, but rather because the baseline is nothing more than a baseline.

Yes, there can be predictable, repeatable behaviors such as continuous integration, test, inspection and deployment. Yes, there can be canned iteration patterns, stand-ups, sit-downs, planning meetings, demos and reviews. Yes, it can be XP, Kanban, Lean and Scrum as the baseline.

Just recognize that constant improvement and evolution is the goal, not the by-product. Additionally recognize and accept that your golden baseline was never really golden.

Having a center of excellence implies someone else will do the thinking for me and alleviates the need for me to think.

I don't want a team of drones, I want wily, independent thinkers who challenge me every day.

Having a set of best practices suggests that we've defined end-state and I do not need to improve or pursue improvement any further than the best practice itself.

I do not want a team of line-followers, I want a team of people who challenge yesterday's assumptions, validate them today, and destroy them tomorrow.

Were I a harsh, critical sort, I'd say: "If you are a lazy manager, put in place a center of excellence, have them draw up best practices, employ project managers to police the organization against these practices, and sleep at night believing you are worth your salary." That's only if I were a harsh, critical sort of course.

If you want to build a rocket and go to the moon, have your team tell you every single day why they are better today than they were yesterday and how they'll be better tomorrow than imagined today. Ask them to keep track of their evolution across defined increments of time so you can all see the evolution. Some people call this an iteration review; some, lessons learned. Its really just evolution from baseline.

A team of continually evolving, wily independent thinkers will always beat center of excellence and best practice flunkies. Always. You just have to decide what you value the most -- the baseline or the evolution.