bathroomWe recently had our ensuite bathroom renovated. Remodelling a small ensuite is a simple job that should have taken 7 to 10 days. Almost eight weeks later, we're still not able to sign off on the work. We have experienced terrible communication, a complete lack of quality/workmanship, outright mistakes, delays and a large bill that is no longer defendable. And, we went with a reputable company: Home Depot.

(Feel free to add your horror stories on remodelling below.)

Yesterday morning we had another 'final' inspection, this time with a Home Depot manager present. I was discouraged to learn that the official company attitude is "we'll keep fixing things until it's right". Sure, there was an 'apology', and a tacit acknowledgement that we might have been inconvenienced, but no actual compensation offered/promised.

I felt frustrated. Helpless. Angry.

After all, we had hired experts to do this renovation. For the amount we paid, we expected:

  • someone to oversee the project
  • to be told options we needed to chose and when
  • the appropriate supplies ordered on time
  • competent tradesmen
  • daily inspections to make sure the work was done properly (or at least quickly corrected.)

And yet we got none of that. We did the inspections and pointed out mistakes. We answered the tradesmens' questions. We had to prompt/remind them to order materials. We basically acquired all the stress of managing a project.

I mentioned my thoughts to Lisa, and wondered out loud if they (the contractors) ever go home at night and feel bad about screwing over their customers. Do they even care? Or do they think that they are really doing the best they can, things happen, and we should still be paying full price regardless of all the problems they caused?

Developers are just as guilty

And then it dawned on me - as developers, we do this to our clients.

All The Time.

At the very least, we did it in the past and have vowed to improve.

Think about it. Have you ever signed up for a fixed-price contract for a set of known features, but when you delivered the project, the customer said:

  • but there are still all these bugs
  • this doesn't look/work as I expected
  • and I'm not paying you the rest until ...

What happened when you went home from work that evening?

Did you empathize with the client?

More than likely, I'm guessing that you were somewhat annoyed/angry at the client for not understanding:

  • that software is complex and there's bound to be bugs
  • that you put in extra time to try to satisfy the client and your effective hourly rate has gone down the toilet
  • and that you deserve to be paid in full because, in the end, you completed all project deliverables.

This bathroom remodelling experience really made me think. As little as I understand about installing a vanity properly and re-connecting pipes, my clients probably understand even less about what I do to deliver their software. And if something doesn't work, they probably feel frustrated and helpless.

Is there hope?

Of course. We can keep returning to the principles of agile development to provide value on an ongoing basis: smaller iterations, more involved customers, more automated testing for our code/deployments.

I smile thinking about how awesome it would have been had these principles been followed during our remodelling job :) By day three, when we realised how many mistakes were being made, we would have had them stop. They would have been paid for their time, and we could have refocused on the best way to finish the job.

What next?

Thanks for reading about my aha! moment. As someone who's been keen on "agile" and TDD for years, I've never identified as closely with how we are trying to help our clients until now.

The next time you are out of your element and dependant on another skilled professional, think carefully about how you feel when something goes wrong. Then consider the possibility that your clients feel the same way when projects don't work out as expected. Could be an interesting exercise :)

But most importantly, make sure you are delivering value on an hourly/daily basis to your clients and make sure they agree what you are delivering is of value to them.

Update: Many thanks to Lisa who spent an hour on Sunday morning help me re-structure this rant from late Saturday evening.