Are You Being Strategic About Hiring?

If I had a nickel for every time I get an email or text asking if I know any full stack developers for hire, I could cover the cost of my next trip to SF. I’m also struck by the number of founders who say they’re raising more money simply because they need more engineers to code, yet they do not have a good hiring strategy.

For decades, there have been books and articles about building engineering teams. The infamous book The Mythical Man Month, by Fred Brooks should be on every software engineer and tech startup leader’s reading list (It should also be re-titled either “The Mythical Person Month” OR “Nine women can’t make a baby in one month”…just sayin’). There are also many blog posts explaining why full stack engineers are unicorns. Yet, when I did my latest poll on twitter on top hiring priorities this is the response:

screen-shot-2019-06-02-at-1.20.42-pm.png

Sure, it’s fine to look for a generalist [or augmenting your team with an outsourced dev shop] to get basic stuff done, but being more strategic about your hiring process, is what could be the difference between a great product in the market vs. something basic that is slow to ship. Below are some tips on how to be more strategic about hiring:

  • Product prioritization leads to hiring prioritization: If you’re doing proper product prioritization via discovery – talking with customers and understanding what you need to get to product market fit or grow adoption – then these priorities set the hiring agenda. For example, if you’re realizing that your on-boarding process is too complicated, then hiring a User Experience (UX) person may serve you far better than someone who can code a fresh UI. If performance issues are causing churn, then hire a performance engineer; someone who knows how to diagnose and fix performance issues. Just like you are building a product to solve for the job to be done, hire the engineer for the development job to be done. 
  • Understand the roles: Do you understand the difference between a front end developer vs. designer vs. UX expert? (if you don’t, read this) Are you fluent enough in your architecture to know what type of engineer should be building which elements of your product? Many early stage companies are started by engineers who know exactly what they’re doing, but many are biased in the areas of which they are most familiar, even if that is the suboptimal choice for their current products. I’ve seen products built with .NET simply because the seasoned engineer-founder knows that platform best, without considering whether it is the best platform for their product and/or whether they’ll be able to hire engineers who are skilled in .NET (or want to learn it) to build it at scale. I’ve also seen many startups default to the language of choice for the full stack engineer they found to build their first prototype and then let that language dictate future work as their product gets market fit and scales. This rarely works out, unless that first engineer is a ringer, and most of the time the reality of having to refactor your entire codebase or port to a new language hangs over the product team…forever. 
  • Long term need vs. short term fix: Another common mistake is hiring a full time expert in an area that only needs occasional work. E.g., Performance engineering. Certainly, if you’re building a complex, distributed, application that has heavy computation or many API calls, then a performance engineer is a critical full time hire. However, it may behoove you to find a good contract engineer who specializes in performance tuning as needed; at least until you’re operating at scale. Same thing for a designer – unless you’re at scale and adding new features/products at a steady clip, then a contract designer may be prudent while you iterate on your MVP. You may pay a little more per hour for these contractors, but that far outweighs over hiring and paying a full time salary early on. 
  • Time Delay + J-curve: Just because you have cash in hand to hire, doesn’t mean you will find and hire the right people right away AND each time you add a new person to the team, there will likely be a j-curve impact on productivity.
    Screen Shot 2019-06-03 at 1.47.59 PM.png
    Therefore, when you prioritize hiring, factor in how long* some roles will take to fill (e.g., we don’t need a designer for a few months, but it could take three months just to find the right person) and be thoughtful about the cadence of adding new people to any team. Adding a bunch of new engineers at once is not going to accelerate development over night. Each time a new person comes on board, it’s disruptive to team’s flow – and this is not just about training them. It disrupts the whole
    dynamic of the team. If you’re doing a lot of hiring over a discrete period of time, set the right expectations (with yourself, your company and your investors) that a ramp in hiring will likely slow things down until new teams settle into new norms. If the ramp is constant, by the way, your teams will never settle into a groove leading to employee dissatisfaction, high turnover, product delays, etc.

    *This delay should also be considered in the budget exercise for these roles. Don’t front-load salary expenses for open jobs that may take weeks or months to fill. 
  • Humans are not robots: Hiring is hard, and even when you get really good at it, at the end of the day these hires are human beings that have their own unique needs, past-job baggage and career aspirations. Their added productivity, how they diversify and/or add to your culture is only part of the consideration. Having a strategy to prioritize manager, team time and money for their human needs (benefits, HR support, a strong on-boarding experience, ongoing training and mentorship, etc.) is just as important as having a strategy to prioritize these hires! 
  • Apply the 80-20 rule: A great product leader will tell you that if you invest 80% of effort to understand the problem, it should result in 20% effort to build the right solution. The same applies to hiring. If you take 80% of your effort to develop a great hiring strategy and program, it should lead to 20% of the effort to bring great people on board and retain them for the long term. 

There’s a severe opportunity cost that comes with bringing on the wrong people and/or at the wrong time and not having the right people programs in place. Even if you are a tiny early stage company, having to let someone go, or having them quit, and finding a replacement not only stresses out the manager and team, but there is a productivity hit to all while you go through the process. Even though it may feel like you’re moving slowly through the process of building a team, a strategic approach will pay off.

You can read more about my thoughts on hiring for startups here. Please share other ideas on this topic in the comments!

People Who Code – A Call to Action

I am a huge advocate of the women in computer science movement. coding-bannerI am also a huge fan of the Computer Science (CS) field in general and, despite my number of years in this industry, I continue to be amazed at the volume and speed by which new technology is coming at us. Yet, with all that’s going on out there, it is still incredibly hard to find talented developers and designers. So, while I want to see more young girls learning to code and women in professional technical roles, quite frankly I just want to see more people who code.

Three things happened recently that made me realize that I need to focus my efforts on encouraging more young people to get into computer science:

First, there was the scuttlebutt around the “Male Allies” panel at the Grace Hopper Conference a couple of weeks ago. Everyone was so wound up about the gaffes of the three men on the panel that we lost sight of their key messages which were to support gender balance and eliminate wage gaps in tech across all levels of a company. How are we going to make progress for women and minorities in tech if we attack the majority when they aim to support the movement? When will meritocracy prevail over gender? My friend Jocelyn Goldfein has a lot of good thoughts on this topic here. We need to bring men into this conversation without them worrying about being attacked for speaking up and we need to focus on how to build great careers in CS for everyone – not just women.

Second, I have been thinking a lot lately about the preponderance of women and girls’ organizations that are encouraging and supporting women to code and choose technical careers. It’s wonderful that there are SO many of these organizations out schools-codingthere, yet it is so hard for girls and women to know which ones are the best to meet their particular needs and/or interests. I am concerned by how many of them position themselves competitively against each other vs. combining forces to form a stronger, united, movement. A founder of one of these organizations told me recently that when she approached a nearby, similar, group to collaborate she was met with “hostile resistance”. Also, that some of the members of her organization did not want to be part of meta-organizations because it drew too much “adverse attention” to their roles – akin to the extreme circumstances of #gamergate where women are fearful for their lives because of their chosen profession. Certainly there are varying views on how best to encourage girls and women to code, but imagine how powerful these groups would be if they combined efforts instead of competing with each other or fearing retribution (or worse) for participating. Perhaps the mere size of these groups would deter those who attack them today or maybe, even, convince their attackers to support vs. challenge their mission.

Finally, I was recently enlightened by my friends at the MassTLC Education Foundation on the rather pathetic state of our k-12 CS programs in Massachusetts. I view CS as basic literacy in the 21st century, yet in most publicmassCS_stats and private schools it is treated like an elective, not a core math or science requirement. In 2012, only 1000 students in Massachusetts took AP CS and 559 passed; of those who passed, only 24 were underrepresented minorities and 89 were female. There are also no standards or licensure for teachers who teach CS in k-12. According to this NPR story, only an estimated 10% of k-12 schools in our country teach computer science. This interactive data chart shows the steady decline of CS majors in the US. With all the money out there to invest in new technology and innovation, we are not making the same level of investment in the people we need to make these innovations a reality and sustainable into the future.

From the past we have learned that big issues such as the civil rights and feminist movements took large groups of likeminded people to go from controversy to significant policy and cultural changes. We take for granted that women can vote in the US and in many, but not all, other countries around the world and we tend to forget that not too many years ago, schools and busses were segregated. Today, we are fighting for equal pay and career opportunities for women and there is controversy about how few women there are studying CS, but there is a bigger issue to solve. If Venture Capitalists and technology industry leaders want to support these movements, we need to do more than just attend conferences and speak on panels. We need to change policy – like eliminating noncompetes in MA to allow talent to move where their passions take them instead of feeling trapped in their jobs or eager to depart from the field of technology altogether.  We need to band together instead of standing on hundreds of different platforms to solve a greater issue. We need to fund programs for young people – not just girls – that foster interest in creativity and technology. We need to enlighten high school kids about the opportunities in technology and be available to mentor these kids when they go to college. We need people who code.

Do you agree that we need to do more to encourage young people to code? Join me the week of December 8-14 for CS Ed Week where the MassTLC Education Foundation will be championing Hour of Code in cities and schools across all of Massachusetts. This national program is designed to inspire students to learn more, dream more and be more through Computer Science.