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.

ByAndrew Cohen

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. AtBrainscape, 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 theamount ofongoingworkthat 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 andmaintainability. 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.

每次一个软件开发人员离开你的团队,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.创建团队裁员。

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 membershipvisit 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 ofBrainscape, 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.

Related Topics

Business News

'We Don't Sleep Well Anymore': Airbnb Host Grapples With 'Tenant From Hell' Who Refuses to Leave

An Airbnb guest rented a guesthouse for a long-term stay in 2021 but has since remained in the unit for over 540 days — without paying rent.

Business News

This State Just Replaced New York as the Country's Second Most Valuable Housing Market

A recent report by Zillow found that Florida has edged out New York as the second most valuable housing market in the U.S., while California is still No. 1.

领导

Change is Inevitable – But How Your Business Approaches Change Is Not. Here Are 2 Strategies to Help You Succeed.

Identifying the differences between change management and change leadership and integrating them effectively is essential for achieving successful and sustainable organizational change in today's rapidly evolving business landscape.

Starting a Business

Move Over Boomers and Millennials — Here's How Gen Alpha's Top Entrepreneurs Are Printing Money

From Roblox to Wall Street, the internet is Gen Alpha's playground. Here's how to succeed as a Gen Alpha entrepreneur.

Marketing

Why Clients Feel Overcharged by Marketing Agencies and How to Fix It for Good

Are marketing agencies breaking the bank without delivering the promised results? Dive into the client's dilemma as we uncover the true cost of agency services and explore strategies to bridge the gap between expectations and reality.