TechSparks 2019: Key to successful scaling is managing software complexity, says Sidu Ponnappa
“There is nothing you can do to guarantee success. Whatever you do, it will not be enough, it will be too small or too little, it'll be too late. And there is nobody out there who has the right answer for you.”
The coding maestro is always ready with a deep insight into the world of tech. At TechSparks 2019, Sidu Ponnappa summed up startup reality saying that it was all about scale, and what startups can learn from these nuances.
The managing director and head of the Gojek India Engineering Centre shared interesting insights on what happens when systems move past a certain scale, and what would be the wisdom going forward.
With his 11 year experience as a tech entrepreneur, Sidu recalled how the initial days of a startup’s journey sees everyone huddled together with fresh ideas, an urge to surge and a relatively high morale.
Predictably in the face of this positive aura, when something goes down, the team’s only objective is to fix it in minutes, and the mistake appears transparently visible.
As time passes and the startup progresses owing to the enormous amount of time spent on a single feature or a process, or otherwise, the founders’ mindset shifts towards “feeling unlucky.”
“The things that seemed to work previously, the answers that used to arrive instantly no longer seem to show up. The defects rise, bugs and downtime start going up. The team gets frustrated and they start to leave, one by one, and nobody seems to understand why. Root causes fundamentally become hard to decipher,” Sidu shares.
The fundamental flaw in our thinking
Failures, entrepreneurship and leadership are all part of the same entity, which Sidu has explored throughout his career. A techie himself, there are two lenses a techie refers to - tech and capital, under which he defines the categories of startups as they grow and scale.
As technology infrastructure and capital increase, the headcount also increases. The number of engineers, the number of layers added to the top of the technology stack, number of users, all increase, and the list goes on. Somewhere along the way what seems very simple becomes complex, even mathematically.
Sidu recalls a quote by the famous Frederick P. Brooks, a computer architect and scientist, “A scaling-up of a software entity is not merely a repetition of the same elements in larger size, it is necessarily an increase in the number of elements. In most cases, the elements interact with each other in some nonlinear fashion, and the complexity of the whole increases much more than linearly."
Having experienced this phenomenon, Sidu says, "The problem, I believe, stems from the fact that we as humans tend to draw analogies of modelling our product delivery from real life. If we look at manufacturing and the systems we can see and touch, the common attribute of all these systems is that every building block seems to be consistent and repeatable, which is how scaling works for a car manufacturing company.”
Yet, only cars have identical sets of components, not software products. There is always a tiny logic that is often overlooked - the medium in which a software product is executed in abstract. Software exists only in the minds of its makers and it is not what is running on the service.
It is only an artefact that is derived from the shared understanding of everyone in the company, be it a salesperson or a product manager.
The secret to successful scaling
A techie who inherently believes that failure can help you train your instinct, he spoke of how complex software products and the other areas of an organisation can get, Sidu distinguishes complexity into two arenas - Essential and accidental.
Essential complexity is something that the entire team will have to be concerned with, in an ideal world. If there are problems that are clearly visible and beg for immediate attention, the obvious priority should go towards them alone. These are the kind of problems and issues that need urgent fixing, without which normalcy is not restored within the systems - be it technical or human.
Accidental complexity, on the other hand, refers to all the other categories of complexities which are a part of any manager's daily chores, and the ones that are often ignored. Things like hardware performance issues, suboptimal programming languages and bad HR policies fall under accidental complexity.
However, the key is also to identify what kind of problems are essential and what are not. The right judgement between what is essential and what is accidental helps teams focus on what is important and what is not. He recommends that managers and founders spend inordinate effort to measure and minimise the scale of accidental complexity.
Sidu puts it simply, “Managing the complexity of your own software while you scale the product is the most crucial if you want to scale successfully. The first step is actually to identify what exactly carries complexity in your system.”
(Edited by Suruchi Kapur Gomes)
YourStory's annual extravaganza TechSparks brings together the best and the brightest from the startup ecosystem, corporate world, policymakers and, of course, the investor community. Over the past decade, TechSparks has grown to become India's most loved tech and startup platform for knowledge sharing and networking. A big thank you for all your support over the years and a big shoutout to our sponsors.