Pointer is a reading club for developers. It’s a window into what other current and future CTOs are reading and thinking about.

Subscribe at www.pointer.io

5 Mistakes We’ve Made Scaling our Engineering Team

by Brett Boskoff

Brett earned his Bachelor of Engineering degree in Biomedical/Medical Engineering from Vanderbilt University.

_____________

Scaling an Engineering organization is something every tech company must go through. One could argue this is an ongoing practice — your team is constantly scaling with every new hire.

As a technical co-founder, I’ve made plenty of mistakes. So many. Things that give me terrifying flashbacks. This may or may not have included bypassing Git and dropping files to our live environment via Cyberduck. But I digress.

Along the way, we’ve gotten better at managing the constantly evolving organism that is a tech startup. A lot better. We’ve lost some good men and women along the way, but 5 years in, we have righted many of our wrongs.

Regardless of your current dev team size, funding situation, or general phase in the process, here are 5 things that you should NOT do as you grow.

1. Rollout Strategies: Go Big or Go Home

As your velocity increases, hotfixes can morph into features, and turn into epic-sized releases with several dependencies before getting merged in. Don’t let this happen! A decent way is to account for this in sprint plan meetings. Ask the question “How will this feature be released to our audience?” as early as possible.

Releasing features to 100% of your user base will likely be brutal. Creating silent release strategies for long-tail builds has been incredibly beneficial for us (cough cough buzzword city). For more immediate, large impact builds, devise a plan to push out to a selection of your audience — 10%, 20%, etc. When everything is stable, open the flood gates.

2. Unit Testing: We’ll do it when we have time.

I’m not suggesting 100% coverage. But please, find the major touch points of your application and make sure you’re covered. As the team grows, plan some time for testing in your future builds. It will save you tons of time in the long-run. If you’re too late down the road, plan a sprint in the coming weeks to focus on optimization and improving existing coverage. Depending on your team size, if everyone contributes, it can be a quick process.

3. One Javascript file to rule them all.

A crucial part of the equation is internal best practices. If everyone is coding with similar behavior, this process will up. Come up with your own set of best practices for your team. Iterate when they’re outdated.

For reference, our own set of rules for internal Javascript best practices can be viewed here: http://devhonorcodejavascript.splashthat.com/

4. Putting new developers in a bubble

I believe this is the worst mistake you can make with someone new, regardless of their experience level. She or he may feel isolated, do things their own way, and will likely fall short at the original goal. It’s like a game of telephone gone horribly wrong. In the end, you will have to rebuild the telephone.

Quick, easy wins is our preferred method of starting out. Come up with a few projects, 2 hours to 2 days in scope. No one wants to do trivial work — these builds should be low effort, high impact changes. Get this person used to submitting pull requests and having their code deployed to a live environment. Perform code reviews as often as possible. Once you feel that your new colleague is up to speed and ready for more, throw them onto larger builds.

5. Learn Fast.

Many of these changes will come from new employees. Be receptive to feedback from your newest minds. If a new hire hadn’t questioned our deployment process, we would still be deploying in a manual 10 step process. Or taking 3 days to set up a computer for a new hire after they start.

Cue the flashbacks.

I’d love to hear about any (now obvious) mistakes that you’ve made as well. Please feel free to email me at brett@splashthat.com

--

--