Live data from Hacker News

Throwing away 18 months of code and starting over

tompiagg.io

31–40 of 89 posts

Re: Throwing away 18 months of code and starting over

#31
post #14

Pearls. > I would NOT allow people to write tests > now [...] we started with tests from the ground up

Two different stages of the project, not necessarily contradictory. I'm not saying this is great, but tests make a whole lot more sense when you know what you're building.

in an age of generated tests, a mandate on no tests is just dumb

Re: Throwing away 18 months of code and starting over

#32

It's not really hinted at in the article, which doesn't actually mention whether the rewrite was a net gain - I presume it was or they wouldn't have written the article, and the lead-in picture paints a rosy picture, but the tone at the end suggests he's not happy with how things turned out. But one thing that used to be a common design anti-pattern was the "version 2 problem". I think I first heard about it when Net…

I definitely encountered this second-system effect recently. I have an app that works well because it was written to target a specific use case. User (and I) wanted some additional features, but the original architecture just couldn't handle these new features, so I had to do a rewrite from the ground up.

As I rewrote it, I started pulling in more "nice to haves" or else opening up the design for the potential to support more and more future features. I eventually got to a point where it became unwieldy as it had too many open-ended architectural decisions and a lot of bloat.

I ended up scrapping this v2 before releasing it and worked on a v3 but with a more focused architecture, having some things open-ended but choosing not to pursue them yet as I knew that would just introduce unneeded bloat.

I was quite aware of the second-system effect when doing all this, but I still succumbed to it. Thankfully, the v3 rewrite didn't take as long since I was able to incorporate a lot of the v2 design decisions but scaled some of them back.

Re: Throwing away 18 months of code and starting over

#33
post #13

Earlier quoted context omitted.

Did I say that my way was the right way? No: what I said was actively disallowing tests in every situation was the wrong way. There is no ability here for the cost benefit analysis to change over time. There is only no tests

Did you edit the wording of your original comment slightly to emphasise the "actively disallowing them" in every situation? Anyway... if that is what you meant, then ok. It's less awful a statement than what I felt I originally read. I'd still push back on your hyperbole though. I don't think the author was insane - and we don't know what the broader business context was when they started growing the team and decided…

He did not edit, and you're misunderstanding the meaning behind his post. Not everything needs to be pedantic and accurate, language is flexible, this is about communicating, not being right.

What we really don't need is paragraphs of someone arguing because their own definitions differ slightly from the OP

Re: Throwing away 18 months of code and starting over

#34
post #24

Earlier quoted context omitted.

> they just stampede in with "THIS IS THE RIGHT WAY". And the discussion can't even be had. That's exactly what this person is railing against. They strictly forbid testing.

Again - that's a business decision that needs to be made in the context of that business. The fact that testing was forbidden isn't in itself good or bad. It depends on that business context. THe post says nothing about how that decision was made, whether it was discussed, or if it was just his absolutist ideal he imposed without consideration of the broader cost-benefit. And I still feel the original comment doesn't…

Forbidding tests is not a business decision, it's a software engineering decision, and it's a remarkably poor one at that.

Re: Throwing away 18 months of code and starting over

#35
post #2

Having a culture of not ever writing tests and actively disallowing them is so insane I can't even imagine why there's anything else in this post

And particularly the “no tests go faster”.

I feel like we keep having to reestablish known facts every two years in this field.

Re: Throwing away 18 months of code and starting over

#36
"For the longest time, I would NOT allow people to write tests because I thought that culturally, we need to have a culture of shipping fast"

Tests are how you ship fast.

If you have good tests in place you can ship a new feature without fear that it will break some other feature that you haven't manually tested yet.

Re: Throwing away 18 months of code and starting over

#37

It's not really hinted at in the article, which doesn't actually mention whether the rewrite was a net gain - I presume it was or they wouldn't have written the article, and the lead-in picture paints a rosy picture, but the tone at the end suggests he's not happy with how things turned out. But one thing that used to be a common design anti-pattern was the "version 2 problem". I think I first heard about it when Net…

My adaptation of the Version 2 Problem is “any idiot can ship version 1 of a product, but it takes skill to ship version 2”.

Usually levied at people who are so hyper focused on shipping a so-called MVP that is really demoware that they are driving us at a brick wall and commenting the entire way about what good time we are making.

Re: Throwing away 18 months of code and starting over

#39
post #2

Having a culture of not ever writing tests and actively disallowing them is so insane I can't even imagine why there's anything else in this post

And particularly the “no tests go faster”. I feel like we keep having to reestablish known facts every two years in this field.

I ran into some serious struggles when we got far enough into accepting most of the tenets of XP as standard practice that most jobs didn’t even debate half of them and then landed at places that still thought they were stupid. I’d taken for granted I wasn’t going to have to fight those fights and forgotten how to debate them. Because I Said So is not a great look.

Re: Throwing away 18 months of code and starting over

#40

Earlier quoted context omitted.

Did you edit the wording of your original comment slightly to emphasise the "actively disallowing them" in every situation? Anyway... if that is what you meant, then ok. It's less awful a statement than what I felt I originally read. I'd still push back on your hyperbole though. I don't think the author was insane - and we don't know what the broader business context was when they started growing the team and decided…

He did not edit, and you're misunderstanding the meaning behind his post. Not everything needs to be pedantic and accurate, language is flexible, this is about communicating, not being right. What we really don't need is paragraphs of someone arguing because their own definitions differ slightly from the OP

>He did not edit

He edited his reply to me multiple times... which is what made me suspect an edit to the original comment. But whatever, I'm happy to acknowledge his original intent even if he did state it more harshly.

>What we really don't need is paragraphs of someone arguing because their own definitions differ slightly from the OP

This is unnecessary. OP came out with "AUTHOR IS INSANE" even on the most generous of interpretations. Even if we allow for nuance OP is claiming, there is little constructive about his contribution. I feel fine about calling it out.

Post reply on HN