A couple of weeks ago I wrote a post about quality. Since then I’ve received quite a few emails on the topic. It seems that many companies offshoring software development are struggling with the quality- scope trade-off. This is a hot issue for outsourcers too.
So, in the past few days I’ve been thinking a lot about how to create an offshore development environment or team that delivers top quality software without breaking the bank. And it seems to me that companies renowned for 5-Star+, quality software development generally stick to a ‘don’t compromise on quality’ approach. Any project manager worth his or her salt will tell you that you need to look at both the long and the short term when it comes to ensuring quality. Let’s concentrate on the short term for the time being and see how we can avoid compromising on quality. Most developers are developers because they enjoy coding. It’s one of those fields where people genuinely take pride in their work and to some degree their personal reputation is linked to their code. They know how to deliver high-quality software.
The problem comes when they feel they are not being allowed to do so. This could be because time-scales are too short, the customer only wants a short-term solution, or because the customer is focusing on adding more and more features, instead of concentrating on quality. All these reasons are basically about poor contract negotiation, not about poor coding, but the result is de-motivated developers who feel they are not being allowed to work to the best of their ability.
We all know that contract negotiation is getting harder and harder. It might be tough, but to keep your workforce happy and consistently developing good software, when you do compromise, make sure you do so on scope, not quality. And if you are a customer, just remember that you are paying for the expert knowledge of the outsourcer’s developers. If their expertise says don’t compromise on quality, then they are probably right. By pushing the factors that affect quality, like timescales and scope, you are going to end up with de-motivated developers who don’t give you their best.