What are you optimizing?
After 2800+ comics, Randall Monroe still manages to find new ways to be relevant. When I saw XKCD #2821, I immediately thought of how it applies to program management.
Part of the program manager’s role is to be process specialist. Even when you’re not an expert on the particular subject for the process, you’re an expert on the process of processes. When your community wants to improve a process, you’re the person they go to.
Sometimes what they want to do is optimize the process. Sounds straightforward enough, but what does that mean? The XKCD cartoon gives a great example. Each of the paths are optimized, but for different things. If you start optimizing for a process and then discover you’re optimizing for the wrong thing, you’ve wasted time.
I learned early in my sysadmin career that “why?” and “what do you want to accomplish?” are powerful questions. This has served me well in every role since. Find out early on what you’re optimizing for and you’ll be a lot more successful.
What should I optimize for?
When you want to optimize a process but don’t know what you should optimize for, default to “contributor effort”. As I say repeatedly in Program Management for Open Source Projects, your contributors’ time is your community’s most valuable resource. Contributors donate their effort to you, and you should be judicious with how you spend it.
There’s a temptation to make code run faster because that’s what we do in tech communities. That’s a fine goal, but can you make other changes that reduce effort instead? After all, computers don’t get bored. They don’t have hopes and dreams and families and other hobbies.
This post’s featured image is XKCD #2821 by Randall Munroe. Used under the CC BY-NC 2.5 license.