Software engineering, Scaling
In the fast-paced world of startups, the race to achieve goals before time or funding runs out is relentless. The stakes are high because there is a 50% chance the startup does not make it to the fifth year. As a developer you are in the frontline and this means navigating tight timelines and high expectations. However, there's an often overlooked issue in this dynamic: developers not pushing back enough against management decisions. This lack of pushback can lead to significant negative consequences for both the project and the team. In this post, we’ll explore the productive tension between developers and management and discuss ways to create an effective balance that benefits everyone.
For a software developer, the goal is to deliver a product that is both high in quality and scalable. Management often sees an opportunity in the market they want to capitalize on before competitors beat them to it. When either viewpoint is taken to the extreme, it leads to one of two scenarios:
So how to navigate these extremes? What I typically do is emphasize to management the importance of investing time to improve quality in favour of scalability'. All founders want to aggressively scale their user base, and when I present this argument, they are generally receptive. Additionally, I set aside my tendency towards perfectionism and focus on the essentials, adding non-essentials to the backlog. Another practice that I emphasise is making releases easy and boring. This allows the organization to quickly ship features and gradually improve and enrich them.
Early-stage startups often promise the world to their first clients and investors and it's up to the tech team to deliver the product. Management or sales teams frequently do not understand the technical complexity of certain features, which can lead to unrealistic deadlines. Not delivering on time could mean losing a potential investor or client, something startups cannot afford. This puts the tech team in a challenging position. Developers might feel that the only way to meet these deadlines is by working long hours but following this strategy for to long can backfire. Research shows that consistently working over 40 hours a week can lead to a decline in productivity, an increase in mistakes, and eventually, a higher chance of health issues like burnout.
On the other hand, startups operate with limited resources and need to ensure they maintain the best possible pace to fulfill their promises. How to deal with this conflicting interest:
A good developer understands when to push back and when to do the job. If you constantly push back, management might feel that you do not understand what is at stake or respect the chain of command. On the other hand, if the startup is managed by 'leaders' who rule by dictate, that's not good either. When I start at a company, I begin by building trust and spend time understanding the business. In discussions, I clearly state the impact of their decisions, propose alternatives, but always emphasize that it is their decision, thus respecting their role as manager. This approach fosters a culture of trust and collaboration
To summarise: There is sometimes tension between management and developers, which can harm a startup when there's a lack of mutual understanding. I hope I've made it clear that this isn't solely the responsibility of management to guard the balance; developers should play their part as well. Here, using your soft skills is as important as your coding skills to the success of the startup.