Calendar
<<  September 2010  >>
MoTuWeThFrSaSu
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

I was rummaging around one of my bookcases the other day when I came across Fred Brooks’ software engineering classic, “The Mythical Man-Month.” The book, first published in 1975, is based on Brooks’ experience managing the development of IBM’s OS/360. It succinctly dissects the various factors that can make or break a large software development project. These include:

-        Project planning,

-        Assembling the right team,

-        Conceptual or design integrity,

-        Formal specifications,

-        Team communications,

-        Version control, and

-        Need for common toolsets.

The title theme should be familiar to even those who are way too young to remember a computing era dominated by machines like the IBM System/360. The idea of the “mythical man-month” suggests that you can’t necessarily reduce the time it takes you to complete something by adding resources.

In fact, Brooks maintains that adding too many resources can dramatically elongate delivery times. While some of the examples Brooks cites are certainly dated (e.g. “state of the art” is a 2MB machine with 400KB devoted to its operating system), his central tenets are as valid today as when the book was first published.

Seeing the book invoked two reactions in me. The first was a reminder of just how old I am. The second was to wonder if we are really that much smarter today about how we plan and manage our supply chain system selection and implementation projects than we were back in the card punch era.

Part of me says “yes.” We have the tools, methodologies and discipline to avoid Brooks’ tar pits. We have learned from the mistakes of past generations. But part of me can’t help but marvel at the repetitiveness of some of our mistakes. They must be classics, because people are so fond of them.

I attended a presentation earlier this year on the reasons that software conversion projects fail. The presentation cited an interesting statistic: Approximately 38% of implementation projects led by a certified Project Management Professional (PMP) fail.

One can certainly challenge this number, as it is highly dependent on the definition of failure. But many supply chain systems implementation projects do sub-perform despite employing structured methodologies and project management best practices.

There are many potential causes for failure that are beyond the control of any project management team. Flawed business cases, selection processes and vested internal interests can stack the deck against success. Some projects certainly fall into the tar pits due to project management practices. But others fail despite employing best project management practices.

I believe that our project management tools and approaches are better today. However, implementing a supply chain execution system still remains a very complex proposition for many operations.

So are we really that much smarter today? Do we still pursue the mythical man-month?

-- Tom

The recent roll-out of Microsoft Windows 7, Apple OS-X "Snow Leopard," and three major Linux releases (Fedora, Ubuntu, and openSUSE) within two months of each other gave me an opportunity to step back and assess the state of personal-computer technology.

We have all become so accustomed to rapid changes in technology that I have not seen much written about a quite remarkable development; namely, that 64-bit operating systems have become a normal consumer-level product.

Each of the operating systems released in the past few months have a 64-bit version that can be installed as an option or, in the case of new hardware, comes as the default installation.

In addition, with the introduction of Windows 7 Professional and its "Windows XP Mode," the formerly business-class technology of virtualization has gone mainstream for the consumer.

I’ll use this week’s blog entry to explore the implications of these developments for the near future of the PC market.

For some perspective, I’ll take you back to the first time I encountered a 64-bit machine. The year was 1986 and I was working on computational aerodynamics at Grumman Aerospace.

We were given classroom training on how to program for the Cray supercomputer, which used a custom version of Unix as its operating system. The machine had a 2GB disk pack (a mind-boggling amount of storage back then) which was the size of two four-drawer vertical file cabinets stacked next to each other.

Now, of course, you can hang 2GB of storage off your keychain in a USB stick. But until quite recently, 64-bit machines were still the province of scientific research labs and other specialized applications, just as it was in the heyday of the Cray supercomputer.

The term "64-bit" refers to the size of the data registers and communications bus within the computer hardware. The advantage of 64-bit computing is in moving and processing large amounts of data efficiently within the computer. For most users this boils down to the simple concept of "much more memory."

Depending on the OS used, most older 32-bit machines can handle no more than 2GB or 3GB of RAM. On 64-bit machines the practical limit is your ability to pay for more memory – up to 64GB of memory can be easily supported by the current CPU and OS versions, with the theoretical limit set at 16 exabytes (two orders of magnitude more than terabytes).

For a sense of the scale of those numbers, consider that some studies cited on Wikipedia show that the entire Internet moves five to eight exabytes of information per month. So we are talking quite literally about consumer desktop PC operating systems with more theoretical RAM capacity than the total data-usage of the planet.

Clearly no home-user currently "needs" more than 3GB of RAM for even the most intensive video-editing or HD Blu-ray video processing.

So the natural question is, how will this extra hardware capacity be used? Because we know that if 64GB of RAM becomes inexpensive in the near future, someone will figure out a way to use it.

As it happens, the commercial server market has been using 64-bit operating systems and large amounts of RAM for several years. The servers deployed in these configurations support traditional "supercomputer" uses such as scientific computing and Hollywood special-effects video rendering, but the dominant application over the past several years has been virtual machines.

In this application, one physical server runs software that makes it appear to be several independent "virtual" servers (up to ten or more virtual machines on one physical machine). Each virtual server has its own OS and set of applications, which can be different from each other virtual server. The technology is used to reduce the hardware, energy, and administrative costs within an IT datacenter.

As mentioned above, Windows 7 Pro brings this technology to the home user who wants to run older Windows XP applications on a new Windows 7 computer. For example, my son plays a popular online game that has never worked well with Vista. Using Windows 7 Pro, I can set up a virtual Windows XP session for him to use.

The "Windows XP Mode" is actually a complete virtual machine running an independent copy of Windows XP. This development brings technology that was once the province of IT specialists and Linux hobbyists into the mainstream for the benefit, in this example, of peace between a 12-year-old and his XP-hating dad.

Even under that scenario, current new-model PCs have more processing power and RAM than even the most demanding consumer needs.

The commercial experience with virtualization points toward the possible end-user applications of all this excess hardware capacity. The "roadmap" for players such as Microsoft and Google is to use the new capabilities of 64-bit PCs to deliver robust, secure online applications within virtual machines hosted by a user’s own PC.

The first company to make this explicit was Google. In their roadmap for their Chrome OS, they describe a platform that will allow them to push services (such as Google Office) as downloads over the web in a much more robust and high-performance way than is currently possible with current web-browser technology. In fact, the plan is for the Chrome "browser" to be a set of virtual-machine environments that coincidentally look like a web page.

Not to be outdone, Microsoft has announced a "cloud computing" initiative named Azure. Currently aimed at businesses, you can be sure that Windows 7 factors heavily into the as-yet-unannounced desktop roadmap for Azure.

So in looking at the trends in computing, I can predict that the near future for desktop PCs will include end-user services that build on virtualization as a foundation, whether this is apparent to the user or not.

In a future blog posting, I’ll explore ways this might play out in the supply chain technology computing space.

Until then, tell us what benefits you have found by using a 64-bit operating system.

Paul Faber