I saw an article on the New York Times website this week about how internecine (gotta love that word) fighting at Microsoft was stifling innovation. The article can be found here.
Whether you love or you hate Microsoft, it would seem obvious that big companies can have a hard-time innovating since sometimes what you are innovating in one part of the company puts another part of the company in peril. Still, I’ve worked at largish companies (Sybase and Sun Microsystems) which managed to innovate in some key projects.
Sun Microsystems was an especially interesting place to observe how you could manage a wide variety of projects. I worked for a short time in the Software Division in the group responsible for the Solaris Java VM — the VM itself, not the libraries — back in the mid-90’s. One of the other engineers in the division told me that because software was a loss-leader for Sun, costing more to produce than they could ever re-coup in direct revenue, the executives adopted a strategy of “slow-boiling” new projects.
If a potential project showed promise, it was given just enough resources to keep it moving forwards, like having a stew simmering. Then, if there was a sudden need for the results of the project (“we need this new network credential library right now“), resources would be pulled and put onto the critical project to bring it to a rapid, roiling, effervescent boil.
Argue what you will about a strategy like this and the project management headaches this invites, I saw time and again how engineers would strive to innovate given their limited resource pool, knowing that if they were on the right track, they would be able to finish their ideas. This takes nimble management and leather-skinned developers to succeed.