One of the proverbial back stories of IT operations has always been the battle between the “suits” and the “techies.” From the techie point of view, the hapless but disturbingly powerful suits are the business guys who put more thought into picking out hundred-dollar silk ties than they put into million-dollar IT decisions. Worse, the suits gravitate towards outsourcing and service firms that implement big-dollar solutions. Many techies start on the other end of the spectrum with free open source solutions that reflect a substantial DIY ethic. Will the twain ever meet?
While they might seem like opposite ends of a continuum, I’m finding the “open source or outsource” question at the centre of my IT decision-making process these days. My team is still implementing scalable and flexible systems that I’m confident will serve the needs of our business for the foreseeable future, but I’m buying very little software these days. Custom-developed software built on reliable open source frameworks wins the day when the benefits of slick commercial software can’t outweigh the licensing costs.
On the other hand, when done for the right reasons, outsourcing can save money and reduce unnecessary distractions for in-house IT teams. I have never been a fan of outsourcing as a dumping ground for IT problems, but outsourcing is becoming increasingly attractive in two particular scenarios. The first instance deals with outsourcing relatively generic functions that rely on widely used commercial software packages that require specific expertise and near-perfect uptime — think hosted Microsoft Exchange or Lotus Notes. In these scenarios, it’s difficult to run these systems noticeably better than an outsourcer.
The second, more interesting emerging scenario is the Web-based hosted service with a well-documented Web services API, an offering pioneered by Salesforce.com with their sforce platform. In this type of outsourcing arrangement, you get all the benefits of a core service without having to own software or hardware, but you retain the option to extend the system to address specific needs of your business. I think of this phenomenon as “open outsourcing” — a service that sits outside of my datacenter with secure access to a rich API. Platforms such as sforce dispel the notion that outsourcing is about cramming a variety of square-pegged businesses into a single hosted round hole.
In areas where outsourcing doesn’t make sense and IT needs to build custom functionality unavailable in commercial products, open source is an increasingly viable choice. Just this week I needed to quickly load a 10,000-record database for some basic SQL-based analysis, so I created a MySQL database on my OS X machine (Linux would have worked equally well) using phpMyAdmin, then loaded the data. Minutes later, I was using the query features of phpMyAdmin to do interactive business analysis of the data. The benefits don’t end with small projects. With scalable open source J2EE application servers such as JBoss, the old days of development teams prototyping with open source before migrating to a “real” production app server are over for many major projects.
When I’m evaluating any IT solution, three concerns are paramount: openness, control, and extensibility. As the overall IT environment advances in new and exciting directions, open source and outsourcing are becoming my one-two punch for effective IT.