Adapt and Improvise
I went to lunch today with a friend of mine. He is a member of the Enterprise Architecture team at his company. We were discussing the Install Fest I attended last week where Microsoft was giving away copies of Visual Studio 2008 Professional. This is a very impressive product that shows where Microsoft is going with their new Server 2008, SQL Server 2008 and .NET 3.5. Microsoft will probably have the launch event for these products in the next 90 days.
So why do you care? Are you busy building your applications in .NET 2.0 (maybe 3.0) using VS 2005? Or are you a diehard group still using VS 2003 or VB 6? Obviously you have problems to solve for your company. That is what your job is right? No time to play with the latest technology, you have things to do…
The problem with this attitude is sooner or later you allow your environment and your skills to become obsolete. My friends company still has a great deal of VB 6 code all over that runs the company. All critical applications, with no time to migrate it, just fix it and move on to the next fire in a massive fire fight across the entire company.
So now they are setting on applications over 8 years old. They have not moved forward to .NET (now over 5 years old). No one wants to think about Vista (now over 2 years old). Everything is focused on keeping the old dinosaur code and environment going.
So what happens? Now the company decides it is time to outsource. Consolidate applications and move them to an outsourcing company. Obviously IT is no use to them. They can’t even keep up with the latest technology. Of course it will cost more to find outsourcing resources that can support the old VB 6 legacy code. Let’s face it would you want to work on some old VB 6 crap that has been bandaged together for 8 years and is undocumented, but mission critical for your client? Man I would charge so much for this it would make the clients head spin. I believe that is what will happen in my friend’s case.
So now what happens?
Essentially this company has let itself and their IT departments enter into a technology gap that leaves them no opportunity to move forward. They have not kept up with the industry or the vendor’s technology. They have nowhere to really go to move the company’s technology forward.
How flexible are they going to be under the following conditions?
1. SMB 2.0 promises a massive increase in File transfer speeds. Is their network going to handle it?
2. Currently the limit for Gigabit networks transfer times is very near the speed of SATA drives (see Gigabit networks at Home). What happens when solid state drives come along and the speed of disk drives continues to increase?
3. Are they ready for the new crop of applications sure to come on Windows Server 2008? Can they adjust for these?
4. The email infrastructure is an older exchange server with a custom paging system. How well is that going to stand the test of time?
5. Essentially the company has not moved forward on their client and server infrastructure since they started deploying Windows XP (5 or 6 years ago). Are they ready to face Vista and beyond?
This is just the tip of the iceberg for them. Since all their applications are 8 years old, who knows what new updated applications will mean to their infrastructure?
Now let’s talk about a few problems the IT people at this company face as their positions are outsourced.
1. Most of the developers have an outdated skill set. How many VB 6, COM and ASP applications are out there?
2. Most of the developers have no real desire to learn the latest technologies and methodologies, otherwise they would be active in the developer community and trying to keep up.
3. How agile can they be? Are they up on the latest methodologies to shave time off their development cycles and try to deliver the best quality products on time?
4. Are they up on Test Driven Development?
5. Would you really want these guys on your team? No matter how much time they have in the industry the velocity of your team will be impaired by just trying to get them up to speed.
These guys are essentially screwed. They won’t find any jobs that pay at their current rate. They are senior developers with no skills. Unless they start getting up to speed now, before they are outsourced they will not be able to compete against the young kids in the market that are up on the latest technologies (and frankly cheaper).
I have seen this scenario play out several times in our industry in the last 25 years. First it came from the mainframe teams, next it moved to the VB 6 developer who did not want to move to .NET. Now you see it with the Web 2.0 application development and the up and coming Microsoft releases.
So what do I suggest?
First companies need to determine a strategy for keeping up with their vendors. Too often the attitude is why upgrade? You just want me to spend money… In some cases this is true but is also a trap for the company. Ignore the vendor upgrades for too long and you get a heck of a technology gap and no one to blame but yourself.
IT management needs to put some money away for training their employees. Have a few target areas and applications that you can keep on the leading edge to keep pace with the vendor. Microsoft has very long beta cycles. Pick a group to get on them and stay current. Don’t think that Open Source alternatives will protect you from this forever. Sooner or later you will have to upgrade and take advantage of changes no matter who is distributing them.
Developers need to keep up with the latest technologies. Fail to do so at your own peril. You do not want to compete with some young pup out of college that knows the latest technology and will do the job for less. If you are a senior developer keep up with the technologies, or go to a different industry where you don’t have to.
Above all be ready to adapt and improvise whether it is the company or the individual. It is a fact of life that all things change. Ignore this fact at your own peril.
Filed under: Uncategorized





This is an excellent observation. As you noted, some of this problem comes back to the “senior” developers who are not interested in keeping their skills current - they’re comfortable with the environment they’re in. In some cases, maybe their management wouldn’t be able to effectively “force” them to learn new skills.
At some level you have to take control of your own professional development, which may (and usually does) mean working on your own projects outside of 8-5.
I like an idea I came across regarding the shelf life of software. Just as hardware has an event horizon for getting scrap heaped, so does most software. Reasons include the inability to take advantage of hardware advancements, plus the simpler fact that old software gets usurped by new upstarts.
Next, I think it is interesting to note that technical currency as defined by my CTO is “are we running current versions of our vendor’s software”. I think this is a reasonable thing. Why the hell are we paying $200K a year in maintenance fees to our vendors if we let the updates sit on the shelf?
An inability to move to latest release of OS or enterprise system is a bad sign of tight coupling at a macro level.
Those 8 year old systems you mentioned? That’s a warning flare if I ever saw one. If you are a developer in a hop like that, you should start shopping around. Seriously. No, seriously.
I think it is easy for a developer working for a company to think the company has his best interest at heart and to get stuck in some of these crummy jobs. Let’s face it. If you let this happen you have no one to blame but yourself and must face the consequences. In the end you must always look out for yourself including your own carrer. Some of these guys actually think the company cares about them or their managers (who have not coded in years) know what they need to do.
I agree that developing outside of work is a good answer in part but I thing David has it right too. If you are in a job like this get out while you can.