| ▲ | Scubabear68 3 hours ago | ||||||||||||||||||||||||||||||||||
What Beck misses over and over again is there are many domains where there are “table stakes” that simply have to be done. I think a huge amount of technical debt goes straight to YAGNI - devs pretending they are not going to need something that, yeah, they need. YAGNI and related tenets were all excuses for “we are consultants in a field we don’t understand”. | |||||||||||||||||||||||||||||||||||
| ▲ | fmbb 3 hours ago | parent | next [-] | ||||||||||||||||||||||||||||||||||
All tech debt I have ever seen in my 15 years of professional software development has been someone building too many abstractions or generalizations trying to future proof stuff. | |||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||
| ▲ | cauch 3 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||
I agree. Nothing is all black or white of course, but I have personally observed situations where software engineers started with YAGNI and then said "that will require too much restructuring, we went into another direction, so, no, we cannot do it anymore". The worst part is that software engineers are not even in a good position to understand when YAGNI fails: when they don't plan for a useful feature, the solution is often for the users to just shrug it off and use a suboptimal solution rather than fighting and dying on a hill that they cannot win (at the end, the software developers can just say "nope, it's technically impossible" even if it was possible, they have a huge advantage). I also saw users just assuming there were good reasons why the feature did not exist ("well, I guess if they did not did it, it's technically impossible") and just don't even say it. And as the developers are not the users, they never notice anything. 100% with the way of illustrating: YAGNI is "we are consultants in a field we don't understand": sometimes, users are asking for too much, sometimes, they are asking for something reasoning, and the developers have no experience to distinguish between the two. | |||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||
| ▲ | gofreddygo 3 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||
> we are consultants This is the key insight. Design patterns were developed by a set of consultants. Promoted by other consultants. Consultants have perverse incentives, like bankers. Realizing this made me critical of the design pattern kool aid. I've come to terms that these are going to be around longer than I'm going to be employed writing code. i keep the criticism to myself and avoid them when i dont see fit. Works ok. As Hoare said: | |||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||
| ▲ | dang 3 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||
"Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something." | |||||||||||||||||||||||||||||||||||
| ▲ | bazoom42 3 hours ago | parent | prev [-] | ||||||||||||||||||||||||||||||||||
YAGNI is not about things you know you need, because then you wouldn’t write any code ever. | |||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||