Did you think about what traits make developers great? Which one is the most valuable for the companies they are working for?
While there might be quite a few of them, I believe there’s one that employers value the most. I also believe getting that characteristic can drastically increase your value as a software developer.
So, what is it?
There’s one thing you should always remember when you are working for somebody. The main purpose of your job is to bring value to your employer.
Although it seems simple, it’s something that most developers tend to forget about. Think about it. How often did you push a new framework just because it was new and sexy
Let’s make it clear, we all did it. Picking a task I liked to work on probably was the most common thing I tended to do a few years ago. It’s also one of the most prevalent things I see other developers do.
It’s easy to forget about it, especially in a large company where your efforts are not noticeable much. But don’t let yourself go astray. The concept of providing value to your employer can hardly be overestimated.
Why is it so important? The thing is that the more value you provide to your employer, the more valuable you are on the market. No one wants a senior developer that doesn’t solve problems. Or solves only problems that seem interesting. On the other hand, a less experienced developer with high motivation and clear intention to help the employer increase their income will be highly valuable.
What you are doing at the work is not designing or coding. It is delivering value to your employer. You should always keep that in mind. That mind shift is crucial for increasing your own value as a software developer. It also leads to some best practices I want to point out.
#1. Learn your problem domain
Every time you are going to complete a task, step back and think what value this particular task is about to bring? Maybe there are some other ways to do it? Or maybe this particular task shouldn’t be done at all? To answer these questions, you’ll have to have deep knowledge of your problem domain. Not only should you invest your time in gaining technical expertise, but you also should dive into the domain you are working in as deep as you can.
Without it, you simply won’t be able to do your job fast enough. Business analysts can help you with that, but they can’t substitute your own domain knowledge. Moreover, as business analysts don’t know what the actual implementation of their ideas is they need your opinion to make the right decision. But your opinion would be qualified enough only if you have a solid domain knowledge. Every great developer I worked with had this trait: they always tried to become experts in the domain they worked in.
#2. Prefer tasks that deliver the most value to your customer
This one is often hard to follow. Most developers became developers because they tend to enjoy programming. It’s perfectly fine to desire to work on fun and interesting features but don’t let yourself misinterpret your own enjoyment with the client’s needs.
Tasks that are interesting and fun to do are not always tasks that deliver the most value to your employer. Therefore, spending your time on such tasks is like reading Hacker News: it is pleasant and comfortable, but it doesn’t increase your value as a software developer.
I often see developers trying to convince product owner that a particular feature would be great to implement only because this feature is easy, or fun, or exciting to implement. Be honest with yourself; always try to put yourself in the employer’s position.
#3. Don’t stick to job security
Job security is something you should completely avoid sticking to. It might seem controversial, but it naturally flows from the previous point.
If you perform tasks that have the most value for your employer, you can find yourself in a situation where you are no longer needed. That is the best result you can achieve at work, of course if you are not got fired. It means that the problem you were working on is successfully solved or reduced to a level of complexity which can be handled by ops guys.
Such cases increase your value enormously. Moreover, they give you feedback you can use in further projects to deliver even more value and thus become more valuable on the market.
On the other hand, job security often means lack of progress. If you’ve been working on the same project for years and this project doesn’t actually go anywhere in terms of providing value to your client, then your team most likely did a bad job. You should avoid placing yourself in such situation because it inevitably leads to stagnation. The job itself might seem a good place to work at because you don’t have to put a lot of effort to get your regular pay check. But after several years you will eventually find yourself on the market, and then it might turn out that other companies value your skills less than you expected.
Building job security through sticking to a single employer at any cost doesn’t benefit in a long run.
Increasing your client’s income is a win-win strategy: the more value you deliver, the more valuable you become.