Hi, I’m Joe, full name József Miskolczy, lead frontend developer turned author. I wrote this book with a bold vision: to level you up as a software engineer, regardless of the tools you use and the industry you work in by teaching you how to make the Best Tech Decisions Ever™. Here’s why and how.
My view of software development has changed in fundamental ways as I transitioned from a developer to a technical leader role in 2018. That experience inspired me to create a training for anyone who wants to make the same transition. While doing my research for it, one topic turned out to be way more significant than I initially thought. I discovered how severely we are missing out on an essential skill of our trade: Value Based Decision Making.
I know it sounds like a fancy managerial term or some academic theory, but it’s neither of those. It simply means the insight necessary to make tech decisions with real-life outcomes in mind. It’s the ability to give precise answers to questions like: If you switched your current database / UI framework / [insert any other tech] to a different one how would that affect the profit made by the company? Or in case you adapt that new shiny tool everyone is so hyped about, how much would the users benefit from your improved productivity? Value Based Decision Making is the ability to make tech choices that take the full spectrum of consequences into account.
Many programmers don’t know how to think about the financial or human implications of our work. In part, it’s thanks to a widespread perspective of software development where it’s not our job to care about these factors at all. But that’s simply not true! This mindset limits the effectiveness of our everyday choices and, consequently, the profitability of the companies we work for. That is an issue worth addressing!
I'm of course not the first one to discover something similar. It also doesn't mean we are generally failing to do good work in this area. There are lots and lots of great developers and companies out there making brilliant tech decisions.
What surprised me was the fact we didn’t yet identify and name the underlying principles of their approach to technical decision making. Even more so because there’s nothing hard to understand involved. Yet we still lack a system that anyone can follow to align tech decisions with the real interests of an actual project. Learning how to do that will definitely make you a better software engineer!
Now you might think: OK, this guy probably wrote a book for Software Architects. While it definitely provides more value as the impact of our decisions scale up, in no way it is exclusive to leaders. On the contrary, I wanted to make it useful for every developer, regardless of their experience or role in an organization. Why? Because:
Choosing the tools to use and the way to use them are the most impactful decisions software developers can make.
If you think about it, all of our work choices boil down to what to use and how to use it. Even the simplest questions, like deciding between a
whileloop, are in essence a question of which tool to use. If you step up the game to organizational level adoption/standardization of technologies, the question is still the same: What to use and how to use it?
Based on this, you can see that every developer is making tech decision all the time. Their scale might be different, but the principles behind making good choices stay the same. That’s why I believe all of us can benefit a lot from learning about them.
There's one crucial, yet chronically underrated element in our decision-making process: context.
A clear understanding of the context is the foundation of every good decision.
This is one of the key ideas of the book. By showing you the full context of software development and the ways our work connects to each part of it, the outcomes of your decisions will automatically improve. I fully believe in this. Why? Because software engineers are excellent at problem solving and process optimization. If you see the big picture, you will naturally apply those skills to the entire system, leading to actions that are in sync with the real goals of the project. (Of course, I will detail the exact practical ways how you might do that.)
Having a good mental model of the entire landscape is an important prerequisite to make that happen. We will build that up gradually over the chapters, as I teach you the timeless and technology independent principles behind making the Best Tech Decisions Ever™ and construct a system for universal software technology evaluation. As the cherry on the cake, we will expand it to a set of practices (like a complementary work methodology) you can apply during everyday development to ensure projects stay on the right path all along, because making the best tech decision is not a one-time task but a continuous process.
Besides spreading the practical knowledge discussed in the book I have one overarching goal with this material. I want to challenge how we as an industry define the role of a software engineer and contribute to transforming it. The business world is not the same as it was 10 or more years ago. With the ever increasing abstraction level of new technologies, the advancements in AI for code/software generation and the increasing popularity of low-code/no-code solutions a change in the perspective of our responsibilities is already happening. The companies and professionals that embrace it are building a serious competitive advantage. Simply having great coding skills has never been enough to succeed in this field but in the next step of software development evolution it's necessary to expand our view even further beyond the technical. This is the right time to explore the horizon and become a Full Context Developer.
Thanks for joining me on this journey, I’m humbled by your choice. I gave my best to create a book that delivers real value for practicing software engineers. I hope you will gain a lot from it!
— Joe (József Miskolczy)