What makes a great developer? A story of an extraordinary blacksmith
It’s the year 1602 and Gordon is the best blacksmith in the country. Lords from everywhere are making the journey to his smithy to order one of his fine swords.
Today, we are taking a look why Gordon is such an extraordinary blacksmith, and more importantly what you can learn from Gordon to become a better developer. There’s an old saying that a great programmer can be 10 times as good as a mediocre one.
Gordon was not a programmer. So we are not focusing on the details of coding in this article but on the absolutely fundamental attitudes of a great craftsman. They are still roughly the same, even 400 years later.
So what makes a great blacksmith, and therefore what makes a great developer?
(S)he loves what (s)he does
You can hardly beat someone who truly loves what he does. Edmund, the neighbor-blacksmith of Gordon was 100% dedicated to becoming the best, but he lacked fun and joy at his craft. Therefore, he wasn’t as creative, curious and motivated as Gordon in the long term. Edmund’s swords were ok, but they didn’t put that bright smile on the face of his customer the way Gordon’s swords did. Loving what you do fuels three important attitudes for a good craftsman: curiosity, creativity, and long-term motivation.
If a craftsman does not love what he does, he is usually working for money or prestige. Decisions that don’t increase money or prestige in the short term are therefore often neglected. A person solely driven by money/prestige would seldom dig into a totally new area where he lacks knowledge. Being novel means less money and prestige in the beginning after all.
People who love their craft, on the other hand, cannot wait to explore new areas. They will try new things, take a chance and fail, and play around with whatever else is out there. That keeps them on top of the industry in the long term.
Great blacksmiths and great developers are curious how stuff works and always ask “Why?”. Based on the resulting fundamental understanding of their craft they can push the industry forward and create new innovations.
At any creative craft, if you don’t enjoy what you do, you will never be as playful as someone who does. The best ideas come when you walk home from work and your brain just cannot stop thinking about the exciting problems you are working on.
A passionate craftsman’s motivation is not a boss screaming at him; it’s neither money nor prestige. His motivation comes naturally the process of building and creating new things. That keeps him motivated even after several years of up and downs.
(S)he is humble
Gordon was a humble guy. He was convinced that he was far from being the best (which ironically eventually made him the best). Therefore, he never stopped learning and exploring. Walking to fellow blacksmiths to ask them for some of their best tricks was part of his weekly routine. Gordon encouraged critics from fellow blacksmiths to improve his craft.
If you become arrogant, you stop learning. You believe you know everything and therefore fail to keep up with trends and new insights in your area. So being humble is not just a nice attitude for making other people like you. It is indeed a critical business attitude if you want to compete among the best.
(S)he is courageous and honest
Often high lords or kings came to Gordon to order swords with a hard deadline. The next war was around the corner and they needed 1000 swords by the end of the year. One of Gordon’s most appreciated qualities was that he always pointed out clearly and transparently what he thought. If 1000 swords by the end of the year just weren’t possible, he stood up to the king and said:
“Your Grace, I apologize but we can only create 500 swords within that time for you!”
This would surely upset some of the high lords. But you know what upsets high lords even more? Getting ready for war and hearing the news that 500 swords are still missing. People got killed for that kind of stuff.
Being honest includes admitting your own mistakes and taking responsibility for them. If you fuck up, tell the others and learn from the mistakes. If you are working in a great team like Gordon’s, they won’t judge you but appreciate that honesty and courage.
Being open and honest with your customers and teammates is critical for having long-term success. It takes courage. It sometimes hurts in the short-term. But it earns you trust and respect in the long term. This trust and respect leads to loyal customers, team members, and even friends.
(S)he is a team player
Gordon always knew that the success of the smithy was only the result of a team effort. Therefore, he took the time to teach new smiths what he knew. His hope was that they would one day become even better blacksmiths than he was now.
New smiths valued that he explained stuff in simple terms and no gobbledygook. He was always open for questions and didn’t judge people when they made mistakes.
Edmund, on the other hand, preferred to work alone. He hated to explain stuff to other people. They wouldn’t get it anyways. That’s why Edmund’s smithy was only able to take small of orders of 10 swords or less.
Gordon’s team had no problem getting 100 swords done in the same timeframe. People loved to work with Gordon. That made it much easier to complete customer orders successfully.
(S)he is extremely customer-focused
Last but not least, Gordon was extremely customer-focused. He loved his craft, he loved to learn new things, but he also knew: All of that is for nothing if he cannot deliver great swords in the given amount of time by the lords. You can make the greatest sword. If your sword is finished after the war started, it’s too late.
Gordon was relentlessly focused on meeting the deadlines of his customers. On one hand, that involved communicating realistic time frames for orders in the first place. On the other hand, it means being ok with trade-offs from time to time. Perfectionism is a very common attitude around programmers and surely blacksmiths, too. In the end, you need to deliver. A super perfect but only 80% finished sword or software piece is useless.
Another thing that Gordon always kept in mind was:
“Don’t reinvent the steel hammer”
He didn’t create his own custom hammers and tools to craft swords if he didn’t need to. He just knew how to use them very well. His friend Humphrey was much better at crafting these tools. So Gordon happily went to his store to buy the tools from him. Gordon’s customers didn’t give a horse’s crap about the hammers he used, they wanted to see great outcomes.
There might be some lords who don’t have time pressure. They just want a beautiful golden sword for their balcony, no matter when it’s finished. That’s fine, too. The point is not about generally hitting deadlines but about knowing the needs of your customer. Most customers have important deadlines though.
Get in the head of your customer and keep his needs in mind while you’re crafting. Some kings want a golden sword for their balcony, some warlords want 100 mediocre swords by the end of the week, some Gladiators want one single outstanding sword to beat their enemies in the arena.
Know what your customer wants, listen to him, and do what it takes to deliver it.
The descriptions of what makes a great craftsman stem from our experience in working with all kinds of developers throughout our life. These points seemed to matter most when it comes to delivering great products. At QuickBird Studios, we make sure that everyone on our team embodies some form of Gordon and adheres to these values and principles. That impacts how we train people as well as how we make hiring decisions.
Most articles for developers focus on delivering technical knowledge. That’s important as well, but in our experience, the mentioned values and principles are as important, if not more important than technical knowledge. A developer that loves what he does, who is humble, courageous, a team player and extremely customer-focused is a developer who makes great stuff happen.
Are you a Software Developer?
Do you want to work with people that care about good software engineering?
Join our team in Munich