

Ask HN: What software engineering process for startups? - ntoshev

What kind of engineering process do you want for a startup?<p>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?<p>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.<p>What do you practice and why?
======
ntoshev
In 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
Exploratory 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
agile/xp. release early. release often. a startup in its infancy needs to get
the product out fast.

