4 ms·
The problem is most people get abstractions wrong. Abstracting too much can lead to Architecture Astronauts. (https://www.joelonsoftware.com/2001/04/21/dont-let
by cyberpanther 9y ago
The problem is most people get abstractions wrong. Abstracting too much can lead to Architecture Astronauts. (https://www.joelonsoftware.com/2001/04/21/dont-let-architecture-astronauts-scare-you/ https://www.joelonsoftware.com/2001/04/21/dont-let-architect...) And not abstracting enough can be a mess in your code and make a product dull.
By focusing too much on abstraction, you’ll get a really lopsided team. And remember it only took one really abstract thinking Willy Wonka and a bunch of oompa loompas to make really great candy. Too many Willy Wonkas and nothing would ever get done.
Lastly, most people only get abstractions right with experience. So there is still some value in experience.
- dasmoth 9y agoremember it only took one really abstract thinking Willy Wonka and a bunch of oompa loompas to make really great candy An interesting difference between software and mass-produced physical goods is that a single Willy Wonka can do a fair without needing oompa loompas. It’s not an especially fashionable way of doing things right now, but don’t dismiss the possibility.
- cyberpanther 9y agoyeah but the oompa loompas keep you entertained with song and dance too.
- ben_jones 9y agoI often get abstractions wrong the first time through. Usually the second or third attempt (often days later) I'll come across something concrete that can be put into production. So while I agree abstraction in and of itself is not a silver bullet, the ability to iterate on abstraction(s) is immensely valuable. Also the plain desire to seek a better abstraction despite a "working solution" is a powerful trait when kept in check. The desire to continually do better that is.
- crdoconnor 9y agoYeah, the best abstractions I've built have been 3rd or 4th iterations after persistently refactoring to account for unexpected impedance mismatches. I'm skeptical of the notion that great code is designed up-front by "clever architects". I think the best code is usually the result of dirty hackjobs, persistently refactored into clean code.
- heisenbit 9y agoYeah, in most cases we don't need new abstractions but the willingness to stick to existing ones. - Ability to abstract. - Ability to communicate their abstraction. - Ability to reuse abstractions. - Ability to accept and work with colleagues abstractions.