Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Typical way that competent developers end up with technical debt:

1. Customer/user/consumer has a vague idea of what they need but doesn't know how to express it.

2. Developer works with customer to learn their business and understand their requirements.

3. Developer throws together a prototype to confirm that he understands the problem.

4. Customer sees that developer is on the right track. If these 9 enhancements are done, then we'll really have something.

5. Developer quickly adds 9 enhancements to prototype.

6. Customer loves it! Move it to production so we can play with it for a while.

7. While customer plays with it, developer maps out a plan to architect, refactor, and scale the prototype to be "production worthy".

8. Developer is pulled away to 5 other urgent projects.

9. Customer continues to use prototype as production software.

10. Two years later: "Who wrote this shit?"

Which quadrant does that fit into?



LOL, you just described the way that Rails first makes it into a lot of large organizations. Luckily, if you follow Rails conventions you should be pretty close to "production worthy" at step 6.

As for step 10, it's the rare system that doesn't suffer that two years into production.


A prototype is prudent deliberate.


Shipping the prototype as production code and not maintaining, fixing, rewriting or deleting it would be reckless debt.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: