I’ve always coded. Even when promoted I’ve still found an excuse to code. Partially out of job security, but mostly out of the joy of so many moving parts coming together to create something useful. I started my career in architecture (architecture like the room you are sitting in), and I think that very much influenced my approach to coding. I prefer code that displays clear patterns. Which is to say I find spaghetti or obfuscated code particularly offensive. For a few reasons:
- When adding new functionality, it is not clear what the existing pattern is to follow to not add more confusion.
- When bug fixing, it is hard to scan through the code looking for the line you have to change if everything is in a jumble.
- Well organized code as an aesthetic beauty which increases coding joy.
The highest complement I can be paid in regards to code that I have written was that it was easy to read and easy to modify. That is the signal to me that I have done a good job. I myself when I encounter good code and clear architecture from others always take the time to complement it and voice how appreciative I am that my job was made that much easier by effort they put into having clear patterns and clean code.
There are many productivity gains that are possible with a clear architecture.
In the same position I was praised for the completion of one project well ahead of schedule, a short time later I was asked why a different project was taking so much time. I informed the director of the department and the team (it was in a department-wide retrospective) that it was all in the architecture. In the former case I spent all my time creating the new functionality, in the latter case I had to spend much of my time debugging the code to understand how it works, followed by more debugging when the additions and modifications caused unforeseen consequences.