I’ve never been much for setting goals in my career. I’ve always taken problems and solved them, but never had much of a long term plan for where I wanted to go. I’ve always been interested in the architecture aspect of software engineering. But that always felt to me more like a role, and while you can have a goals to be involved in that role it isn’t a terribly productive goal in of itself.
If a goal is a SMART style goal where it is something you can actively work towards, then you can just do it and know that you’ve achieved it. But something like being “more involved” in the architecture aspect of a project isn’t something you just do on your own, or necessarily know when you’ve achieved it. To be measurable and achievable, that sort of abstract goal needs to be broken down into smaller portions that can be achieved independently. It always seemed to me that the more interesting sorts of long term goals of this nature are difficult to break down into individual aspects.
To move myself towards that goal I’ve done most of the architecture tasks for whatever team I’m on. I’ve also been actively volunteering to help other teams with their architecture problems – just as a second set of eyes. None of this really ever got me progress towards the goal of being able to work on architecture full time. I had spent a lot of time trying to come up with other specific actions to try to advance me towards this goal.
Today, I had a realization that maybe I was looking at the wrong goal. I don’t want to do architecture most of the time, because I don’t want to be in an organization that has a role where someone does that for others. I want to have the ability to pick and choose my own projects, and even define my own projects to solve problems others may not have even recognized as problems yet.
This got me to thinking what sort of intermediate goals I should be working towards for this larger goal. I haven’t been able to come up with any of the intermediate goals/actions thus far. Some ideas I’ve considered so far and rejected: being superiorly productive, being vocal about any issues I see that need attention, and just doing what I think is right regardless of what’s on the team’s agenda. Being superiorly productive was rejected because it would mean that I need to stop spending as much time helping others with their problems and therefore collectively putting out a less solid product. The issue I had with being more vocal was that I would inevitably be bringing up problems that I didn’t have a solution to or did not have time to do anything about, which feels like it would just seem like complaining. Just doing the right thing and ignoring my team’s mission is difficult since it puts me and my team in a complex situation in that we aren’t doing our specific part of how the organization is supposed to work, but if we solve another problem it might be okay, it also requires the ability to go your own way long enough to have results to show.
I’m still trying to work through the ramifications of this personal epiphany, so I haven’t taken any real action on it yet. I don’t know if I will be able to figure out a new course of action based on this, but I hope to.