Prioritizing Your Startup's Roadmap

One typical Friday morning in 2004, I walked into a government building and headed to work. I was a junior Java engineer and part of a hired team building an internal system for a government agency. We were a few days behind on schedule, and a technical issue arose. During the morning team meeting, we made a plan to refactor a small key part of the codebase - an effort that should have taken just the morning. And I made a classic mistake.

I was tasked with rewriting one file that other parts of the program relied on. As I started to change this file, I saw ways in which other related files could be improved. And then other functions that could be optimized. Pretty soon it was midnight Sunday and I was quite deep in the rabbit hole.

If I had wanted to change the oil of the car, I now found myself having completely dismantled the engine. The oil filter lodged in the engine block and cylinder head gaskets commingled with timing belts. The program wouldn’t compile - didn’t work at all.

At about 2am, I deleted all the changes I had made over the past 72 hours, and went back to the original library. I spent 45 minutes rewriting that file and slept for a few hours before returning to work, exhausted and defeated.

My beleaguered ambition to rewrite a big chunk of the codebase that weekend isn’t uncommon, as I learned later and have seen in several companies.

In fact, these efforts occur a much larger scale when companies decide to migrate to the latest front end framework or infrastructure management technology. These large refactoring efforts can take months or sometimes years. All the while, product innovation stalls.

For a startup, whose competitive advantage is speed, this innovation hiatus has an enormous and unquantifiable cost. In the worst cases, it can kill the company.

So, when is embarking on a large refactoring worth it for software companies? When the technology limits growth and revenue. That’s my heuristic.

Refactoring makes sense when a new feature or product for which customers will pay cannot be built without it. Refactoring is a worthwhile investment when customers will churn. Refactoring is like any other product and engineering initiative: it must be prioritized relative to the future revenue contribution to the business.

Revenue contributions for future products can be difficult to estimate. But in many cases, the answer is obvious. Even if my refactoring efforts had succeeded and I had optimized all those Java libraries, none of it would have contributed to a happier customer or more revenue. It would have been code poetry, which is a wonderful thing, but not a priority for a fast-moving startup.


Amit K.

Making the world more productive - one workflow at a time

7 年

Tomasz Tunguz I would add that architectural decisions are a pre-requisite to how much effort is needed to re-factor. For example, with inputs/outputs of an API call/method being well known - you can re-factor freely. The notion of microservices is still not a holy grail though because callers of those microservices still expect certain input/output - so re-factoring can become tricky, but not as tricky as a monolithic codebase. We went API-first at Tallyfy, are now enjoying the fruits of this decision. Much of this can be solved up front.

回复
mirela katroshi

passionate about human development and communication development.

7 年

Very interesting article...thank you

回复

Yes. Chose wisely which part of your system to refactor next. Choose the area that provides the best business value going forward. Also make the extra to ensure your business actually earns that value. It's no use improving something if you aren't going to put that improvement in the hands of the people who will be most impacted.

Sovannarith MOM

Accountant & Admin, Sale Operation.

7 年

Program code !

回复
Azmat Saeed

Computer Technician at govt. shalimar college lahore

7 年

Example of razor (.Net).... Nice

回复

要查看或添加评论,请登录

Tomasz Tunguz的更多文章

  • This Analysis Cost 27 Cents

    This Analysis Cost 27 Cents

    Monday’s analysis cost about 27 cents to produce. This little screenshot is of Claude Code, the product I use now to…

    5 条评论
  • Positioning Startups in the Age of AI

    Positioning Startups in the Age of AI

    How do you position and scale an AI company in a rapidly evolving market? Join us for an in-person Office Hours session…

    5 条评论
  • How Much Is A Venture Firm Worth?

    How Much Is A Venture Firm Worth?

    A small spin-out from a publicly traded behemoth launched with the ambitious vision of transforming their entire…

    5 条评论
  • Why War & Peace Is Killing Your Data Budget

    Why War & Peace Is Killing Your Data Budget

    Imagine if every time you edited a document, the word processor forced you to retype everything that had been written…

    3 条评论
  • A Founder's Guide: Essential Management Advice for Startups

    A Founder's Guide: Essential Management Advice for Startups

    As startups scale, effective management becomes the difference between chaotic growth and sustainable success. After…

    10 条评论
  • Lopsided AI Revenues

    Lopsided AI Revenues

    Which is the best business in AI at the moment? I analyzed Q4 revenue data from publicly traded companies across…

    8 条评论
  • Four Marketing Principles That Redefine Markets from Klaviyo's Former CMO

    Four Marketing Principles That Redefine Markets from Klaviyo's Former CMO

    During a recent Theory Office Hours with Kady Srinivasan, former CMO at Lightspeed Commerce, Dropbox, and Klaviyo, we…

    5 条评论
  • The Complete Guide to SaaS Pricing Strategy

    The Complete Guide to SaaS Pricing Strategy

    Most startups play defense when discussing pricing with customers. They dance between asking for too little, leaving…

    20 条评论
  • What Happened to My Traffic?

    What Happened to My Traffic?

    Chegg filed suit against Google for changes in their algorithm forcing the company to consider a sale. They allege the…

    5 条评论
  • AI Fluency : The Next Interviewing Skill

    AI Fluency : The Next Interviewing Skill

    Algorithms needed for unpredictable journey. Significant compute costs, endless data processing, long periods of…

    8 条评论

社区洞察

其他会员也浏览了