Focus on the core
Tech companies these days can seem quite similar. They offer staff all the same perks, be it foosball or ping pong tables, free lunches and soda, or even unlimited vacation. Couple these perks with some whacky office space and you’re halfway to being a tech startup. These novelties/perks/bonuses are often used in attracting talent and selling the company to people. I kinda get it — it is easy to market, looks cool etc. But I am more interested in the core stuff going on day-to-day.
Sure, you will attract some talent based on the perks and office alone, but ultimately that is all window-dressing if you really care about what you do. From an engineering perspective, I don’t really care about any of that stuff. It is nice of course, and all those perks are a great bonus to working somewhere — but they should be a bonus, not the main selling point. If you truly take software engineering and building systems seriously, then you want the real deal. You probably care about something like this;
- Focus on building solid systems that are well-tested and well-designed
- Modern automated approach to building, testing, deploying the software. (Danger-sign: “Oh yeah continuous integration, we know we have to do something there at some point…”)
- Work with other talented and professional engineers
- A consistent approach to planning and managing work (I prefer light-touch process but something consistent across teams and something that is enough for other stakeholders to see what is going on)
- Work towards a tangible vision or goal with leaders you trust to take you there, from team leads to managers to CEO— even in crazy fast-moving domains, you still want a consistent and professional approach to testing markets and building an MVP
- Compensation — forget all the perks, is the core salary good enough and regularly reviewed and do your employees get shares/stock in the company
No company is perfect. But if you build your process and systems professionally and manage your teams and products well, then that is the key to happy engineers who will stay around for the long haul.
I recently talked to a local tech company here in Cork who are looking to double their engineering team. They are carefully considering how their process (their own in-house agile process) will scale, how the team communication will scale, will their technology choices scale, will their build and deployment process work at twice the number of engineers etc. They are talking to consultants who have experience helping tech companies doing exactly this. They have managers and leaders in key positions taking their time to get this right. Key for them is continuing to remain agile, to keep their process light, to keep the same culture they currently have, but to scale up the engineering team x2. They will learn what works and what does not as they try out these informed choices and adjust and learn and adjust again. I would take that type of environment over free soda and scooters any day. But I guess my point is this — why not have both? There should be no reason why you cannot have the core part of your engineering rock-solid and also enjoy all the trappings and perks of tech companies. Hiring the right management team to build and oversee a culture like this is fundamental in getting this right, in my opinion.
Finding out these day-to-day core competencies and core cultures of a company can be difficult without working there and experiencing it or unless you happen to know someone already working there. It is much easier to find out what type of perks are on offer.
Tech companies can be chaotic and uncertain. But the uncertainty is surely the market and the feasibility of the product and the need to respond quickly to what you are learning and to new opportunities. I would suggest that uncertainty and chaos do not have to be part of the daily process and effort of building the product. You can be cool and still be professional.