@mudasobwa inate complexity is unavoidable but good abstractions and clear ("simple") interfaces are worth fighting for IMO. I'm constantly fighting with people who want to split everything up into dozens of 5-line "clean" functions that are impossible to keep track of. A Philosophy of Software Design is a good book on this topic.