5 ms·
As a consultant I am constantly called onto projects that are in varied states of "prototype gone wild" - they seem to already be following this advice on many
by joelhooks 15y ago
As a consultant I am constantly called onto projects that are in varied states of "prototype gone wild" - they seem to already be following this advice on many levels and pay the price later. YMMV
- m0th87 15y agoRight, which is why he states TDD and agile development is best fit for consulting. It makes perfect sense there.
- joelhooks 15y agoIt is WAY more expensive to do later than it is to keep this sort of thing in mind up front. I've done a lot of work with product startups that have dug a massive tech dept hole that is actively affecting their bottom line. Rickety foundations. TDD fully supports the concept of prototyping. You don't unit test a prototype. The trick is to STOP that prototype when the concept is proven and move onto something you can really build on.
- anthonyb 15y agoA mess is not technical debt! http://blog.objectmentor.com/articles/2009/09/22/a-mess-is-not-a-technical-debt http://blog.objectmentor.com/articles/2009/09/22/a-mess-is-n...
- gfodor 15y agoThis is a nice idea, and perhaps is the original meaning of the term, but in practice sometimes a mess is exactly what you should be creating. Since you know you are going to be throwing it in the trash this mental mode of prototyping fosters creativity like no other.
- 21echoes 15y agoyou've nailed the core problem with the article-- you don't test stuff at an extremely detailed level (unit tests) until you're pretty damn sure of the feature and the way you want to implement it. the way you get there is through user tests, user tests, user tests. the goal should be to never write a line of code that you'll throw out later. this article reads like someone read a couple of articles about TDD, decided that they should do TDD on their first hacky prototype of their startup idea, and got upset when they realized their idea wasn't fleshed out so they had to throw out code and consequently the tests were useless. this is not the way product design and development works.
- choxi 15y agonope. i've done TDD for 3 years, ever since I learned Rails. in my experience, that's exactly how product design and development works. whether it's a startup or a goliath like Google, you implement a lot of features to test a hypothesis and if they don't work out you scrap them. i think you're "never write a line of code you'll throw out later" plan comes from a mythical world.
- mseebach 15y agoTechnical debt is just that: Debt. And in a start-up that is incurring large piles of various forms of financial debt, it might very much not be rational to incur financial debt to avoid technical debt. Of course, there's a balance to be struck and it's also important to call out the fact that you're incurring technical debt and make it a conscious decision.
- jwatte 15y agoSo, here's the thing: Early effort is more expensive than later effort, because if the idea doesn't survive, all that effort has infinite cost/benefit ratio! Before you have any value, what are your tests supposed to be defending? Once you can quantify the benefit, and know what your business is, then a development process based on testing can accelerate value creation while minimizing risk to existing value.
- jaggederest 15y agoThere's an analogy to be made to birth control - it's expensive up front, sure, but the long term savings...
- drumdance 15y agoIf only TDD came in pill form...
- Argorak 15y agoThis is different: he said that he is called as a consultant on projects where this way of working has run amok. So the parent has no reason to propagate his own way of doing things.