Open Source

Skill sets and company size

I am seeing a growing gap between the technology used by mega

corporations and by small/medium/large companies. The latest evidence of this

is Port 80's recent survey showing Microsoft IIS

in complete domination of the Fortune 1000's public Web sites. My initial

reaction was to be quite surprised; after all, it is a well known fact that

Apache runs the majority of Web sites out there. I was suspicious because

Port80 is a Microsoft partner, and surveys and studies funded by Microsoft

require rigorous inspection. The first thing I did was to check Port80's

methodology. Their measurement technique was simple, direct, and effective:

they simply pulled a Web site by the main site URL and checked the HTTP

headers. While it is always possible that some servers have masked or modified

their headers, it is doubtful that it would not account for the disparity between

IIS and Apache.

Of course, a large part of Apache's apparent market domination is the

number of free/cheap Web hosts that have thousands of domains on one server,

none of which get more than a few visitors a month, and to reduce costs they

run Apache on a free *Nix. But IIS having over 50% market share in the F1000

for over three years now shows the differences between the corporate IT

mentality and the smaller company's IT approach.

It is always interesting to me to see this difference when looking at

job ads; the huge companies (think insurance companies, banks, pharmaceutical

companies, etc.) look for skills like .Net, IIS, Windows 2003 Server, Oracle,

DB2, Solaris (not until recently was Solaris Open Source), and other

proprietary, closed source pieces of software that you cannot learn without

paying money and cannot use without paying money. Smaller companies seem to ask

for Linux, Apache, PHP, and other FOSS solutions.

At the end of the day, what this means is that there is a gulf between

the skills you need in the big company and the skills you need for the smaller

company. Gone are the days when HTML and CGI/Perl could get you a Web

development job at any company out there, or C++ could get you in the door as

an application developer. Now, your skill set needs to be tailored to what

environment you want to work in.

Sure, there are plenty of larger companies out there running *Nix or

the LAMP stack, or FOSS in general. Similarly, there are plenty of small

companies using .Net, IIS, Windows server, Oracle, and other proprietary

solutions. But by and large, when I encounter a large company using a FOSS

solution, it is frequently a company that was a startup only a few years ago.

The "old line" companies tend to be closed source, VAR supplied, consultant

installed, maintenance contract paying shops. It is baked into their culture,

and it is hard to change it.

As a developer for some time now, I have watched my skill set change

over time as I move from job to job working with different customers. When I was

working with startups and dot-coms and other companies that were looking to

save money or had a lot of employees that loved technology for technology's

sake, I was using Perl, the Apache, PHP, MySQL, and other FOSS solutions. At my

current job (we perform contract coding for the pharmaceutical industry), it

nearly 100% non-FOSS software. Even our customers using *Nix are using Oracle

on Solaris or similar combinations of "big iron" with "big iron OS's" and "big

iron databases" and other pricey solutions. I spend my days with Microsoft

technologies because they all (except for one, who we do not write any

applications for) use IIS.

So as a developer, you really need to tie your choice of skill sets to

your choice in work environments. The next time I am on a job search, I am sure

that all of my recent experience with .Net, Oracle, SQL Server, Windows Server

2003, and other "big bucks" systems will win me attention from the big boys. At

the same time, I make sure that I have a *Nix (FreeBSD, in this case, I like

the BAMP stack) server in the mix, and work hard with it, so that my skills

with FOSS solutions are kept tip-top. I am lucky; as the sole IT person, I get

to call the shots. Not many HR people are going to care if you read a lot of

MSDN Magazine if you have never touched Visual Studio, or that you have an old

laptop at home running Linux in a desktop environment if you are unable to

install a piece of code that did not code in an RPM package. They want real

world, hands on experience. That means that your choice in skills today affects

where you work tomorrow, and where you work today will affect what you learn.

Think carefully before you take a job, because you can end up locked into an

industry or career path that you are not happy about, and may end up taking a

pay cut or demotion to work in an environment you prefer with the tools you

like best.



Justin James is the Lead Architect for Conigent.

Editor's Picks