Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've been trying to introduce topics such as unit testing, dependency injection, inversion of control, etc... to co-workers. I've given mini lectures, demonstrations, and have suggested these topics during lunch and learns. Reception has generally been positive and people do see value in such topics.

Even though they seem attracted to these topics, adoption has been very low. When I talk to them about it, the answer is generally along the lines of:

I'll try it next time. I just want to get this project out the door.

I have a feeling it's because most of what they have seen are just lecture type demonstrations and they do not have any hands-on experience. What can I do to help nudge them along? I don't want to "force" them into writing code if they don't want to, because it may seem like "homework" and it may leave them with a bad impression.

Our projects generally do not leave time for experimentation, so people tend to shy away from new technologies. This doesn't leave room for developers to try and incorporate new things during the development phase.

Are there any fun or interesting exercises (solo or team) that allows them to have more hands-on experience with these topics? I'm hoping to find something that would peak enough interest so that they are willing to schedule an hour of their day to work on something neat, or peak enough interest so that they'll investigate on their own time.

share|improve this question
3  
@Snorbuckle Accept rate isn't relevant in Programmers.SE. See our meta thread. –  doppelgreener May 13 '11 at 12:10

5 Answers 5

To "prove" and therefore really implant an idea in someone's head, theory (talking) is never enough.

You have to use those practice in your own code and make them "discover" that it solved problems in a nice way.

That imply that your practices have to be effective and you should make it obvious.

That way, reading your code will inspire them as they will "see it in action".

Don't assume that just telling how it works will be enough.

share|improve this answer
7  
+1: Do it. Be more productive than others. They'll ask you for advice. Then you can introduce one new idea. –  S.Lott May 12 '11 at 10:06
2  
+1: Teach by example. –  Edgar Gonzalez May 12 '11 at 13:30

Speaking from experience, if they are unwilling to apply what you're trying to teach them, it means they don't care about it. You're probably wasting your time by trying to introduce the topics to them, because if they understood the actual benefits of those topics they would want to apply them, not give excuses as to why they can't.

It's just like trying to introduce something better than what's currently being used and getting blank looks or immediate responses why it's not possible to do; it's indicative that the other person doesn't really see it as a benefit (because if they were capable of seeing the benefit, they wouldn't be giving an excuse).

Sad but true. Maybe your situation is different but I've run into this a couple of times in the past and in the end it was painfully obvious that nobody but me was interested in those topics; I ultimately made the decision to leave and try to find co-workers who do care; the kind of people who either don't need me to introduce the topics (because they already know/use them) or who jump on accepting it, instead of saying how they can't do it.

share|improve this answer
    
+1: Another awesome answer, @Wayne M. I said something very similar over here: programmers.stackexchange.com/questions/75809/… –  Jim G. May 12 '11 at 21:02

I've seen a lot of "best practices" fall out of favour and never get used again. There are many types of projects and such techniques aren't suitable for all projects. Make sure the stuff you're selling really will help.

If you start doing it and people can see you're being extra productive or producing better quality code they will have another look later. Think closely though, will all the extra overhead really help your project? Not every app needs it.

share|improve this answer

If you can motivate your colleagues to take part, you could organise Coding Dojos. These are programming challenges where the participants deliberately focus on improving practice. Maybe taking part in a test-driven dojo, for example, will lead your colleagues to see the benefits in TDD.

share|improve this answer
    
I was quite impressed with John Jaggers cyber-dojo.com at this years ACCU conference. In particular, I like the summary screens where you can see different groups approaches and where a good tdd approach will show up visually as a nice red/amber/green/red/amber/green/... traffic light progression. –  Mark Booth May 12 '11 at 17:19

Alternatively, sometimes these things need to be imposed by culture. It strikes me as though the culture in your company is not to need them.

If they become a requirement of project close out (probably a management decision), you will see griping, but at least then some application of said tools and the culture will begin to change.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.