Last week I wrote about how to get coworkers to adopt new technology so this week I thought I'd write about how to get your manager to do it too.
For example, someone recently told me that he'd done a small deployment on Puppet for automating certain things. While it has helped him, his management has not been convinced to adopt it for other things.
Two bits of advice:
First, "align yourself with your boss's priorities". Get some one-on-one time with your manager and find out what is most important to them and then use Puppet to do just that. They might want the ability to roll out new capacity faster or new features faster. Each of these means doing different things with Puppet. If they want to roll out new capacity faster, make sure that your use of Puppet focuses on that. If they want to roll out new features faster, make sure that adding new things to puppet has been made as easy as possible (a "how to" doc, a "getting started" guide, etc). If stability is their priority, find out what instabilities they are most concerned with and use puppet to fix those problems.
Yes, by using Puppet (or CFEngine, or other Configuration Management tool) you can usually solve all three of those problems at once. However, only talk about the one that is most important. If you talk about benefits that are not on your boss's priority list your point will be muddied. (See this recent post for more info about that.) Yes, those other advantages exist, but if they aren't important to your boss, why bring them up and confuse the issue?
Now that you have focused on what your manager considers important, you are ready for the second bit of advice: Describe things in terms of "undeniable value".
"Let's buy a new server" has no "undeniable value". In your mind you know that the new server would solve a host of problems but explaining it as "let's buy a new server" doesn't make that clear. In fact, most managers would hear this as "let's spend more money that you don't have".
So take a moment (or maybe and hour at the whiteboard with a coworker) and work out the "undeniable value" of what you are trying to do. "I want to be able to add capacity within 4 hours of the new server arriving at the loading doc." That is undeniably valuable. "When a new feature is done, I want to be able to have it on all servers within an hour". That is undeniably valuable. "It takes 4 people to handle our current change request load. I want to be able to do it with 2 people so the other two can focus on new projects." That has a nice ring to it too.
Of course, your boss makes the final decision of what's valuable. Maybe new servers arrive rarely, so the first example isn't valuable to him. Or maybe new features are deployed fast enough in his opinion, so that isn't valuable either. The third example, freeing up 2 people to work on other projects, is most valuable when there are new projects that he/she wants to prioritize.
I believe that managers, fundamentally, have two responsibilities: setting priorities and providing the resources to achieve those priorities. I believe that managers [usually] understand business priorities better than we do and when we state proposals in terms of their value we aide them in their ability to carry out their fundamental responsibilities. It creates a better division of labor and prevents micromanaging.