Microsoft is a company that got its start writing software for personal computers. The personal computer revolution was a wonderous thing and no one provided a better platform for personal computer software then Microsoft did. But this is almost 2004, and not 1988, and Microsoft is still making software for personal computers, but people are using personal computers in new ways. People are doing things with their personal computers that used to be the exclusive domain of servers, an entirely different class of computers that used to run an entirely different kind of software. People are building infrastructure with their personal computers, and in that light Microsoft isn't looking as good as they used to. You see, there are really two classes of people who use personal computers. Producers, and consumers; Developers, and Users. Microsoft has built its entire software platform to suit these two classes of users, and this makes sense as these are the people who have traditionally purchased Microsoft products. However, as Microsoft makes the move into the world of infrastructure; into the world of servers; they are entering an area where there are three classes of people who use their products: Developers, Users, and Systems Administrators. Infrastructures are made of systems of systems that interact in very complex ways, and there is an entire class of professionals who make their living making infrastructures work. Microsoft's platform doesn't anticipate the existence of this class of professionals, and doesn't provide them with tools that are well suited to their jobs, because Microsoft's platform is designed for personal computers, and personal computers do not have Systems Administrators. For the past decade or so Microsoft has been pushing their platform, designed for Developers and Users, into a world populated by Systems Administrators. They have tried to jam their personal computer software into the world of infrastructure the way you hammer a square peg into a round hole. They've met with constant resistance over the years and yet they have kept hammering away. Every once in a while they've changed something due to the complaints of Systems Administrators. For example, I no longer have to reboot when I change my IP address. But for the most part, they've attempted to route around the entire profession of Systems Administrators through every business and marketing trick in the book, including leveraging proprietary technology. (Of course TCO for a NBT file server IS cheaper with XP then with UNIX; Microsoft controls the protocol!) The fact is that this strategy is doomed to failure. The fact is that Microsoft doesn't get it. Infrastructure must be reliable. Software systems are complex. Software has bugs, and will always have bugs. Systems Administrators will always be needed to reliably operate infrastructure which interacts in complex ways in spite of software bugs. There is absolutely no getting around this. Unfortunately, Microsoft software is not well suited to this task, because Microsoft does not understand Systems Administrators. Microsoft does not understand that I can never, ever reboot my computer, because thousands of people depend on my computer, and if it goes down they cannot do their jobs. Microsoft does not understand that when my boss calls me at 3 AM while I'm on vacation because the infrastructure is down I do not want to try to troubleshoot the problem over dial up with a graphical user interface. Microsoft does not understand that when software fails, a dump of the contents of the registers is about as useful to me as an essay in Chinese. I do not have access to the source code, and even if I did, I don't have time to debug it. I do not debug software. I make software work in spite of the bugs. In order to do that I need an entirely different kind of information when software fails. And by-the-way, "Error Number 129289347" isn't that kind of information either. Microsoft does not understand that software should give me as much information as possible about what it is doing, and I need powerful tools to sort through that information in search of the source of a problem. Microsoft does not understand that sometimes I need to increase the size of an already existing directory structure, instead of always adding new disk space in as a new filesystem. Microsoft does not understand that sometimes software fails to uninstall properly, and storing all of the dynamic link libraries associated with every piece of software I have ever installed on my computer in the same directory makes it impossible to keep things cleaned up over time. Microsoft does not understand that sometimes I need to easily locate all of the configuration data associated with a program, and all of the changes made to my system by that program, because programs often do the wrong thing, and I need to correct those problems by hand. Microsoft does not understand that D9103C5E-CCB2-4fba-B7BF-359BF49FB1E7 is not human readable, and should not be used as an index into information that a human might need to examine in order to repair a problem. Microsoft does not understand that when I ask for a list of all of the processes running on a computer, I need a list of ALL of the processes running on that computer, those processes need to have informative names, and I need to be able to quickly obtain information about processes I don't recognize. Microsoft does not understand that processes spawn children, and I need to be able to map the relationships between processes and their children, and I need to be able to kill process groups. Microsoft does not understand that sometimes processes need to run with escalated permissions. Microsoft does not understand that when I kill a process with the task manager I do not want to wait ten minutes for the computer to try to do it nicely. If there wasn't something seriously wrong I wouldn't be using the task manager. Microsoft does not understand that I need to be able to easily see all of the services that my computer has exposed to the network, as well as everything that is going on with the network. Microsoft does not understand that I need to do all of this programatically, and not just from a menu. Microsoft does not understand that I am a professional, and the software should never, ever second guess my better judgment. The Software Developers have not anticipated the circumstances I am facing. Microsoft does not understand that I've only scratched the surface. Microsoft does not understand Systems Administrators. -- Decius |