5 Reasons Developers Must Understand the Why of Their Code
DevEvolution EP 6 - Increase your value as a developer
A developer not knowing the why of their code is a code monkey.
In case you don't know the term, a code monkey is an expendable and easily replaceable programmer. There are millions of such programmers already out there. More are getting added to the workforce every single year.
You can't afford to be a code monkey.
It might have worked a few years ago when it was hard to find developers and headcount mattered. People who simply knew how to code were considered special.
However, this advantage is eroding fast with the rise of LLMs and Chatbots. To keep yourself relevant, you must strive to increase your value as a developer.
And one of the best ways to do so is to understand the why of your code.
Welcome to another edition of DevEvolution where I discuss actionable tips that can help you grow in your career as a software developer.
In this post, I explain why it is important to understand the why of your code.
Here are the 5 main reasons:
🌅 Context
Building a large software system is like solving a puzzle.
Each piece in your favorite puzzle has a specific place where it fits seamlessly. It becomes far easier to join the pieces if you understand the big picture.
The same goes for software development where each functionality is a piece that contributes to the real business goal.
Developers who understand the business goal add more value toward achieving that goal.
When building a team, I'd rather take developers who make an effort to find out how their piece of code impacts the business. Such developers are bound to make better decisions about how they write & test their code.
On the other side of the spectrum are code monkeys who are simply glorified translators. They do what they are told. Not so different from what tools like ChatGPT have started doing.
To increase your value as a developer, stop being a translator. Use your brains and strive to first understand the business reason behind the code.
☘️ User Needs
If I got a dollar for every time I challenged the user about their requirements, I would be a millionaire by now.
Sadly, most developers are afraid of challenging the user's requirements. They are bound by the dutiful oath of the customer being always right.
I'm not saying that users are dumb.
But users also don't know everything they want until you show it to them.
In fact, developers who understand the why of their system have a lot of insights about how the user experience can be improved.
It's because they understand the capabilities and limitations of the system like the back of their hand.
Such developers are priceless.
Not only do they delight the end user, but they also end up generating more revenue in the long run. After all, only a happy user will give you more work.
⏰ Prioritization
A few years ago, while working at a leading Nordic bank, I read about the inevitable arrival of GDPR. It was obvious that we would have to do something about it in the coming year.
The easy path was to wait for it to materialize as a formal request and then, think about what to do.
This is not the way of the high-value developer.
Knowledge of why makes you a partner rather than a robot meant to follow orders.
As a partner, you aren’t going to wait for orders. You are going to move ahead with the intention of benefiting the business.
After I organized a quick brainstorming session with the team, it became clear that our system would need to build appropriate APIs to serve the imminent GDPR requirements.
Of course, deadlines would be tight when the requirement comes to the team formally. So, instead of waiting, why not start building the low-level APIs straight away as part of the other requirements so that we don't start building from ground zero?
When the GDPR requirement eventually landed on our plate, we were the only team that was already halfway through delivering the requirement.
It was obvious that our forward-thinking and prioritizing of certain activities helped. The icing on the cake was that all of this was driven directly by the developers without any intervention from the management team. Funnily enough, the managers were curiously surprised and delighted that they could show better progress in front of the steering committee discussions.
You don't need me to tell you that the developers who were part of this initiative benefited in their own careers.
If you can make your manager look good in front of their managers, you are golden.
🤝 Collaboration
As a developer, when you focus on just the what and how you are simply an executioner.
But code is not written for the sake of it. It is written to solve a particular problem and achieve certain business outcomes.
To increase your value as a developer, you must go the extra mile to understand the business outcome of a particular requirement. This requires you to collaborate with stakeholders such as business analysts, product managers, and end users.
When you get any new requirements, take your fingers away from the keyboard and start using your brain. Build your own hypothesis, but don't stop there. Talk to other people who know about the business and approach the requirement from different points of view.
Only after you've gathered enough information, then and only then think of the actual change that needs to be done. Once you've thought through the change, do it.
One of my managers used to say, "Be wide in discussion. But be precise while taking action."
"Success in any endeavor is 90% preparation and 10% execution. The more prepared you are, the more successful your execution will be." - Mark Cuban
📈Career Growth
Whenever someone starts to give me steps to do something, I ask them to stop right there.
"Don't tell me what to do. Tell me the reason for your need and I'll figure out what to do and how to do it."
It might sound snobbish. But in reality, it is liberating.
Knowledge of the why makes you a leader and inspires you to do more. It also boosts your productivity and forces you to go beyond your normal call of duty.
Ultimately, doing more than what's expected of you is the secret sauce to career growth.
Once you start operating at this level, you are no longer a commodity that can be easily replaced.
What's not replaceable is special and you are inclined to attach more worth to it at any given point in time.
Why, What & How are the foundational questions to build our understanding of something, whether is it a software program or a decision to buy something.
Ordinary people pay more attention to what and how. These are the busy workers who do what they are told. For them, success is tied to the amount of work done or the number of hours worked on a given task.
But the extraordinary ones start with why. Most of their time is spent pondering about reasons and outcomes.
Understanding the why of something ensures that you'd do the right thing at the right time. This way you are setting yourself up for success.
"Plan your execution. Execute your plan." - Anonymous
🕹️ Over to you
When you get any requirements, do you try to find the business reason?
If yes, what obstacles do you face?
Write your thoughts about the whole thing in the comments section.
If you are finding this newsletter valuable, consider doing any or both of these:
👉 Support the Newsletter - if you haven’t done so already, consider becoming a paid subscriber.
👉 Share it - Progressive Coder grows thanks to word of mouth. Share the article with your friends or colleagues to whom it might be useful!
Wishing you a great weekend ahead! ☀️
See you later.