I made a snarky comment in our chat channel the other week about having an executive assistant concept for engineers and what was initially a joke became an interesting idea to me. I haven’t researched it so it’s probably already been talked about but my thoughts on it are outlined below.
Executives have long had the concept of an EA or Executive Assistant. A big part of their job is to offload some of the non-critical tasks that need to be done, but don’t warrant the hourly rate or responsibilities of a CEO, CTO or VP. For example, an EA will help with scheduling meetings and working around attendees schedules, organizing logistics for events, and triage correspondence like email, etc… you get the point. A CEO’s role is to drive the company forward and provide vision and leadership; anything that takes away from that focus should be offloaded. If your CEO is looking up people’s availability for a meeting and spends 10 minutes on that task, the company is worse off. I believe this same concept can apply to Engineering teams. Companies spend huge sums of money optimizing manufacturing processes but most spend relatively fewer resources on optimizing engineering productivity.
I’ve been in software for 20 years across a number of companies and organizations from small startups to large enterprises. They all have a similar technical structure. You have tiers of technical abilities. You have an upper tier with the technical visionaries, architects (hopefully not ivory tower) and principal engineers. Then you have senior engineers, mid level and jr developers or interns. Engineers in the uppermost tier tend to have a multiplying effect in the organization. A big part of their role is to provide technical leadership, drive the vision at a technical level, mentor and tackle some of the harder problems in the org. A lot of times this group is paving the way for the core IP of the company. They also try to look ahead and make sure the company is in a good spot for the future.
Some days are spent writing code, software abstractions, debugging many of the critical issues that come up. There are also weeks when they have to perform due diligence on a potential acquisition, or do detailed evaluations of potential new partners and/or vendors. They may be frequently asked to de-brief C-level execs on architecture, future planning, or potential product features.
Like a CEO, their time is sparse and valuable. In any typical day for these individuals there are pockets of time spent on mundane tasks that could be offloaded. Unlike an internship where someone is temporary and perhaps one day full time, the new EA (engineering assistant from now on) is a full time hire that would be embedded with their engineer. When your engineering teams are critical to your business you want your best and brightest minds focused intensely on solving the hard problems, technical challenges and communication around technical directions with the teams. Just as a CEO, spending 10 minutes on scheduling a meeting and finding free slots for 20 people isn’t a good use of their training either. This isn’t about making time for people to play more golf, it’s about matching roles with problems.
As an example below, we have an engineer with a blue line representing the expected impact they have in the organization. The first graph shows tasks as red dots. We see we’re fitting that line pretty well. We have some tasks that make a big impact and tasks that fall just short or about as expected with that person’s performance but generally it’s a well fitting line.
In the graph below we see an engineer working on tasks that are well below their expected impact levels. We have a mismatch of expectation and reality. We need to make sure we’re fitting our lines properly.
“The last source of major competitive advantage is the selection and placement of people” – Drucker
Just as startup CEOs don’t usually have an EA, the Engineering EA would typically apply to mid-size and large organizations where differing geography and increased number of internal teams teams are likely. As a company gets larger and more spread out, there’s more connection points that require better communication. It’s all about opportunity cost. Did your company miss out on shipping a major release because your top engineers spent 10% of their time on non-critical tasks? If you had paid an EA $50,000 a year, could that EA’s engineer have shipped faster with higher quality and made the company $3 million from hitting the marketing deadline? That’s what I mean by opportunity cost, and it happens all the time in software.
When I look back at previous jobs and I try and think about the people I’ve worked with in those roles, I started to compile a list of some of the things that having an EA would have helped with. When I think of an EA I think it’s also a great opportunity to unlock potential talent. Most engineers in software nowadays have to have comp sci degrees and training in data structures, algorithms, etc.. You could hire an EA with a much lower barrier to entry and cost. A smart, hard working person with a desire to break into the field but doesn’t yet have the experience or education could be a great fit for this role. Someone that could be trained and mentored by the orgs best talent. I’ve seen a quite a few folks like that shine in organizations in the past. You would build a relationship with your EA and they would eventually learn how you like to work and the relationship becomes more efficient over time when things can be predictably achieved. A true test of success would be an EA transitioning to an engineering role within the organization and in turn spreading the great lessons they were taught.
Here are some example tasks that are part of many more senior engineers’ daily lives. Some of these are more realistic depending on how the devops/dev owns qa interactions are in your company.
- Jennifer is having a meeting on Friday about our new “foo” that I’m really interested in. I’m pretty swamped getting this release out. Could you sit in that meeting, take notes and message me if there’s anything I should be in the loop about.
- Can you schedule a meeting with our database vendor when it works for both our schedules? I need more details around that issue we hit last week. Make sure to invite Aaron from the site reliability team as well.
- I need to fly to the Calgary office for a vendor meeting. While I’m there, I should probably do some architecture reviews with the teams there. Can you schedule reviews for the 2nd and 3rd day with the Foo and Bar teams? If that works then msg me over a copy of the design docs from their latest revision that I can review on the flight.
- We settled on a new abstraction for accessing our datastores. I want to give a quick tech talk to the team and show them where to find all the docs and answer their questions. Can you set up a town hall with all the engineers two weeks from now? Make sure we have the conference room booked so the local folks can be in the same room. Have that place that everyone loves cater in some food as well.
- Could you triage my email in the mornings. If anything from support, production notices or questions from executive staff come up ping me right away, otherwise triage and label any anything else and schedule something on my calendar to make sure I respond to those items.
- We’re really in crunch time, can you monitor my email and chat messages. I’m going dark for two days with the team to help the team ship this feature for our next release. Ping me if any emergencies come up.
- New Application / big change released
- I just released that new application into production, can you monitor the logs first thing in the morning for the next week and report any anomalies to me while I build out the first version of the monitoring dashboard.
- Can you build out a dashboard for the logs from that new application and set up the alerts to tie into our alerting systems. I want to also be paged any time database latency goes over 100ms for the next 2 weeks.
- Can you set up the monitoring dashboards for the new App, I labeled all the meters I want in there with the suffix KPI.
- While I’m setting up the test automation, can you run through the app for the next week and do these 5 things, then check the logs and metrics and make sure everything is still running smooth.
- Can you work with the QA team and get external monitoring setup for these 6 HTTP endpoints for this new service I just launched.
- I wrote a few basic integration tests so far, can you finish up that project and make sure we get better coverage on how foo interacts with bar?
- Support issues
- I just got a call from the support team. One of our large customers is complaining about the App the team just released and they need me to help triage. Can you do me a favor and grab the logs of some sample hosts from our logging system while I get my test environment set up? Filter out any of the info statements for me as a first pass.
- I just got a call from the support team. One of our large customers is complaining about latency in the App the team just released can you check out the metrics dashboard for the past 2 weeks and see if there are any spikes on latencies anywhere, then ping ops to see if there were any network related issues in the past 2 weeks we should be aware of.
- I need to have a meeting with our operations team on the requirements for this new role in production. Can you put together the list of services we need to talk to, the environment variables and settings that need to be made, then schedule a call with the ops team.
- We’re going to need a new role for this project. Can you set up the role template, get all the directories and setup in place. Work with ops or our internal tools and get a running server up in the dev environment we can start iterating on.
- Simple scripts / automation as they progress in skills….
- Can you write a quick command line script that does A, B and C then get that out to the team? I think that will save everyone a few minutes of their day.
- Sarah sent me the new ElasticSearch schema for users. Can you do a quick once over and make sure it matches up with our data model in the code? Let me know if there’s any differences in structure. I’m planning to look at it tomorrow but it will save some time if you check for low hanging fruit.
As you can see those tasks above are usually part of everyday life but you’re not paying those people some of the highest salaries in the company to focus on those things. Having an EA that can be trained and mentored with an engineer can be a valuable competitive advantage and you need to look to optimize your organization at all levels.
So what do you think? Crazy idea? Worth exploring? Hit me up on Twitter and let’s talk about it https://twitter.com/jimplush