4 ms·
There's some good advice here, but this is ridiculous: > But, on another side tests slows you down as you build features. When your team writes tests they need
by wpietri 4y ago
There's some good advice here, but this is ridiculous:
> But, on another side tests slows you down as you build features. When your team writes tests they need 2x more time to release any feature.
Tests are an investment in fast future development. Last I did a startup, we did not write tests for anything throwaway or experimental. But once we decided some chunk of code was a keeper (e.g., experiment had a positive result), we wrote tests.
With just a team of 6, we were releasing a few times a day, not just once a week. And we had no "QA freeze" nonsense, because our tests were solid enough that we didn't need manual QA to release.
That said, I hired for people who were good at writing tests, and we did pair programming with frequent pair rotation, which gave us a big quality boost and helped keep our test suite lean and effective. I can believe that some startup teams have low enough levels of testing skill that "they need 2x more time to release any feature".
- Kamq 4y ago> Tests are an investment in fast future development. I mean, they are, but what's the roi on that investment? Not all investments are good. 90% of start-ups fail, the chunk of code that's a keeper still has a 90% chance of being thrown away.
- wpietri 4y agoSure, and that's why I explicitly said "experiment had a positive result". Before you decide a particular chunk of code is a keeper, you should have data that gives you confidence. Before you have signs of product-market fit, I think people should write throwaway code and then throw it away. Once you have something worth investing in, I think it's time to invest. Having high-quality code in areas where you're confident it's valuable enables rapid experimentation in the areas where you're not sure yet.