I’ve seen managers always quoting Mahatma Gandhi :
“A customer is the most important visitor person on our premises..”
MG got it almost right when he said that. The truth is The Customer is the second most important visitor in your premises. The most important is you. Your team. If you die, your customer dies with you.
Remember what the airplane stewardess teaches you? In an event that the flight goes bonkers and the oxygen level goes down the oxygen masks will drop above your seats. You are supposed to first put on the masks then put the masks on your children. You, then your children. In that order. Why do they tell that? Because the logic is so simple, yet so many don’t realize it. If you die trying to save your children, you’re helping nobody. There is a better chance to save your children if you are alive in the first place. Isn’t that true for your team too? If you allow your code to rot, overwork your developers all in the excuse of “doing it for the customers” you’re no helping nobody.
Let’s be honest. In most industries having software is not mandatory. People can do without it. We sell our software but on one premise. Making the life of customer easy. What kind of people are we if we don’t buy in to the same philosophy? The truth is “software” can not only make our customer’s life easy, but also ours.
Look within your company. There will be so many places where software can help you. Take time off writing that. Ask your developers what’s irritating them. there are always some. May be the manual build process? Give them time off to automate it. May be the “dirty” code and design that encourages copy paste more than reuse? Give them time to write utility classes and refractor the code. Give them time to learn new technologies. Get them the mac that they always wanted.
Doing all this is not a “nice-to-have”. It’s priority-1-code-red-issue. And make sure you let your team know of this. Tell them it’s okay to delay the feature, in exchange for doing it right. Don’t file these work under “when-you-get-time”. That way you will never get time. Don’t treat these as “extra” work, this is a part of “the” work.
Keep looking for ways to make your team’s life easier. Ask them how can things be improved. Don’t expect your team to come and tell you about every problem. Make a culture out of “Helping themselves first”. Don’t let this process get lost in the “customer want’s this” hoopla.
Think about it this way. Wouldn’t you rather eat in a hotel that serves you nicely cooked food with a clean kitchen even if they delay a bit? Same with your customers. Keep your “internals” clean. Keep your developers happy. In turn, they will delight your customers. Isn’t that what you want anyway? :)