Bigger fish to fry
A few years ago I became the Development Manager for a small InfiniBand software startup. I had been a Team Lead for some time, but this was the first time that I was "the Boss" rather then being the "First among peers". It was a hard transition for me, and I quickly overwhelmed myself and pissed-off my developers by trying to micro-manage them. There is some question as to whether or not developers can be managed at all, but I assure you that we cannot be successfully micro-managed.
I'm not sure if I ever really got the hang of the role (the company died when InfiniBand stalled), but I did learn a lot about what works and what doesn't. Much of the credit goes to my wife Teri (the teacher) for giving me the following advice:
"Developers are problem solvers. Don't tell them what to do, tell them what the problems are."
This amazingly simple advice saved me. We are problem solvers. We aren't drones. Give us a problem to solve, and we'll be delighted to come up with a hundred ways of fixing things, and some of those solutions might even be practical.
The downside is that not all of us are particularly adept at identifying which problem we should work on. For me, the most important problem to solve is the one that I am most interested in solving a the moment. Intellectual challenge and novelty always get prioritized higher then mundane things like those nasty little exceptions that get logged in the middle of the night.
I think that the Java community and open-source developers in general are having problems in identifying which problems to work on. There seems to be a huge duplication of effort, and while folks may not be reinventing the wheel, there do seem to be an awful lot of enhancements to the wheel underway (Java.net alone is hosting more then 1000 projects). A lot of great work is being done. A lot of great ideas are being pursued. But I can't help feeling like I am running as fast as I can just to stay where I am.
I could list examples, but folks are passionate about their causes and being negative doesn't really help much. Why ruin a good beer by crying in it? The Java/Open Source ecosystem is a heck of a lot better place to work and play then the "rival" ecosystem that I escaped from, and I sure don't want to go back.
I am just a blogger. I haven't written any great books, and I haven't contributed any great software. I'm just a guy with opinions, and one of my opinions is that we need some new visions to guide us. As my father might have said: "We need bigger fish to fry".
Give us the right problems to solve, and we'll do marvelous things. Leave us to decide what to do on our own and we'll probably be arguing about the EJB 99.99 spec in the year 2027 (by which time Java developers will have eleven hundred and seven MVC frameworks to choose from). If we tackle the right problems we'll be forced to make infrastructure decisions and get on with it.
All this speculation begs the question: "Who should tell us what the important problems are that we should be working on?" I think I'll follow my wife's advice and pose that question as a problem for my readers to solve.
(Cross posted at The Thoughtful Programmer)