views:

66

answers:

4

Hi,

What would you advice to a development team that is about to move to a new technology (Let's say from asp.net application to SilverLight where no one in the team has an experience so far on SL development, or for a similar case)?

How should be the learning, experiencing, planning, development and other phases should be orchestrated according to you?

Thanks

A: 

Do a pilot project, but something useful.

Do research to find out where the 'pain points' are in the new technology - concentrate on them.

If it's MS technology (as you indicate), search for Hands-On-Lab tutorials where you can work through some of the basics.

Check out the Silverlight tag here on StackOverflow, (there are 7000+ questions, that should keep you occupied for a while :)

Benjol
+2  A: 
  • Start small - translate a small application you know well to the new technology.
  • Appoint one or two evangelists that will get a thorough understanding of the new technology, and can later be both a reference point and teachers.
  • Try to be agile - use unit tests and code reviews.
  • If you can, deploy this to part of the site.
  • Try using Tracer Bullets, to get a feel of the whole development cycle.
Yuval F
+2  A: 

Dont. I personally think it is extremely risky to have everyone on the team working in a brand new technology.

You must have atleast a few people (minimum 1 - but real number depends on the size of your team) who has working experience in designing / develolping using the technology. Working experience - means that they have used the technology atleast in one real life project successfully.

The people who have experience with the technology must set some standards and guidelines for the team to follow to ensure that the team is following accepted best practices and standards for the technology in question.

Also, encourage open discussions within the team on design decisions / standards / technical issues to ensure that the noobies understand the rationale and can even challenge it if needed to weed out bad practices / improve existing ones.

InSane
"Don't" seems a little harsh. Learning is an important part of life. Of course, if it's an important new project with a tight schedule then think carefully about it, but Do rather than Don't.
Alex Paven
@Alex - Just to clarify - i only said "Dont" if EVERYONE on the team is a noob. i think it is a recipe for disaster in any commercial project. In my opinion, either deadlines go for a toss when everyone is on a steep learning curve or conversely, the design / implementation is far from optimal as usually the focus is on trying to figure out just how to do something rather than how to do something right!! Learning is exactly what i stress on but you should not, in my opinion, treat any real life project as a school learning exercise - It is extremely unfair to whoever is paying for it.
InSane
@In Sane: true, you should not treat real life projects lightly; however, it is my opinion that it's worth a shot (maybe not with the entire team right from the start, of course, and depending on the overall team skill), as the developer productivity (at least the perceived one) I experienced with Silverlight more than made up for any delays related to the technology itself. Of course, the architecture was not up to par, but it slowly got closer over time. And of course, it wasn't a _very_ big and important project, and we weren't on a _very_ tight deadline. YMMV!
Alex Paven
A: 

Do risk analysis to identify what the limitations are with the new technology. Making early assumptions about the technologies ability / features often leads to monumental cockups!

Karl