And you don’t need any specialist skills to start today
When I first began my engineering career, I would find myself chasing new technology like a dog chases cars. Chaotic, random, and without any purpose or direction. I just wanted to try out the new shiny thing!
Then one of the seniors would ask me one question and my entire argument would fall to pieces. Why? Because senior engineers are always looking for two absolutely essential properties.
This is not a simple question, but you don’t need to be an outright expert to answer it. Does your company already have the capability this new technology offers? Do you really need this?
Case study: React
I wanted to work with React; I remember pitching it to the senior engineer on my team. He went away, did some thinking, and he came back with a simple statement:
“React offers faster rendering time and a cleaner, stateless code base. But we don’t have problems with our frontend code base right now, and faster page load times aren’t going to have any business benefit for us.”
His logic was pretty solid. He’d gone and looked at the benefits of React (this was a few years back) and looked at the context of the company. I was frustrated, not because I thought I was right, but precisely because I knew I was wrong and he had thought about things much more clearly.
When I look back, I realize that he had simply gone through a basic economics exercise and asked himself a couple of questions:
- Would this capability bring us new money?
- Would this capability save us existing money?
- If yes to either of the first two questions, does the engineering cost stack up?
- Can we already do this without the need for a new tool?
You don’t need years of experience for this
Don’t wait for your seniors to ask themselves the question. Ask yourself the question, and use these questions as a framework for your investigations. When you’ve got answers to the above questions, you know you’ve got a decent argument to go in with. That’s a hell of a lot better than “Well, it seems cool.”
This is, without a doubt, the classic senior thought. Roll forward the clock and try to visualize how this new technology is going to grow. But what does it mean when we say “Will it scale?”
How much is this thing going to cost?
Right now, the license cost is $15/month and that’s nothing… right? So have a look at the pricing model and understand where that $15/month comes from. Is it per developer? Per repository? Per active contributor? Do some basic arithmetic to understand where those costs are gonna come from.
Is this thing going to perform?
It might be running fine on your trial version, but is this tool going to survive when all of the engineers in your company are working on it? If it’s a new piece of infrastructure, is it going to handle all of your production volumes? Have any large companies used it? Are there any blog posts that aren’t obvious marketing content? These are the types of questions that come to an experienced mind when they’re faced with something new.
What will the operational overhead be like?
Are we going to have to maintain this new tool? How are we going to upgrade it? How are we going to organize the concepts in the tool? For example, topics in a Kafka cluster or pipelines on a Jenkins server. Operational overhead is, ultimately, the thing that will cost you in the long run.
Do we have the skills we need to work with this tool? How hard will it be to develop those skills?
If you want to introduce Kafka as the strategic messaging solution across your architecture, you need to make sure your engineers can actually work with Kafka, right!? So how expensive is Kafka training? Can the engineers self-teach? How much time will it take?
All of this is money! So factoring in some of these questions into your decision making is emulating the exact kind of thought that an experienced engineer will consider when looking at something shiny and new.
Consider the economics, and think about scale. These are the hallmarks of senior thought in an engineering company, and they are the difference between wise decisions and unwise decisions. Simple! Start practicing these checks today, and you’ll be thinking of them naturally in no time!