I want to talk about an idea that I've started seeing everywhere during my work. To introduce it, here are a number of cases where excessive pressure in the software development process leads to certain perhaps undesirable designs.
- You have a slightly slow algorithm, but you have enough processing power to handle it so you leave it as is (runtime fills the computing power it’s given)
- The same is true for memory, see any meme about chrome ram usage
- You have a big class with far too many responsibilities but you don't break it up (usually this leads to spaghettification of code)
- You see a class that shouldn't really exist, it's too simple and only used in one or two places, but you might need it later so you leave it there (the topic of this post)
The last one here is what I want to talk about because I think it goes most under the radar. The class with few methods (for now)