Currently we're not doing any code reviews and we have effectively zero unit tests (we have some but they are never run by anyone else other than myself) and there's no coding standards for style and we're dealing with C#, Python, JavaScript and HTML/CSS.

We're starting to use branches and pull requests in github with very quick code reviews and no unit tests associated with the code.

The manager explicitly said that cutting corners on quality is okay, however half of the bugs we're fixing are regressions and the other half is basically re-work of low quality contractor work.

Is there a nice way to introduce a culture of quality into an environment like this?

  • would the question be less broad if I asked about how to counteract the bad attitude towards quality? – Old account Mar 10 '15 at 16:08
  • 1
    No. Your manager has said that code quality is not a concern. Wishing that code quality is a concern will not make it so. Either accept the work culture or find another position where code quality is more important. – Gilbert Le Blanc Mar 10 '15 at 16:11
  • 5
    The way you convince management of anything is by making it a value proposition. How much money will it save them by implementing your suggestions? Show them the money. – Robert Harvey Mar 10 '15 at 16:38
  • Do other developers have the same opinions on quality? Is it only the manager who likes smelly code? – scriptin Mar 10 '15 at 17:42
  • You really have to get management to make it a priority. You'll (almost) never get anyone to do it if management is on board saying to do it. Focus on showing management the value proposition. – Rob K Mar 10 '15 at 17:55

Just like with anything else you are trying to sell - you have to dig up for that value proposition which is unique to the management and developers respectively.

Most developers on a logical level would understand that unit testing, code reviews are very important but internalizing that information is very different.

As with management they mostly see unit testing, dev testing as extra work that slows down the process.

Obviously both of these statements are pretty generalized.

One way you could go about doing this is introducing this slowly, bit by bit. Do it iteratively.

Start with management and work your way down to developers.

When you're with managers think about all the ways that unit testing, dev testing can make them more money in the long-term despite the fact that the process will be slowed down inevitably in the short-term.

When you're with developers show them how it can increase the quality of their daily lives by not having to deal with crappy tickets that are the results of what they are not doing that you want them to do.

  • 1
    I agree with you, but I think that cultural changes are hard to make. I would add that it needs to start small: for example, start with TDD (not unit tests) for new features or maybe start with code review. Then start adding up other practices with time. The problem is that their manager does not care about Quality, and usually they are the ones that should worry more about it (re-work has costs, does he know that?) – pietromenna Mar 10 '15 at 16:16
  • @pietromenna definitely agree that changes need to be made iteratively and small. I was actually updating my answer as you commented this so we are definitely on the same page here. – AvetisG Mar 10 '15 at 16:30

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