I've been working full-time as a software developer for almost 2 years now. I’ve learned a lot. I’ve messed a bunch of stuff up too. The question I’ve been struggling with is how do I know I’m actually becoming a better developer? Over the last couple of years, I feel like I'm becoming a better developer. But is feeling better enough?
What makes a good developer, IMO?
I haven't worked with or known a ton of developers, but I've worked with some great ones. Besides the actual code a developer produces, there is lots that makes a developer great. There is lots that make a developer great, but here are a few things that I think make a developer (and people in general) great:
- They are approachable. They always have time to help the junior dev like me and give helpful feedback.
- They know how to find answers. Because of this, they seem to have a super-human ability to know everything.
- They volunteer to work on the hard stuff. This leads to them learning more because they stretch themselves.
- They admit when they don't know something.
- They are not afraid to admit they were wrong.
Unfortunately, all these things are hard to measure. I think most people can agree that the easy things to measure (number of lines written, number of tickets closed, etc.) have little bearing on whether a developer is great. So that's where I get stuck. I want to get better, I know what I think a good developer looks like, but how do I know I am better than I was a week, a month, a year ago?
Can getting better be measured?
I like numbers. They are easy to compare. But how do I compare something like being approachable? I could maybe find a number to represent it, like number of questions I get a day. I could ask people to give me a rating on how approachable they think I am, but I'm guessing the people who like me would rate me highly and the people who don't would rate me poorly, and that it wouldn't change much over time.
Let's assume I do find a number or a couple numbers to represent approachability. Over time, I think I would subconsciously, or maybe even consciously, find a way to game that number. I'd want to chase that good feeling that comes from seeing a number improve. My point is, numbers probably won't work very well. Are all metrics bad? No. Are most? Maybe. It's hard to find the useful metrics. But they do exist, I think. But I also know from personal experience that it is incredibly easy to focus too much on the number and not on the end result the number is supposed to measure.
So, is feeling better enough?
I'm now thinking yes, just feeling like you're a better developer is probably enough.
The hosts of one of my favorite podcasts, Cortex, talk about yearly themes. Instead of making yearly goals or resolutions, they have a theme. Whenever a decision or opportunity comes up, you can just look at your theme determine if the decision is on or off theme. I think a similar tactic can be taken with becoming a better developer. Instead of creating specific goals or measuring (pointless) metrics, just keep what you think makes a developer great in mind, and when situations arise, just ask, "How would a great developer act in this situation?". Sounds cheesy, I know. But that's the best I can come up with right now. It's not just wanting to be a better developer that makes someone better. It is knowing what you want to be like and acting more and more like that until you become that.
If you have any ideas or thoughts, let me know. I’d appreciate it. This is all still forming in my mind. What do you think makes a developer great? How do you know that you're getting better?