How does poor quality software impact a startup engineer’s life?

Quality is like weight loss. Everyone seem to get it right (for a short period of time). Maintaining the lost weight is harder than the journey of losing weight itself. Breaking a plateau is much harder than imagined.

It is not in everyone’s DNA to be slim and fit. It is also not in everyone’s DNA to be fat and more healthy than most slim people. Only a few can be slim or fat and be super healthy. Coupled with their lifestyle, they can maintain it throughout their life. For the rest of us, we will wax and wane.

So, quality, unless part of the DNA of an organization and unless backed by a strong desire and act to transform cannot be achieved or sustained.

Everyone in a startup is a victim or a beneficiary of the DNA of of the org.

Who creates the DNA of Quality in an organization?

Who?

  • The founders
  • CXO’s
  • The board
  • Venture Capitalists
  • Senior Leadership Team : VP’s and Architects
  • Customers and their context

How?

CEO

Founder CEO’s have many challenges. The most important problems they are constantly solving is product market fit, funding and customer growth. Some of them make quality of their product an equal priority. Most of them don’t. For many, it is an after thought and a fixable problem.

Design was an afterthought too. It has now become mainstream. Cred is one of India’s most talked about app for design and experience. Kunal Shah with Harish used design as one of the moat to be build into the product. Design is a visible component of software. Quality isn’t visible at all times. Unless the CEO cares right at the start about quality the teams will mimic the CEO in a lot of ways. Good and bad.

CPO

Early stage startups have Founders themselves as Product Owners. This maybe good till the Product Market fit. Post the PM fit, there will be CPO’s. Defining what needs to be built is straightforward. Defining the experience of the product when things don’t go quite well for a customer is equally important. Some CPO’s know about this. Also, CPO’s are equal partners to CEO and CTO.

The culture set by the CPO is emulated by PM’s and BA’s. Software quality can be predicted by the definition of “done” in any org. CPO’s and their team play a crucial role in defining what they mean by done.

CTO

Code quality begins with the CTO. Period. I wanted to just end it there. CTO is not a role, promotion or a super title for people in tech. They are people who define and get quality code done. The teams they hire reflect their idea of code quality. The good ones know when to say Yes and when to say No. They don’t put their teams in trouble.

Zerodha CTO, Kailash Nadh has been writing about how they try to keep the code clean. Like a Spotify model, we should have a Zerodha model. However, I wrote why it will be hard to replicate the Zerodha model.

The Board

What do you know about the board? Not much right? They run companies. The CXO’s report to the board. The CXO’s also work towards achieving what the board wants. A board of a company is an enabler. The job is to take care of shareholders and stakeholders. Decisions they make affect shareholding and shareholders largely. They can also drive the org in certain directions.

Founders are smart but not holistic. So they need to rely on the board’s wisdom to grow the organizations. Most startup founders who have had a bad board member know the importance of that role. Large orgs have boards that have people with great wisdom so that they don’t end up making a super large stupid decision. The board has a role to play in the quality of software built. They can specifically ask quality metrics to be reported to them or just look at numbers and let the CXO’s deal with quality unless churn is very high.

Venture Capitalists

They bring money. We all know that. What the larger population don’t know is VC’s bring

  • culture
  • lessons learnt
  • values
  • support systems
  • peer support network for founders
  • a sense of urgency

That sense of urgency under the hands of CXO’s who are experts at what they do but buckle under pressure can result in poor quality software. Founders and CXO’s are often obligated to say YES to VC’s. Most of the times VC’s are part of the board too. So, their influence is much higher to build and scale a startup.

Senior Leadership Team : VP’s and Architects

Leadership team of any tech organization has VP’s and Architects. These people translate the vision (and their understanding of it) to reality. These are the people who put a thought into disciplined execution. Execution responsibility rests with the VP’s and Architects. Be it Product, Sales, Marketing and Tech.

Founders are assessed by a VC of the company they keep and the team they build. A great thought but not well executed is a wasted opportunity. It is in execution the rubber hits the road. Execution leadership is super hard. Most people crack under pressure. If Founders and VP’s are consistent – any startup would succeed big way.

Customers and their context

What’s your alternate to LinkedIn? The only alternate I can think of is to not be on it and that sounds scary to a lot of us. If the software we are paying for has poor quality and we don’t have alternates we will just live with it.

B2C

Today, there are plenty of choices in B2C Apps. To make a payment we have at least 10 popular apps and 100 non popular apps. When there are choices we demand quality. My neighbors prefer to use PhonePe to make payments in the place where I stay because that appears more stable and consistent in low network zones as compared to Google Pay. If they didn’t have a choice they’d be cursing Sundar Pichai and still using Google Pay. PhonePe team is aware of this and their team would not want to slip on this USP. So they focus on deepening this “value” that their customers and users think is quality of PhonePe.

B2B

B2B world is very different and also similar. Choices are plenty in areas where problems are solved. Quality then becomes a differentiator because customers seek for it. We are building bugasura.io which is a simple straight forward bug tracker. Isn’t bug tracking a solved problem? Yes, however, there is an opportunity we feel to go deep and build a high quality product that just works. Works fast. Works without having to beat around the bush. Like us, there are many trying to find the signal in the noisy world. Equally there are products like Rocketlane that solve a problem not often solved and yet they need to build high quality software otherwise they are inviting someone to take over their created market.

Quality happens only after leaders are aligned on the vision and are obsessed to solving customer problems.

Why some startup founders and leadership teams fail to build the culture of quality?

They are humans. No different from us. As humans, we go through urge, desperation, insanity, pressure to succeed, fear, greed and other emotions. The successful ones know how to deal with it and others are either in the learning curve or have let their emotions handle it.

Having worked with many founders, leadership teams and startups, following are some of my observations on why they fail to build a culture of quality:

How they respond to pressure

Most of us want to do our best. Most of us are capable as well. However, the environment around us have to be conducive. The environment in a startup consists of money pressure, investor pressure, time pressure, pressure from competition and product market fit. The worst of all is self imposed pressure. Under pressure, even talented people can fail. We have seen this in whichever sports we follow.

If I could use example of cricket, when a team wants to play dirty and win, they start sledging. The talented players who soak the pressure in fail and give the opponent team a chance to win.

Hiring culturally misfit talented people

Hiring is the make or break for startups. Some people soak a pressure in and bring a person onboard who doesn’t align to the values. This creates chaos. This creates double thoughts about how to do things. Everyone has the right intent but not everyone is suitable for each other. Again, in sports, we have seen this.

If I were to take F1 as an example, Fernando Alonso and Lewis Hamilton are Champions. However, they can’t work together. Their team loses out when they were forced to work together. In my experience with a startup, two architects who didn’t align caused massive loss of time (and money) in a project.

First time founders

I have been one and I can tell you this, first time founders are likely to make plenty of mistakes. There are moments where these first time founders come close to thinking they are giving up. They usually don’t. They persist and are reborn. This is how they refine and become better. That said, first time founders fail. That’s the nature of building startups.

During the failure phase of a first time founder, despite intent and having a good team, they can focus on things they don’t need to and screw up quality of the product. The number of times I have seen founders focused on adding more features faster is a staggering number. In sports, you’d call it a rookie mistake.

Not asking for help or partnering

When talent combines with ambition and results, there is a certain wall that people build. For good reasons most of the time so that they can filter the noise and focus on the signal. However, they should keep a door open for asking for help and to partner with people who can help them succeed.

The culture in which we are all brought up, makes us think, we have to succeed on our own. This is not true. We could if we are playing a game that is played singles. Even there, behind the success of Roger Federer is a team of a coach, a physiotherapist, a sports doctor, and his family. Startups are team games. They need much more partnerships than they have today. Many people don’t recognize this and waste time trying to build what is already available.

An engineer’s life in various startup contexts

There are great startups, good startups and average startups. A startup that is average is dying slow. Good or great is determined by how aligned are the leaders to the vision and how well they understand and solve customer problems. Also the ease at which they solve those problems.

As a Founder, I can point to my own startup journey. Growth and ease of growth has been great when the leaders are aligned on the vision. When the growth or ease of growth suffers, I can clearly see the misalignment. I go back and start fixing myself when it happens.

Engineer’s life when leaders are misaligned

Many good startups suffer ease of growth. We once worked with a super funded startup who were slated to be unicorns but did not make the cut. Why? Their leaders were not aligned. Their sales teams pushed for different flavors of the product in the market. At a certain point in time, there were 12 different flavours of their product that were in production. Tech debt was accumulating, support tickets were flying and their engineering teams were split between supporting existing customer issues versus building one flavor that will replace all 12.

As you guessed, they fizzled out. Imagine being an engineer in such a startup. No matter what your talent is, it will be wasted on a journey that is never going to bear fruits.

Quality is always built upstream and manifested downstream.

Engineer’s life when when startups are fiercly competing

We work with several Series A funded startups. Some of who have some level of unit testing built into their engineering culture. Super delighted to discover such startups. We also see through their rapid growth and they go through many rounds of funding. As they go through rapid scaling one thing that takes a hit is on their culture of engineering. It all begins with a change in unit testing. They stop writing unit tests. Some do for backend and others do for core part of their stack. Front end – poof.

Competing with another VC funded startup targeting the same customer with features become a priority. Quality takes a back seat and tech debt starts flying high. The damage being done to quality built over years arises need for more QA Engineers to hold fort for release. At some point the cost of QA and cost of customer churn goes higher than the cost of putting unit tests.

Engineer’s life when working in a startup that just wants to get acquired

Some founders are building their startup to sell it off in 2 – 3 year time frame. I have personally interacted with founders who were very clear about this. They need just enough quality to scale their startup rapidly so that they could get a high value acquisition.

That said, one org, did bring us in to evaluate the quality of a product and had a certain points allocated for quality to derive at a valuation. However, strategic acquisitions and acqui-hires don’t go through assessment of quality of the product.

Being an engineer in an org that is being built to be sold means being able to put features out faster and being able to fix bugs that blocks customer faster. As long as regression can be managed – the product is considered of good enough quality.

If quality is broken upstream, what can engineers do then?

Engineers are soldiers who fight the war. Some wars are lost even before soldiers set foot to fight. In those cases engineers are incidental casualty. All of us want a lot of money in life. Why? Just to improve our quality of life. The ultimate aim of all our materialistic life is “quality of life”. We want to move from economy class to business class and then to first class. Occasionally our life treats us with a complimentary upgrade to business class.

Engineers are both the beneficiary and victims of the culture of quality in an organization. The world has seen talented engineers produce poor quality software and equally semi talented people (in our judgement) also have produced high quality software. This is because of factors external to them.

Talented engineers do crack under pressure

Most talented people crack under processes that defeat the purpose. They crack under the pressure of time. Also, most talented people fail miserably in a culture that doesn’t suit them. Engineers, even in 2021, don’t know to pick a culture (org) that suits them when moving from one job to another. They are excited to work on new age tech or domains that fascinate them for obvious reasons that they are engineers and they like solving new age problems.

Engineers who join a culture where unit testing and code reviews are how they write product code , simply enjoy the journey. Those who aren’t part of such a culture waste their life dealing with regression issues, tech debt and support fixes as the org scales.

Engineers trying to fix quality that is broken from the top are like martyrs

Even today, engineers attempt automating software that lacks testability built in. I understand a stop gap arrangement. I am not the kind of person who will operate only when everything is perfect. Imperfection is fine but living with it forever is a conscious sin.

I observe many engineers never complain the lack of testability as a blocker. They only complain about the lack of work life balance. Of course, there won’t be a work life balance in such places. To fix work life balance we need to fix the way people build software and how quality as a DNA need to be evolved. Most often we don’t see the invisible. We think work life balance falls under the HR department. It actually falls inside the culture of the whole org.

Junior engineers are rewarded early on to develop a heroic mindset. They are given a pat on the back when they put their heroism saves bad decisions made by leadership and makes the org looks good. This sets a bad tone to them right at the start of their career.

Engineers can enable quality only when it is made ready for them to do it. Sending people to a war without the right homework would cause more death. Every engineer’s life should be celebrated for their supreme sacrifice to make a company look good while 100 things are breaking.

The reason why lot of tech companies don’t build a chaos monkey software like how Netflix did is because their culture is already playing that role.

What are people with Quality in their title doing in startups?

Quality Assurance?

Those who get quality right don’t need QA.

They need people who will

  • run tests on production
  • enable testing in the wild
  • build observability
  • interact with customers to learn their changing behaviors and personas
  • help bring people together
  • advice people on the risks of their decision

None of them is Quality Assurance . Some orgs mean the above when they need help and yet call the role QA. I think it is better to call them Test Engineers than bucket them into QA.

Other startups who use human potential to run scripts, make some humans the last line of defence and put certain people in place to pretend to make their product look good, need people with the title QA. Assurance, I mean. Assure what? If the CEO, CTO, Board, Investors and VP’s can’t assure quality, a kid who passed out of college recently, ill-trained on software, engineering and testing is going to Assure Quality?

What about Quality Advocates then?

One can’t advocate quality to people who don’t want it or the culture overrides any good thing they are bringing in. Any startup that wants to build quality consistently, need quality advocates who facilitate teams to succeed in producing consistent high quality software. Those who don’t need them but have them, give the Quality Advocates a tough time. Consistency is key to quality. Like in weight loss. Many people give up when they hit a plateau on weight loss. Of course one needs changes but consistency is the foundation that will help move the needle.

What about SDET’s? (yes, they don’t have quality in their title)

Sure. You mean Automation Engineers? Automation is a small portion of being a SDET. However, the majority of our industry has made SDET into Automation Engineer role.

SDET’s ideally should do less automation and more of building engineering support tools. Focus on testability, enabling engineers to write unit tests, read and review code, read and review dev notes and build observability into the product. Enable Test Engineers with scripts, hacks and tools to help them discover and funnel their learning to engineering and product teams.

The #1 goal for any startup should be to prevent poor quality

Why?

The pain of poor quality isn’t visible (immediately)

All of us today are doing our best to prevent the spread of corona virus. We are staying at home, wearing masks when we head out, get shots of vaccine, clean our hands and maintain social distancing as much as we can.

Why? The cost of fixing is high and uncertain. The stories of pain from those who contracted the virus are all over the internet. We have seen some of our friends or family members die. This has put a deep sense of responsibility within us.

Poor quality software is like the pandemic we are in. Only difference, we don’t see or acknowledge engineers suffering due to it because the pain is not immediate. The engineers are all doing fine because their life is still moving. It hasn’t threatened their existence. It has only threatened the ease at which they produce things. That doesn’t sound like a burning problem to fix. The money they are earning is making them numb to the pain they are going through. Someday when the need for more money to feel good and secure disappears the pain shall resurface. However, having painkillers for long makes the problem acute and irreversible.

Mental health is the next pandemic

Anytime I have gone to a doctor for neck pain, hand pain, eye pain, the first question the doctor asks is what is my profession. The moment I have said software, their face has an expression of, “Not surprised at all”. Physical health issues and software engineers are synonymous to a lot of doctors. My neck, hand and eye was fixed. I unlearnt some of the practices and could recover from it. Just like many others. A few years ago, I wrote about how startups are breeding a smoking culture in their campuses and the impact it would have on the health of their own employees in long term.

The way we are heading, mental health is now going to become the next pandemic. Maybe it has already become. All therapists I know of are maxed out with requests. A lot more people are reaching out to therapists and seeking help. This is good and bad. Good because people are not hesitating to talk about their mental health issues and bad that there is a great surge in the numbers.

Poor quality software and tech debt directly hits an engineers life over long term.

Leaders should rise

I am a student of Pooja Shah who was (she recently moved out) a Lead Engineer in Test at MoEngage. The little I know about her, she did what I would love to do today if I wasn’t running a business. She influeced the culture of engineering and quality within. That also means, her leaders and founders of MoEngage tick all boxes required to build the culture of quality and ease of growth in their org. While the leaders did their job, Pooja did a good amount of work enabling her people to succeed. She constantly promotes her colleagues to learn and do better than her.

Put her in any org, she will influence the org. Her time with software is to learn what to influence and how to influence people towards a deeper quality culture. This should be a goal for a lot of engineers out there. There are many people like Pooja Shah. We just need more people as compared to the scale at which things are growing.

Quality of your life depends on the quality of your own work.

Changing the culture of a startup bottom up with long term thinking

To have a lasting effect, be it in achieving a high quality software or maintaining at the ideal weight, it comes down to lifestyle. It means, what one does as a habit, consistently, matters. Irrespective of how the weather around is.

What we do today has a strong effect on our tomorrow. Most of us know it but seem to live like, “So what?”. One day of not cleaning your own mess can lead to a permanent behavior of leaving behind a mess for others to clean up. Code quality, unit tests and hygiene checks are a personal choice too. If you have to be a person who is slow because of your care for code quality, so be it. The dividends this will pay in future will be huge. Most importantly, it will reflect in your personal life quality being very good.

Semi final thoughts

Engineers in a startup may be a beneficiary or a victim of the culture of quality but they also have a personal choice to accept it or change it. Be the change you want to see in your startup. In others success is your own.

17
0 Shares:
You May Also Like