The age of uber-tooling in software development
When developing software in the old days, we used to grab a bunch of separate tools with names like compiler, linker, editor, profiler, debugger and hook them together with our fingers. That is, we installed them as individual applications and made them work together the way we wanted by organizing a working setup on the hard disks of our computer systems.
Over the years, this model seems to have undergone gradual but constant erosion in favor of a more monolithic approach to tooling in which large applications such as Microsoft Visual Studio[1] and Eclipse[2] taking center stage.
There are a number of interesting side-effects to this trend. First, it is resulting in a significant change in the market for developer tools. It is still possible to "go it alone" and develop stand-alone developer tools but increasingly, developer tools are being positioned as "add ons" or "plug-ins" to uber-tools such as Visual Studio and Eclipse.
Second, these tools are BIG. Big in size, big in scope, big in terms of feature sets, big in terms of the commitment required from developers to learn to wield them well. I do not think it is stretching credulity too much to say that the IDE used by an individual developer significantly impacts their world-view, their understanding of the software development process and their mental model for how complex stuff hangs together. Take a C++ developer out of one of these uber-tools and drop them into another uber-tool and you may well have to wait quite some time for their head to bob back up above the water line in terms of productivity.
Third, in order to be a good uber-tool you need to have an extensible set of graphical components so that plug-in developers can re-use existing code for creating outline views, color-coded editors, etc. Looking at it another way, a good uber-tool must - by definition - be a good custom application development framework. This creates an interesting dynamic in which an uber-tool aimed initially /primarily at software developers can find a home as a generic container for end user applications. I know of no better example of this phenomenon than the Eclipse Rich Client Profile[3]. The phrase "developed in Eclipse" has a potential interpretation quite unlike, say, "developed in Delphi"[4].
Fourth, the whooshing noise in the background is the sound of a race in full flow. A race to get developers on board using uber-tool X, Y or Z before the next guy gets there first. Why the rush? Well, generally speaking your average developer will use one of these uber-tools as the center of his or her universe for quite some time. The stakes are therefore quite high.
Sign up for ITworld's Daily newsletter
Follow ITworld on Twitter @IT_world
jfruh
Apple syncing patent can't come soon enough
pasmith
New Twitter features borrow from 3rd party clients
Esther Schindler
Open Source Changes the Software Acquisition Process
mikelgan
How to set up continuous podcast play on the new iTunes
David Strom
Five important Windows 7 mobility features
sjvn
Guard your Wi-Fi for your own sake
Sandra Henry-Stocker
Grepping on Whole Words
Sidekick: The Good News & the Bad News
Either way you look at it Microsoft Data Center management did not follow standards or best practices in this failure. In which case it makes me wonder more about the outsourcing of corporate data much less personal data.
- mburton325
Join the conversation here
Quick, practical advice for IT pros. Made fresh daily.
Want to cash in on your IT savvy? Send your tip to tips@itworld.com. If we post it, we'll send you a $25 Amazon e-gift card.












