12

I've been working in the same software development department for a few years now. In that time, the average stay of a developer has been 6-9 months. A handful have been around for over 2 years, but the majority of our 20 or-so developers come and go at a relatively high rate.

As a result, the majority of our projects have become maintenance nightmares. Contractors will come in, code a few patch releases, and leave.

Our department has development guidelines (we do TDD) but they aren't enforced.

Recently, I've been pushing for our department to produce more maintainable code. I've been asking for mandatory code reviews and mandatory TDD. Management fully agrees with me... in theory.

In practice TDD always goes out the window. The justification is always that, in our domain, we need to deliver NOW.

I keep going on and on to colleagues that we're just digging a hole for ourselves, and that our current approach to software development is costing our department a lot of money... but it seems to fall on deaf ears.

What can I do to get my colleagues to see the value of code maintainability? How can I explain that short-term wins without a long-term vision is not sustainable?

5
  • 6
    Are you sure the problem is with your colleagues and not with management?
    – user16764
    Apr 12, 2013 at 17:28
  • 2
    Is the company financially stable or is it still trying to get to the point of being profitable? There is something to be said for the maturity of the company that could be a factor here.
    – JB King
    Apr 12, 2013 at 17:55
  • JB King, The company is more or less financially stable. There have been pressures from upper management to do things on a budget, but this is precisely why I think proper TDD and code maintainability is important. user16764, I was including the dev manage in the term "colleagues."
    – MetaFight
    Apr 12, 2013 at 18:35
  • 3
    if there is a high turnover rate there is a reason for it, ask the people leaving why they are or what would have made them leaving less likely Apr 12, 2013 at 20:47
  • 3
    I saw things like that during my contracting days. It seems to me the real problem is the high turnover, and that is caused by a management style, starting from the top, that doesn't actually value its people. I could always tell, just by sizing up the CEO, whether this would be a good company to work for. Apr 12, 2013 at 20:49

3 Answers 3

16

It's not your colleagues that you need to convince.

If management truly agreed with you, they'd be enforcing the code reviews and TDD. As it is, they're just nodding their head to make you stop bothering them.

I see two options here:

  1. Make a pitch to senior management about how high employee turnover and lots of client facing bug reports are costing them money. Include in your pitch a viable solution that involves enforced code reviews, TDD, etc. Wrap a time frame around it and promise to deliver. They might make you a manager in charge of fixing it.

  2. Leave. If you know it's going to collapse, why stick around?

2
  • Thanks for your input. I have already brought up all the points in option a) at one point or another, but maybe you're right: Maybe it would have a strong impact if I put all the information in a quick potent presentation. Lately I've been considering option b) a lot. My biggest worry though is that I'll encounter these same problems no matter where I go. I feel very lucky to work in my current domain (it's F*in cool!), so I'm reluctant to leave. I'm also reluctant to put up with a bad work environment just so I can impress the ladies ;)
    – MetaFight
    Apr 12, 2013 at 18:41
  • 1
    quick update: I left my previous job and found a better job with better management and better developers in the exact same domain. I'm still not impressing any ladies, though.
    – MetaFight
    Jan 23, 2015 at 19:06
4

I see this happen a lot when one developer works on a project exclusively for a long period of time. They know where the pitfalls are and how to work around them, and so they generally don't care that they exist. The number one way to convince developers to employ common coding standards and best practices is to get them to work on other developer's code from time to time. They will see pretty quickly the value of self-documenting code, proper exception handling, cleaning up dead code, etc. Do this once or twice and your fellow developers will be happy to adopt these practices.

With managers, it's usually a different story. Good managers will respond to complaints from developers and proactively look for ways to improve your company's coding practices. Bad managers won't care, as long as the product gets out the door on time. For these types of managers, you will have show them what's wrong with how you're doing things. Explain that it takes twice to three times as long as it should to train a new developer, or that it takes a days to find bugs which could be fixed in a matter of minute, all because the code base is a mess. If possible show real, concrete cases of the costs associated with poorly maintained code.

-1

Screw explaining things to people.

It might be easier to get management/other devs onboard with some type of Continuous Integration. Then, if the tests don't pass, the code doesn't ship. End of story.

1
  • 3
    Having tests that pass does not make the code more maintainable.
    – Bernard
    Apr 12, 2013 at 23:22

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