3 ms·
Ask HN: What software engineering process for startups?
What kind of engineering process do you want for a startup?
Typically you want to iterate fast, adding/changing features as necessary. Unit test make code harder to change (you may need to fix broken tests) but also more reliable (you can be pretty sure you didn't miss anything if the unit test all pass). If you have many people working on the same code, you typically need to agree to certain things ("architecture") in advance and set it in writing as a design doc. If it is just one or two guys writing code and talking to each other, isn't that too much overhead?
To set some baseline, Google apparently did design docs, code and design reviews, and unit tests from the start. OTOH, it seems PG doesn't write unit test, at least there were no unit tests in the Arc/Hacker News source code release. He obviously doesn't write specs or design docs as he prefers exploratory programming.
What do you practice and why?
- ntoshev 18y agoIn a current project I do mostly exploratory programming (figure out the code structure as I go), but I will probably also have automatic tests that exercise large chunks of the application at once, from user perspective, without going into any detail. These are supposed to serve as smoke tests, ringing the alarm if I broke anything big.
- babul 18y agoExploratory programming to play with ideas and concepts and to quickly prototype and evaluate things. Once a clear vision/direction is established, I switch to a more test driven development model more to ensure robustness and iron out errors than anything else.
- syalam 18y agoagile/xp. release early. release often. a startup in its infancy needs to get the product out fast.