⚡ Get All Content for 20% Off ⚡

Why Do Huge Companies Such as Google Still Have Bugs in Their Products? All companies accumulate technical debt as they grow. Here are six ways to manage this problem.

By Andrew Cohen

entrepreneur daily

Opinions expressed by Entrepreneur contributors are their own.

I often hear people wondering how a company such as Google -- with thousands of the world's best engineers -- can still have so many bugs in its products. Are Google's software developers simply not as good as everyone says they are? Is the company so poorly mismanaged that it can't fix simple problems with web browser page layouts or email delivery systems?

The answer, of course, is that all companies accumulate technical debt as they grow. Even great engineering teams can "fall behind" on feature development and bug fixes because of the huge amount of maintenance work that accrues as code bases increase in size.

The work required to develop every new feature is not just limited to the code written specifically for that new feature, but it also involves all the automated software tests, quality assurance processes, code documentation, deployment processes and scalability concerns that need to be addressed to support that new feature. Such technical overhead tends to increase exponentially as the number of new features increases.

Related: Top Predictions for Hiring and Retaining Software Developers

Companies generally "learn to live with" certain low-priority bugs because fixing them is simply not as high a priority as paying off other, more critical technical debt. Giant profitable companies such as Google are fortunate to be able to absorb huge amounts of technical overhead, thanks to large cash stockpiles, patient investors and hordes of the world's top engineers.

But startups (and most other companies) do not have this luxury. Many a promising company has collapsed under the weight of technical debt, finding themselves in a position where they are unable to move quickly enough to respond to changing business realities.

Startup CEOs and CTOs should cautiously manage the tradeoff between building new features and paying off their technical debt before it accrues too much interest. At Brainscape, we've been extremely careful to manage our technical debt, and we have learned many valuable lessons along the way.

1. Don't open too many cans of worms.

When considering adding new features to your product, it is important to consult your engineers to fully understand the amount of ongoing work that will be required to maintain that feature. You should think of this maintenance cost in terms of the salaries of the engineers and managers whose time (and mental distraction) that this will require. Is the new feature really worth all the potential complexities and distractions that it could introduce later?

2. Consider an early code refactor.

If your company is like most startups, it has likely experimented with a variety of different features and user experiences before honing in on the right product setup. There is a good chance that the relics of these artifacts are still buried in your code, confusing every new developer who joins your team.

It is thus often a smart idea to re-write much of your code -- or at least "clean it up" -- before scaling the product further or hiring too many new engineers. This is especially valid right after you have raised money, while you have the luxury of a long cash runway.

3. Hire the right CTO.

Many early-stage startups begin with a co-founding "CTO" who is fresh out of college or a coding boot camp. This person usually has a great "hacker mentality" and is able to build features quickly, in an agile way, using a variety of ready-made prototyping tools and APIs. Such a skill set is often perfect for the needs of a modern early-stage lean startup.

Related: The 5 Non-Technical Skills Any Great Developer Needs in Order to Advance

Yet as the startup begins to mature into a real company, the number of scalability issues multiplies exponentially, and the speed at which the company can evolve its technical architecture becomes a huge determinant of its success. It is therefore extremely helpful to hire a CTO who has worked on at least one large development team, on a product with hundreds of thousands of lines of code, for at least two years.

There is no substitute for the smart engineering practices that are gained from such experience.

4. Do some things the hard way.

The right engineer does not just write (or manage) code the fast way, deploying features as quickly as possible. Instead, he or she considers the complete long-term implications of each feature. How will this feature affect the product's loading time as the user base grows? How hard will it be to maintain as we continue to add new features?

The right engineer understands the proper tradeoffs between development speed, performance, scalability, stability, security, reliability and maintainability. The right engineer may initially take twice as long to develop a feature to avoid the risk that it takes 10 times as long to rewrite later. This skill of knowing where to draw the line only comes with experience.

5. Minimize developer turnover.

Every time a software developer leaves your team, he or she leaves behind "legacy code" that new developers are going to have to learn. This learning curve (and inevitable code rewrites of things that "the last guy" did "the wrong way") is often a large time suck and a big source of technical debt. Be sure to take good care of your developers so you can limit your turnover!

6. Create team redundancies.

To reduce the technical debt created by potential developer turnover, it helps to ensure that at least two or more engineers are familiar with each piece of your code base. This can be facilitated by having a rotating division of responsibilities and/or by instituting a regular practice of pair programming or code reviews.

If your company is like most, there will likely be a constant compromise between the business and engineering sides. "Business guys" tend to push for faster growth and more features, with little appreciation for how pretty things look under the hood. Meanwhile, good engineers typically push for better technical solutions that make software more maintainable over time.

Finding the right balance between growth and "managing technical debt" is one of the biggest determinants of startups' long-term success.

This article was written by a member of the AlleyNYC contributor network. AlleyNYC is one of the world's largest innovation hubs, helping foster the growth of startups in its flagship location in New York City. Entrepreneur Media is a partner and investor in AlleyNYC. If you would like to learn more about AlleyNYC and how to apply for membership visit here.

Related: Need a Software Engineer? Here's How Much You Can Expect to Pay. (Infographic)

Andrew Cohen

Founder & CEO, Brainscape; Instructor, TechStars and General Assembly

Andrew Cohen is the founder of Brainscape, a web and mobile education platform that helps people study more efficiently. Brainscape originally grew out of a personal project that Cohen created to help him improve his Spanish, while working in Panama for the World Bank. It later inspired him to seek a master's degree in instructional technology from Columbia University and transform his pet project into a fundable startup that can help people study any subject. Brainscape has since raised several million dollars from top venture capitalists.

Want to be an Entrepreneur Leadership Network contributor? Apply now to join.

Side Hustle

The Remote Side Hustle a 43-Year-Old Musician Works on for 1 Hour a Day Earns Nearly $3,000 a Month: 'All From the Comfort of Home'

Sam Ziegler wanted to supplement his income as a professional drummer — then his tech skills and desire to help people came together.

Business News

AI Is Impacting Jobs. Here Are the Gigs Affected the Most, According to an Analysis of 5 Million Upwork Postings

The researcher said in the report that freelance jobs were analyzed first because that market will likely see AI's immediate impact.

Leadership

Former Interrogator Shares 5 Behaviors Liars Exhibit and How to Handle Them

Five deceptive behaviors to look for and how to respond to those behaviors when you encounter them.

Money & Finance

4 Promising Industries Investors Should Be Watching in 2024

Wondering whether your industry is on the decline or set to expand? Read on for these predictions on the best sectors for growth in 2024.