4 ms·
I think that's a leaky abstraction. Code refactoring can have a huge performance impact that is 100% noticed by the end user.
by ben_jones 7y ago
I think that's a leaky abstraction. Code refactoring can have a huge performance impact that is 100% noticed by the end user.
- tj-teej 7y agoI think the OPs paradigm holds. If the Code Refactoring has a huge performance impact then it's Offensive work, if it has no impact, then it's defensive.
- brightball 7y agoIMO you just pointed out the key to selling the work. Reclassification.
- tj-teej 7y agoNot exactly, because sometimes there's refactoring which has 0 customer benefit. Sometimes it doesn't improve the UX/latency/etc. Sometimes it just makes the codebase easier to maintain, the point of what the OP is saying is that this work is hard to justify. If you spend an entire year making a codebase "easier to maintain" but don't deliver anything tangible that is all defensive work and not offensive work and there's no reclassification which can solve that.
- hinkley 7y agoIt’s dirty accounting tricks for a greater good. I kinda resent the fact that we have to resort to this.
- brlewis 7y agoA huge performance impact is a shiny thing that is easy to show outsiders and get them excited about. There is no dirty accounting here.
- jolfdb 7y agoThe dirty accounting is that doing work to prevent bugs gets no credit, but letting bugs happen and then fixing them gets credit.
- wolf550e 7y agoEven worse, introducing shiny features in half-baked bug ridden way gets credit, the person who gets to fix all the bugs and possibly reimplement the whole thing correctly gets no credit.
- onion2k 7y agoIf you're optimizing code while you're refactoring then you're not really refactoring. Refactoring shouldn't change what's happening.
- hvidgaard 7y agoIf you want the exact same behavior, then you cannot refactor. Of course refactoring can and will affect performance. Refactoring should maintain identical functionality not counting performance unless it's a requirement.
- hvis 7y agoRefactoring means retaining the exact behavior, by definition. Of course, many refactorings will make it easier to apply performance optimizations later.
- hvidgaard 7y agoThat makes no sense. If you must retain exact behavior, you must compile to the same assembly instructions. Generally refactoring worries only about the functionality that you test in unit tests and integration tests, not counting performance.