February 06, 2010

Looking back, nothing has changed.

The other day I was reading that Martin Fowler will be visiting Austin giving a presentation on "What Agile really means to the future of software development".

I'm sure Martin is better then most ( he did after all sign off on a Continuous Integration book written by a good friend of mine - Paul Duvall ) but most evangelists and developers that I've met think very little of setup.

This reminds me back to something that Bob Baker wrote over 10 years ago in the Official InstallShield for Windows Installer Developer's Guide book.

"The main problem that is faced by the setup developer is that he creation of the installation for an application is normally left to the last minute just before the product has to ship. This is because setup is not considered part of the development process."


It's now the year 2010 and this is still true now more then ever. I've been doing setup development since 1997 and the one thing that is a near constant is that developer always treat setup related tasks and the setup developer himself as second class citizens. They assume that because your working on the install that you must be a development flunky. This is probably because that's the way it's been everywhere else they have ever worked.

Frankly it's really annoying. Seriously, just how many times can you take some new developer coming into your office, looking at the setup problem domain from 50,000 feet, claiming that it's easy in a condescending tone and then refusing to provide meaningful participation in solving the problem? BTW, can you get this done by tonight's build? That would be grrrrreaaaaaat.

These guys can talk a mean talk about Agile, Scrum, Lean, TDD, IoC, MVVM, ASP.NET MVC, Separation of Concerns, Single Responsibility ( and so on and so on ) but they always wait until the last second to come to you to get their install done and God forbid you see a problem with their design that effects setup because frankly they just won't care because 'it's already done; this needs to ship next week'. If you try to explain to them that they should learn setup and include it in their Agile and Lean believes they suddenly become very disinterested.

Since your bothering to read this I'll assume your a setup guy and have already witnessed this. But let's assume for a moment that your not and you don't believe me. To date, 500,000 questions have been asked on StackOverflow. Here are are the top 10 tags in popularity:

c# 61927
java 34410
.net 32759
asp.net 28696
php 27893
javascript 25159
c++ 24402
jquery 18771
python 17964
iphone 16413

This is a total of 288,394 question or apx 58% of the total. Now lets see how many questions have been asked about setup:

msi 469
wix 439
installshield 142
installaware 5
wise 15
installer 763
windows-instaler 357
install 231

This represents a total of 2421 questions or 0.5% of the total. Truly sad IMO.

Then there is a dearth of interest at code camps and conferences. For example, someone recently told me that at a recent Microsoft PDC they attended a deployment focus group. He indicated that it looks like they had swag for 12 people and that 4 people actually showed up.

Think about that. Of all the thousands of developers who attended PDC, only 2 of them had enough of an interest in setup to attend a focus group.

However, there is a bright side: Setup isn't going away. Projects of all sizes continue to need deployment solutions that work. Yes, this is a niche field with little respect, but there is some real good money to be made if you are willing to commit yourself to learning everything possible and become the world beater that can make things happen. You will have so little competition from your peers because they don't have a clue just how important setup actually is.