A common attitude I’ve noticed amongst “people who code” is that the code is “just a means to an end.” I can sympathise with this attitude. Personally, I am far more interested in great products than I am in code.
With this attitude, I think one is perceiving them-self to be less of a programmer and more of a designer. “If I take the shortest path to getting the job done, I can free up more time to think of the bigger picture!”
Whoever has to maintain your code next could well share your philosophy. Unfortunately for them, however, their job is going to take longer because your code is not easy to maintain.
If you’re touching a codebase, you should be fully committed to sustaining that codebase’s maintainability. Positioning yourself above programmers — because, for you, the code is “just a means to an end” — is not too different from shooting yourself in the foot. By jeopardising the codebase, you’re making the job harder for the next programmer (and that could be you).
Whether you’re a designer, a niche programmer, or anything else, I believe you should always give your best effort when engineering. Soon you will turn over faster and cleaner software in less time, and you will free up more time to think of the bigger picture. By giving our most, we can meld great programming with great design. We can be great creatives.
These thoughts are provoked by my attempts to steer away from becoming someone who is just a code monkey, and towards someone who makes great products through the marriage of design and development.