We have to get better at selecting the right tools for the job. More often than not we try to use the same tools and techniques to solve different problems and the result is often not ideal. I've seen horrible webapps that didn't even have any business logic written in Java and using the whole EJB2.x stack for no particular reason. Or just because "the CIO wants to use JEE". Btw, the CIO has never written a single line of code nor did he need to open JSP pages containing hundreds of lines of pure horror.
OK, so who cares? Don't we have bigger problems to solve that technology itself? Of course, but if we allow ourselves to choose better, more focused technologies for the task at hand we'll have more time and we'll be better equipped to solve the really hard problems which often have absolutely nothing to do with technology but, rather, with understanding what the users want. Andy calls this "death by generalization"....got a hammer?
- Seek specific solutions
- Avoid general solutions
- Try to remove the accidental complexity
How hard can it be?
"I've never met a human being who would want to read 17,000 pages of documentation, and if there was, I'd kill him to get him out of the gene pool" (Joseph Costello)