DEV Community

Discussion on: How do you talk about code quality with management/clients?

Collapse
 
rhnonose profile image
Rodrigo Nonose

It greatly depends on the individual/company. I have a small compilation of issues to mention if I need to just throw out to seem like it's a lot, but there's varying amount of problems that really depends on the project. It greatly varies on short/long-term, relevance, impact and visibility.

Technical:

  • Bugs
  • Performance issues
  • Infrastructure cost
  • Feature "throughput"
  • Scalability

Quality overall impacts on all of those issues, not only the frequency but the amount of time to fix them. It overall makes it harder to work on a project, resulting in less value delivered from the same investment (time/money/effort/people/whoever you "measure").

Organizational:

  • Higher turn-over due to overtime, stress and uncertainty
  • Creates a culture that incentivizes heroes that saves the day by putting fires (related to broken window theory)
  • Reduced knowledge sharing (less readable code and necessity to communicate more)
  • Too much focus on technical things since it takes more effort and energy, less focus on delivering a good product/service

I usually use the following analogy for crippling technical debt (that I actively avoid to create myself, but humans be humans):
Do you want me to keep working with my hands tied or are you willing to give me a little bit of time to untie it?

I usually try to not keep my current product/project/environment get too fucked up, but sometimes we inherit products/projects/environments that's too much mess. I either make it clear that I need to refactor it or consider refusing the job.