It occurred to me recently how much i've changed as a developer in the past few years. When i first started working as a developer, i was pretty quick at adding new features to projects and fixing bugs. I was almost fully focused on adding functionality but i didn't really spend a lot of time thinking about how i was adding the functionality. In some cases, i complained when i felt that some of our approaches could be better and in other cases i came up with alternative approaches but generally speaking, i was in full "i'm new at this, i'm learning and i'm just trying to do the best i can"-mode. For me, that meant trying to complete your assignments within (or ahead of) time, and with as few issues/bugs as possible.
This worked pretty well for the first 2 years or so of my career, but a lot of that changed when i started working on our own little ORM in VB6 together with a more experienced coworker. For some reason, writing code that made the job of developers easier somehow was more appealing to me than writing code that made the job of our users easier. From that point on, my focus gradually shifted from being a developer who tries to add value through functionality to being a developer who tries to add value by reducing complexity. With that i mean that i spent less time working on actual features that our users would benefit from, and more time on writing code that other developers would benefit from. And that, in turn, would (should?) offer more benefit to our users on a larger scale because my code was supposed to make it easier for other developers to add new functionality.
Just to be clear on this: i think we need both 'kinds' (yes, i know there are more 'kinds' of developers but bear with me on this) of developers. If a team of developers consists solely of people like me, you're never going to deliver anything of value to your users because we would spend all of our time trying to improve whatever it is that we're doing. Just like you need people who are willing to think a bit further about how you're doing things, you need people who manage to actually get things done in a manner that is good from both the technical as well as the end-user point of view.
Sadly, i'm no longer one of those people. I used to be, but i don't really think i'm capable of going back to that. To me, providing a good User Experience means coming up with a good API. So i spend most of my time working on architectural and framework stuff. One of my biggest fears is that i'll some day end up as the typical non-coding architect so i try to stay very involved with how people are actually writing code to deliver real functionality. I may not write that kind of code anymore, but i do keep looking at a lot of that code so i can keep coming up with possible improvements.
So what about you? What are the things you focus most on, as a developer, and why? What are the things that get you the most satisfaction (keep this technical, i don't wanna know about your personal life) and are you able to focus most of your energy on this?











