Wednesday, December 30, 2009

Simplicity and the art of performance measurement



I spend a lot of time measuring things. Because its the end of the year, where I work, that means doing reviews. After spending lots of years measuring things, I've come up with a few simple tips that I hope offer you some help next time you have to measure something important.

"Make things as simple as possible, but no simpler."

The quote above was often attributed to Einstein, but what he actually said was:

It can scarcely be denied that the supreme goal of all theory is to make the irreducible basic elements as simple and as few as possible without having to surrender the adequate representation of a single datum of experience.

The quote and its variants provide an interesting lesson on how a proper balance of simplicity and detail can change based on the audience. The shorter version is a lot more meaningful to a general audience, but to his 1933 Oxford audience of theoretical physicists, his original wording was more appropriate. The lesson to us: recognize the background and interests of our audience and provide an appropriate level of simplicity. How simple to make things is not always obvious.

Many years ago I was put in charge of a fairly large technology group in a Philadelphia based ad agency (now part of G2 Worldwide).  One of my first changes to the department was to think about all the intricate bits that make programmers (who made up the majority of my staff) successful -- training, dedication, demonstrated skill, defect rate, in process and end point quality assessments, breadth of experience, utilization and billability, etc. etc..  I created a point based system which provided a weighting for each of the skills and communicated it to the team. The "dungeons and dragons review system" (as it quickly became known) did not last long.

While perfectly transparent (very much in vogue these days) and logical (no one ever really disputed that the factors were wrong), and almost completely objective, the D&D system was near impossible for anyone to focus on while they do their job. They didn't get it, and I scrapped that system.

The replacement system was done using a simple rubric that folks could easily understand. The work that went into the D&D system wasn't wasted, I just found a better way to present it. A simple letter grade was assigned per project, and the rubric worked like this (working from the bottom up):

  • F -- Do nothing and you fail.
  • D -- Earn a D by having a high quality work product.  Nothing else matters more than quality, but that only earns you a D.
  • C -- A passing grade was something on-time and on-budget.  Note that if you were on-time and on-budget, it didnt matter unless you have high quality.
  • B -- Reuse something from another project.  This was something critical to our strategy at the time, and helped keep us competitive in technical bids.
  • A -- Contribute something for reuse.  This was one of those things that everyone wants to do anyway.  Its clearly valuable and was an important part of the strategy, but unless more people reuse than create things that are reusable, it wouldn't work financially.
The actual presentation was done with a triangle graphic with the higher grades toward the top, but you get the idea: quality is foundational, reuse is an even-better-if.

The new system was easily understood by the team and by management.  Additional supplementary detail was provided for exactly what we meant by key terms like "high quality", "on-time", "on-budget", etc..  In short, the detail was available when you needed it, but it didnt cloud the high level.     

Using a rubric like the one shown above is helpful, but there are many ways to accomplish a similarly successful set of metrics for your team, your site, or pretty much anything complicated that involves a lot of people. Just keep the following in mind:

  • Focus on only the most important aspects of the thing you're measuring.
  • Reduce emphasis or eliminate metrics for the things you dont control or cant impact.
  • Find a way to express the goals in terms that the audience can understand.
  • Have background materials available when more detail is needed.  Understanding in concept is one thing, doing and affecting positive change requires greater comprehension and detail.
  • Make sure the goals are measurable and that everyone understands how to calculate them.
  • Encourage review and discussion of the relevant metrics as things change.
  • Be forward looking: communicate the goals and metrics up-front. The more people understand how the system works, the more they can do to in support of them.
  • Set expectations with the relevant stakeholders (the team and management in this case) that the metrics will show opportunity for improvement, followed by improvement, followed by new opportunities.

And through the process, inevitably you wont ace everything. We are all high-achievers (well, at least where I work) and we should not be discouraged when the metrics identify room for improvement -- that is what they're there for.

Sunday, December 27, 2009

3 Tips to grow leaders (or improve most anything)

I like to take Christmas week off every year. I do this mostly to spend some quality time with my family, but one of my favorite fringe benefits is that I typically get just enough down time to think about the things I've done that I'm proud of, how to do more of them and what I'd like to accomplish in the coming year. This year was no exception.

One of the things I'm most proud of this year has been my role as a mentor; I've had some good success with a number of the people I've worked with: some in an official capacity, some former employees who continue to ask my advice, and a few who've never worked for me at all but somehow have come to value my perspective. While I'd like to think that I have some special coaching gene and a unique situation, its probably not true. The formula I follow is fairly standard and I hope this post is able to help a few people get started or refine their efforts to growing leaders.

Tip 1: Find out if they want to be a leader

...because some people don't. Being an effective leader in most companies means that you're going to have to stay ahead of the fires and that takes a lot of work. It also means you're going to have to deal with problems that other people create and put your ego aside, which some people simply cant -- or dont care to -- do.

Even if they do want to get to the end state of being a leader (if there is such a thing), many arent willing to put in the effort it takes just to get there. This is OK. For ambitious people (like me and many of my friends) this is very hard to understand and at times, deeply frustrating. Don't get frustrated. Not everyone has to be a leader and not everyone has to keep moving up in their career. Be happy for their contentedness and move on.

If they dont want to be a leader or they're not willing to put the effort in to get there, move along and find someone else to mentor. No one likes being nagged and you're doing them and yourself a disservice if you try to push someone who doesnt want to be pushed.

Tip 2: Find some goals they can actually achieve

Every company I've ever worked at has a standard review template and part of it generally has a slot for "things to work on." This section of the review is typically filled with things like:
  • Improve written communication
  • Learn two new technolgies
  • Gain deeper database skills
Which are almost totally meaningless if the person getting the review isnt in a position to use these two new technologies. With something extremely vague like communication skills -- what needs to improve? Even if this mythical employee works on all three of these items -- how do we know they've succeeded? What happens when they do? Where is the follow up? This system doesnt work if your goal is actually to help someone grow. Avoid the review style goal setting and start with something meaningful, measurable and attainable.

Look at the project they're currently on or likely will be in the future. If you dont know what they're going to be working on, either wait or set some kind of meaningful preparation goal. Do not set a goal that is not at least a little bit measurable. It wont help them and it wastes a lot of time. If you already have a motivated leader-in-training, setting pointless goals is a good way to lessen their motivation and confidence. Instead, find something they can actually achieve in a real life situation, such as:

  • Write 3 emails to the client or team about a contentious situation (if you work in consulting, these are often in abundance). Make sure they are timely (sent soon after the event), informative, include a meaningful follow up, are free from spelling errors and grammatical mistakes.
  • Using the technology of your current project, identify one of most critical code areas (run often, high risk, etc.), review the code and explain what is done optimally and what can be improved and how. Review the suggestions for improvement with an expert in that technology and make the appropriate improvements without negatively affecting timelines or project quality.
Note that these goals are measurable -- we know if they've happened or not, and (at least in our hypothetical situation) feasible. This leader-to-be should be able to send a few emails. As long as these code improvements are not done at the expense of other tasks, even giving it a try should make everyone happy.

A goal isnt feasible if it goes cross-purposes with your daily tasks, so dont put someone in that situation. Often, this means they'll have to work more hours or spend some time on a weekend. There are always constraints of some kind, so figure out what they are and make sure to work with them.

Tip 3: Follow up and revise

The first time you set a goal for someone, you will probably set a bad one. It might have been too much of a stretch and they cant do it (although this is uncommon), it might have been something unrealistic or cross-purposes with their immediate supervisor (not a good thing) or, most commonly, it will be too easy.

Easy goals probably wont help them grow much. Hard goals will demotivate. Take some time up front to calibrate so you can set goals that allow the leader-in-training to grow without getting demotivated, reprimanded (learning usually means making some mistakes, so choose the task carefully), or overconfident. Give meaningful and constructive feedback often. If you're not good at giving meaningful and constructive feedback -- get good, fast. Make the review and revision part of the process so you can identify unrealistic goals early and get a quick easy win out of the way so neither of you waste time that could be spent working on something more effective.


With so much else to do, why bother?

The process for developing a leader isnt much different from improving anything else: departmental processes, website conversion, performance/scalability testing, business KPIs, etc.. Budget a realistic amount of time and assuming you have a willing participant, you will have something to be very proud of and -- if my experience is at all representative -- make some wonderful long-term trusted colleagues and friends. The recurring dividends they provide will be significant to the company and to you personally.

Saturday, December 26, 2009

...and we're back

After a haitus due to a move from Philly to NYC, a job change, some wedding planning and countless other minor adjustments, I'm going to try to start this back up. I figure if I can keep up my travel blog, I should be able to write a few posts about what I do with the rest of my time -- or at least write a bit more about the stuff I post to my twitter feed.