The CEO's Job, Part 2
We always hear that the CEO's primary tasks are to 1) make sure there's enough money in the bank to survive, 2) guide the vision of the company, and 3) hire and retain top-notch talent.
But we rarely hear about part 2 of the CEO's job, which I think should be the next most important thing for a CEO to do: Make existing staff more productive, and to find a systematic way to get new talent up-to-speed faster. As you hire more and more employees, it's reasonable to expect less value per employee. This makes sense because of communication overhead, lower commitment from non-founders, and over-reliance on executive-level staff. (aka bureucracy) If a CEO isn't out raising money, "brainstorming vision" for next year, or staffing up like crazy, she should focus all her energy on fixing the above problems.
Here are some ideas that I'm trying at the company I started, inDinero:
1) Contracting help as a core competency. From talking with my team, I found that many of them wish they had more help with their jobs. My partner Borden wished we had an extra sysadmin to help him with server tasks. My partner Andrea wished she had more help doing customer service so she could focus on marketing initiatives. And as we all know, hiring top-talent in Silicon Valley right now is as difficult as is finding water in the Sahara. It's just not going to happen.
We decided to make it a company priority to make it super easy to staff up-and-down in a heartbeat. Ends up that it's far easier to hire part-time contractors than it is to hire full-time employees. We had a lot of talented people apply for full-time jobs, but they either lacked culture fit, or cost too much money. We've also been incredibly cautious in our full-time hiring process, as we've found that it's far easier to fire subpar contractors than it is to fire someone once they're full-time. Since deciding to staff up on contract help, we've essentially doubled the speed by which we move, and every task we need completed is actually getting done. Every CEO experiences stress from not knowing when their ideas and vision will be executed; it doesn't have to be that way, and staffing up on contract help is a frequently overlooked solution.
2) Fast on-boarding process. At inDinero, we've been spending a lot of time the past few days trying to make it super easy to onboard new engineering help. It's typically difficult, if not impossible, to scale up and down your engineering team in the way you can spawn up new cloud servers. We're trying to change that by having a reliable source of contract engineers who can help us grow non-essential components of our codebase. New engineers will be brought up to speed faster, and be able to build lower priority features that our core team doesn't have time to get to.
3) Knowledge transfer. New employees often don't know where to start, and managers seem to spend a lot of their time training new talent. But if knowledge transfer was a priority, then any person on the staff should be able to train anyone else.
One example of knowledge transfer at its best is pair programming. Whether or not it leads to code being written faster can be left to a separate discussion... but it's undeniable that employees are far more likely to learn the intricacies of the codebase, and the unique skills of their colleagues, if they do pair programming. Someone who was once known as the "backend engineer specialist" can acquire web engineering skills far faster by pairing with the "lead web engineer", and vice versa.
This can be applied to pretty much any discipline: customer service pairing (where an experienced staff member sits alongside a new hire during customer service phone calls), or design staff training business people to create high-fidelity photoshop mockups of their feature ideas.
I also think it's important for engineers and bizops staff to know what the other team is up to. Since inDinero is only six people full-time, it's pretty easy. But I expect that as the company grows, we're going to have to find better ways for engineers to know what the marketing team is doing, and for the design team to know how customer service does their job.
4) Only hire generalists. Contract out the specialists. We have a bunch of generalists at inDinero because we found that our highly skilled computer scientist peers weren't able to contribute as much. Someone who can do business deals, write code, and do user interface design, is 5X more valuable to us than a typical backend engineer. There's less communication overhead, and less reliance on other people to get things done.
But there's still a lot of help that needs to be done at a specialist's level. My partner Borden is a pretty good sysadmin, but he's by no means a guru. On the flip side, we don't have the funds (or the need) to hire a real sysadmin full-time. This leaves me pretty confident that it's ideal to have generalists as your full-time hires, and to fill in their gaps with part-time help from specialists.
--
I'm sure there are a billion other ways the CEO can make their existing team (and future team) more productive, and I'm learning more as I approach my 2nd year on the job. It's been pretty exciting to see inDinero operate more efficiently, and I look forward to seeing these ideas play out over the next few months.