views:

534

answers:

11

I've recently started in a new team of classic ASP developers and part of my role is to re-train the team in ASP.NET 3.5 and C#.

To kick things off I've been running weekly training sessions on the fundamentals (as well as some sexier sessions on Linq & Ajax) and these have proven quite popular. However, despite a little dabbling, there seems to be a lot of resistence to getting stuck into the newer technlogies.

I'd like to know what other people do to fire up others around issues such as quality, technology and design.

+11  A: 

I often find a comparison of how I'm doing it now compared to how I could be doing it encouraging (assuming that it is better of course).

Take some of their existing code and convert it to a newer system and go through and compare what you had to do and more importantly what you didn't have to do.

  1. Validation Code
  2. Spaghetti Code
  3. Include Files
  4. etc

I think showing them the promised land is the key.

Micky McQuade
+5  A: 

One thing that we have done in the past is set up a programming contest that must be done using the new technology. We did it several years ago when everyone was learning to use COM, and we did it again a few years back when we were learning C# and the .NET Framework.

The contest should be something simple enough that the focus is on the new technology, but complicated enough to keep everyone interested. A little competition is a good motivator for many people.

Jeff Hillman
What kind of prizes are we talking about here?
mrinject
No prizes. Our contests consisted of coming up with the most correct and fastest solution to a particular problem. Regular updates were sent out with the current standings. It was fun to see your name rise to the top of the list. That might not be enough for some people, but it was for us.
Jeff Hillman
@mrinject: prize == status of "alpha geek" :-)
Stephen C
+1  A: 

Start a new project, set clear responsibilities and require them to use the new technologies. Then I would kind of hold their hand a little and help them along. Hopefully the success of a new small project plus them seeing the improved efficiency of the new methods after the learning curve and they will be on your side.

Also, you could have those developers each give a presentation of a particular aspect of the new technology and why it is good. One person could give a presenation on LINQ, another on some aspect of ASP.Net 3.5, etc. By them presenting it themselves they "own" it in a way and might be more quick to adopt it.

Simucal
+2  A: 

I don't mean this to be inflammatory, but if they can't get fired up about learning something new, then they probably should be rethinking their career choice.

Jeremy Cantrell
Fair point, and that was my initial reaction as well. I've mellowed though and would like to give people a 'reasonable' opportunity and some motivation to pick this stuff up.
Sean Campbell
@Jeremy: as developers get older, they become less likely to be "excited" by the latest fad^H^H^H advance in software development.
Stephen C
A: 

Is there a reason they're not taking to new technology? Most developers do not want to stick around in the old stuff and are usually very willing to get their hands into new technology.

Optimal Solutions
+2  A: 

I tend to agree with Jeremy Cantrell in his post above.

In fact I would even go as far as saying that if they're not fired up and are happy with their current-yet-outdated-skillset, that might mean that you have the wrong kind of people for your team.

This will be an uphill battle.

One suggestion though: go get them started on ASP.NET MVC. It might actually turn out to be easier on them than ASP.NET web forms because the web forms model is such a huge departure from Classic ASP.

ASP.NET MVC on the other hand kinda looks like Classic ASP, the difference being the behind-the-scenes code is now more organized, more coherent and more testable than Classic ASP ever was.

Goodluck.

Jon Limjap
+2  A: 

They get nervous, being pushed out of their comfort zone. Discover their fears, then address them. Examples: Will we be held to the same schedules, writing from this unfamiliar territory? Who will debug this code that we barely understand?

gbarry
+1  A: 

Steve Ballmer has the way! http://www.youtube.com/watch?v=8To-6VIJZRE

(joke)

Kris Kumler
+1 for having the courage to post a joke answer :-)
Stephen C
+3  A: 

From my experience, developers who do not want to embrace a new technology are more results-oriented, ie. they know how their old technology works and how to make it produce the results they want. That's all that matters to them, after all, nobody should cares how its done, only how well the end comes out. If they can produce the same quality product with their old tech, than you can with yours... well, the new tech is simply costing them a load of hassle, training courses and probably learning-curve bugs that wouldn't be there in the old one.

(other reasons can be you're too busy, so no-one has time to learn the new, but that doesn't look like it applies here).

So, my advice to you is to imagine yourself being in their shoes. Imagine someone's been brought into your team with the intent of scrapping that old, crufty ASP.NET and C# code and teaching you about the wonderful new-age, fast-development-track Ruby on Rails coding that you'll be expected to solely work in. Would you be happy? How would you expect to be made happy with the new? Once you've grasped that, you should be able to apply it to them.

gbjbaanb
+5  A: 

if they can't get fired up about learning something new, then they probably should be rethinking their career choice.

I must disagree. While continuous learning is definitely important to stay on top of a tech-based field, the real purpose of software development, like any profession, is to solve the customer's problems, not to be using latest shiny new whiz-bang tools to do so.

If I can produce a solution in Classic ASP that's just as good as what I could do with ASP.NET/C#, and do it in the same time (or less), then there's not much real reason for me to switch, is there? As another answer has said, if you want them to accept the new languages, you need to show them the benefits of making this switch. Otherwise the only people you'll get on board are the subset who like it solely because it's new (and they have their own risks assiciated with them, as much of what's new is poorly-designed or at least unstable, but they'll want to play with the new shiny anyhow).

Also, everyone keeps talking about getting them "fired up". That ain't gonna happen. Maybe it's just the company I keep, but, in my experience, programmers tend to be rather phlegmatic and are not prone to displays of enthusiasm unless you happen to hit on one of a few subjects that they're heavily (some might say "obsessively") into. If you want them to accept this change to a new technology base, you'll get a lot farther with an intellectual argument than you will with an emotional appeal.

Dave Sherohman
A: 

I think you will do best to understand where they are coming from in great detail. Then you can present what you have to offer in a way that links up with what they are really all about.

If you talk to them without understanding where they are coming from then it's no wonder you aren't getting through to them.

Alex Baranosky