3 ms·
You stopped telling the story at the most interesting part. At my last startup, I wrote totally throwaway code on all our initial prototypes. Once we had somet
by wpietri 4y ago
You stopped telling the story at the most interesting part.
At my last startup, I wrote totally throwaway code on all our initial prototypes. Once we had something that looked like it would hit product-market fit, I hired a team, we threw away the shitty codebase and started fresh.
If you don't throw it all away after making the kind of mess you describe, then you are going into the company's most crucial time with a boat anchor around your ankle and the water level rising. I'm very glad we did, as starting fresh with tests, CI/CD, and other quality practices let us be extremely responsive to my cofounder's needs and the things we learned from every release.
- andrewstuart 4y agoGetting the job done is all that matters. This is why an experienced developer is sometimes the wrong person for the job to build a startups first version, unless they are able to fully embrace the mindset of prioritising speed over everything. Beware of experienced developers who get the job of writing a startups first code and who start talking about tests/CI/CD/feature branches and all that stuff. Avoid security holes and take backups, that's all that matters and anything else should be actively avoided.
- wpietri 4y agoAgain, you seem to be stopping the story at the wrong point. The initial job is to find out whether the project is worth investing in. 9 out of 10 startups fail, they say; if you're in one of the 9, you need to know that ASAP. If you can tell that with throwaway code, great! You've saved a shit-ton of money. As an example, I did a startup circa 2010. We raised money on an idea that VCs were very excited about. So much so that we found out later that other VCs had invested in similar notions. We spent a few months building disposable prototypes to test the value prop. It turned out that users hated the idea no matter what we tried. So we killed it after spending maybe $100k and did something else. Job done! But the other companies persevered, building full apps, and each burned millions before they realized there was no future in it. So in that case, yes, you don't want to invest a lot. But a few ideas later we had something that looked to have real product market fit. At that point, we threw away the code and started fresh with solid tests, CD, and other quality investments. Why? Because the job we were trying to do had changed. It had gone from hypothesis testing to actually serving users and building a real product. If you want to get that job done well, you can't afford to have a garbage code base.
- datavirtue 4y ago"But the other companies persevered, building full apps, and each burned millions before they realized there was no future in it." I like these companies. Share the names and I'll have my sales guys reach out.
- gyulai 4y agoKudos, if you actually did that rewrite. ...if only I had a cent for every time I've had this conversation with an engineering manager: Manager: "Just live with the mess for now. We'll fix it later when we have money." Later: "Can we fix the mess now?" Manager: "No. We're making too much money now. Blah, blah, blah. Opportunity cost."
- wpietri 4y agoWe really did throw it away. And when I'm an engineering manager, this is my big test for product managers. Initially I give them a low-limit credit card for technical debt. If they pay it off when they promise, I give them a bigger limit. If not, I take the credit card away and we keep a consistently low level of technical debt.
- wpietri 4y agoAnd I should add that more startup and new-product teams should be bold about throwing away code. Startups need to be optimized for learning. Each release should tell you something about your users, your market, your ideas. But doing that means that some of the code will have been written before you know what you're doing. That code either needs to be refactored or reverted. The latter feels scarier but is often cheaper.
- gyulai 4y agoCouldn't agree more.