The problem with this is that the right granularity of “one thing” varies by system (and even within a single system), and is generally not known ahead of time.https://twitter.com/pauldjohnston/status/985854209076727808 …
-
Show this thread
-
The same is true for objects or functions within a system, actually, which is why the single responsibility principle isn’t super useful day-to-day. The hard part is, and always has been, defining “single” appropriately for the situation.
6 replies 2 retweets 34 likesShow this thread -
In both architecture and software design, the right granularity depends on what you’re building, how well-understood the specific problem is, who’s working on it, and what the organization around them is like. Among other things.
2 replies 0 retweets 15 likesShow this thread -
That means that there is no such thing as objectively good software design (or objectively good architecture). The quality of either is a joint function of the code, the problem, the organization, and (crucially) who’s working on it.
2 replies 9 retweets 47 likesShow this thread -
A great codebase for a team of 15 senior developers looks VERY different from a great codebase for 5 senior devs plus 10 junior devs. What good is your fantastically abstracted design if most of your devs don’t have enough experience to really work with it?
5 replies 18 retweets 82 likesShow this thread -
Replying to @sarahmei
Would love to discuss this at the dinner tonight. I think it’s a grave misconception that senior developers should seek or benefit from Genius Design That Only Geniuses Understand. Everyone benefits from clear code.
3 replies 0 retweets 23 likes -
Replying to @dhh
Yeah, I’d love to. I think the theory is that a lot of abstraction makes it faster to make changes after you load the whole system into your head. IMO the math doesn’t work out most of the time though, even for senior-heavy teams.
2 replies 0 retweets 4 likes
In part it depends on how stable the thing under the abstraction is. There's a lot to load into your head to use Rails, but it's abstracting and adding signal:noise ("clarity") to very stable concepts, so it pays off over time. But if you reboot every year or two, it doesn't.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.