Winning people over to better development practices

I originally wrote this for Perlmonks as Re: Winning people over to better development practises in reply to Winning people over to better development practises

Win people over by showing results. If your way improves their lives, they’ll be interested. You have to show them what’s in it for them, and not everyone is in it for the purity of experience or artistic beauty.

Here are some things that programmers might care about and what will appeal to them. Tell them how agile programming benefits them personally and you’ll probably have an easier time convincing them. Peer pressure through public praise (or shame) can work too.

  • Spending less time debugging
  • Having fewer meetings (for good or bad)
  • Seeing results quickly
  • Dealing with fewer business people or customers
  • Working on their own ideas (instead of overtime on a bug hunt)
  • Spending more time coding (less analysis, design, etc)
  • et cetera

What you really need is agreement at all levels, including management, about how the programmers should be working. If you don’t have the culture in place, you’re always going to be fighting a losing battle.

For the management folks, you’ll have to appeal to the things they care about. Maybe you should invite them to some of the meetings.

  • Higher productivity
  • Fewer bugs reported by customers
  • Higher sales
  • Lower payroll
  • Reputation in the marketplace
  • et cetera

As far as design goes, I don’t think it has much to do with communication or meetings (or even experience). Lots of bad designs come out of processes that have all three of those.

Although it sucks to admit it, some people can design and some people can’t. Good design comes from recruiting good designers. I see a lot of people who think that just because they are smart programmers that they are equally smart at everything else. It just ain’t so.