SOA, Agile, Lean, etc. are The Answer, but What was The Question Again?

There have been a lot of good posts about SOA lately. Gestalt’s CTO, Jim Stogdill, points to both an article by Cynthia Rettig and Nicholas Carr’s follow up on Rettig’s article. The take away from these articles and posts seems to be that just as ERP software implementations have been plagued with mind numbing complexity, SOA is likely only adding another layer of complexity (or more!) on top of a fragile foundation.

Nick Malick, a Microsoft Enterprise Architect, also has some interesting thoughts on how we in the IT biz sell SOA to our customers. Nick has this to say regarding selling SOA to customers:

We do talk about SOA, just not with the business. It’s not that the business doesn’t understand SOA, or wouldn’t if we told them… it’s just that they are not incented to care. If I walk into a business meeting with the head of the Volume Licensing organization, I have to realize that his operational team books a little over $1B in revenue to Microsoft’s bottom line every month. Let’s say I take an hour of his time. During that hour, his organization has closed on $6M in revenue. If I ask for $200,000 for SOA, when SOA is basically good design done well, using modern tools, many of them free… I’ve wasted his time.

Well said Nick! While it’s easy to pile on SOA, I think all things “agile” and “lean” in the IT world need to be put under the same scrutiny. When a buzzword becomes the focus of the conversation with customers, be weary. Just as we in the IT biz often throw around SOA as the solution to just about any problem we come across, I’m finding that the terms “agile” and “lean” are treated in much the same way. I cringe when I hear about organizations that believe they’ve turned the titanic 180 degrees almost on a dime since they adopted agile/lean processes and best practices. It’s as if reality goes out the window and the buzzwords act as some sort of mind altering drug that makes things magically better.

How do we prevent the hysteria that inevitably arrives around new technologies and software development processes? I can think of some but they’re never as easy as saying a buzzword or two. For instance, we need to focus on the problems that we’re trying to solve, not the other way around. Who knows, maybe the problems require much more than SOA, agile, lean, etc. can solve. I think once we focus on the problem first and solutions second we then need to be more specific when we talk about these buzzword solutions. SOA, agile, lean, etc. likely mean one thing to me and quite another to you. By being more specific in what we’re really talking about we combat the one word answers that only build the buzz.

VirtualBox 1.4 is great (plus a fix for Vista guest networking)

I was sceptical that VirtualBox, an open source desktop virtualization software package, could be a viable alternative to VMWare and Parallels. I’m happy to report that my early experiences with it have been fantastic. The biggest issue I had was with my Microsoft Vista Home Premium guest OS (i.e. an OS running inside of VirtualBox) not having a driver out-of-the-box for the network adapter VirtualBox and most of the other virtualization solutions use. Oh the irony. Windows has the driver problems, not Linux this time around. Ha!

I documented my issue and solution to the network driver problem on the VirtualBox issue tracker site. In order to get the word out just a bit more through the search engines, I’m posting my problem and solution here.

My setup:

  • Fresh Kubuntu 7.04 install on a Gateway MT6840 notebook (Centrino Duo platform)
  • VirtualBox 1.4 install from the VirtualBox debian repository
  • VirtualBox “Guest Additions” installed
  • Network connection through my wireless card only on eth1
  • Guest OS on VirtualBox is Vista Home Premium (I know, I know…licensing issues…sigh)

Everything went fine until I tried to get networking on Vista working. I learned quickly that there are issues with Vista not supporting (out-of-the-box) the network card VirtualBox emulates (AMD PCnet Ethernet card.) The answer to this is to install the “Guest Additions”, go through the Windows “New Hardware Wizard” and point it to the CD drive, which should be an ISO image of drivers from the “Guest Addition” installer. However, when I followed this process Vista would go to install the driver and then freeze about 10 seconds into the install. The only thing I could do then was do a hard reset from the VirtualBox “File” menu. After trying numerous potential workarounds, I stumbled upon the solution:

  1. Go to VirtualBox and select the “Network” link under the “Details” tab for your Vista VM image
  2. In the Network Details tab select the appropriate network adapter (eth1 in my case) and then make sure you have these settings:
    1. Check “Enable Network Adapter”
    2. Select “Not attached” for the “Attached to” menu
    3. Check OFF the “Connected” checkbox
    4. Click OK to save the changes
  3. Start up Vista
  4. After you login, go to the VirtualBox “Devices” menu and select “Mount CD/DVD-ROM”->”CD/DVD-ROM Image”
  5. Select “VBoxAdditions.iso” and click “Select”
  6. From the “Start menu” right-click on “Computer” and select “Manage”
  7. Click on “Device Manager” to see all the devices
  8. Right click on your computer’s name in the “Device Manager” and select “Scan for hardware changes”
  9. You should be prompted to install a driver for your network controller
  10. When prompted, tell Windows to look for the driver on your CD driver under the “AMD_PCnet” directory on the drive
  11. Vista should successfully install the driver
  12. Shutdown Vista from the “Start Menu”
  13. Perform steps 1 & 2 (different sub-steps for 2 are below)
    1. Check “Enable Ethernet Adapter”
    2. Select “NAT” for the “Attached to” menu
    3. Check ON the “Connected” checkbox
    4. Click OK to save the changes
  14. Start up Vista and you should now have network connectivity

If you’ve had this problem with Vista as a guest OS using VirtualBox and these steps helped or didn’t help, please feel free to leave a comment.