Cory House transmuted my Lumper/Splitter post into a poll on Twitter. Here are the totally scientific (not) results:
Hey, surprise surprise there aren’t any lumpers out there. Then who’s writing all this lumpy code?
Someone else complained that “lumper/splitter” is pejorative. I’m glad that message came through clearly. It’s supposed to be a little goofy and a little insulting to both sides. This is not science. This is praxis or, as The Mandalorian so helpfully puts it, this is the way. Well, a way anyway.
The other followup point I wanted to make is that everybody should be a lumper and a splitter. “Make it run/make it right” as my Pappy taught me is deep wisdom. Clean code that works is too much to ask all at once (if it’s not too much to ask you then what are you doing reading this?). Solve “that works” and then solve “clean code”. Lump then split.
My TCR video is a good example. In the first half hour I make a bunch of test cases work. The code’s okay but nothing special. The second half hour is all splitting. Fortunately the abstractions I introduce are immediately useful for creating new abstractions and the result is some pretty code solving what seems to be a gnarly problem.
It is not so much about splitting as it is about principles like SRP. Somehow SRP will guarantee the small size of design elements and a good design, but splitting without clear criteria does not necessarily imply a good design. Big size elements are "smells", and just splitting without clear criteria is not the final answer for such a smell.
Splitters are the writers, lumpers are the readers.
Look here - this article does not make sense if you haven’t read the original one, so you need a bigger view, a real story to get it right 👉 lumpers
However writing small focused posts is a right way to do it as well 👉 splitters