As a professional developer and a freelancer, I've collaborated with many different people on numerous projects. Some of them have been successful, some of them have failed. During the failures, I always try to reflect and find faults in my actions, but sometimes I still find myself blaming others. Such a mindset of mine was truly challenged by a book called "Extreme Ownership"(Jocko Willink and Leif Babin) which showed me that even though mistakes could've been made by others, it's still me who could've taken the action to mitigate risks.
In this article, I'd like to discuss what is extreme ownership, why it's good, how it will help you in your career as a developer, and bring some specific examples of how to utilize it.
Extreme ownership means taking ownership of everything that's going on in your life and career.
It means not blaming others for failures. It means asking "what I could've done better" as the first thing when things go south. It means preparing and planning as well as you can. It also means asking the necessary questions and explaining your plans to others. And most importantly, it means having the humility to admit and own the mistakes you make.
The mains reasons why practicing extreme ownership is beneficial:
- It puts the focus on finding solutions instead of blaming
- It makes you analyze your failures
- It makes you take an action
- It encourages you to plan ahead
- It makes you ask questions as you want to mitigate the unknown
- It helps you to build trust with others as you're honest and transparent, admitting your failures
- It makes you want to improve yourself as there's always room for that
- It makes you humble as you understand that even with great preparation, failures can occur.
How can a developer implement Extreme Ownership in everyday life?
There are many ways one can implement extreme ownership. Let me bring out some of them.
- Is the code quality in your team's projects too low? Start with yourself - make sure the code you produce is following the best practices and is well tested. Set an example! You can also raise a discussion and agree on routines like PR reviews, automated testing, etc.
- You do not agree with the architectural decision in a project? Find out why the current decisions were made and explain in a friendly manner why you do not agree. Propose a better solution with evidence.
- Inexperienced developers in the team? Take it upon yourself to mentor them by pair programming and encouraging them.
- Did you produce a bug? Take responsibility. Find the solution as fast as possible. Analyze what happened and let it be an educative example to others.
- About to join a new project? Ask constructive questions about the business and technical goals. Make sure that you(and other developers in the team) understand the objectives.
- Do product managers have a hard time scoping the project? Help them by asking questions, discussing possible solutions, and not giving unrealistic promises.
- About to lead a project? Make sure every single member of the team understands the plan and goals.
I could go on and on bringing examples of how you can take ownership to improve yourself and the team. My main message is that whenever you do not like something or things do not go as planned, look in the mirror and ask yourself: "What can I do to improve the situation?"
Let me tell you a story from my own career.
A month later, I was promoted.
I was a junior front-end developer, although, in our team, everyone was expected to do full-stack development. One day I took the simple task of implementing an endpoint in our web application's backend. Being quite frustrated with the state we had there, I took the liberty of spending some extra time to refactor the whole system. Later, in the code review, one of my teammates asked me "Wait! You're still a junior? Junior's don't write code like that". A month later, I was promoted.
If you see problems, use it as a chance to take action. If you make a mistake, be open about it, learn from it. And help others. Eventually, people around you will notice how valuable you are and thus, new opportunities will open.
When you feel the time's right, all the actions you've taken can be used as a reason to ask for a promotion.
My main message is that you are the person that should control your life. If you want something to be done, take action! If something went wrong, look in the mirror! Don't blame others, don't take the victim mindset. It will waste time that could be used to find a solution. And as a developer, there are many problems to be solved!
Last but not least, if you want to learn more about Extreme Ownership, I strongly recommend reading Extreme Ownership by Jocko Willink and Leif Babin. It's a book that gives tons of tips about extreme ownership, team leading, and communication. Most of the ideas in this article are also from that book.
What's your opinion on Extreme Ownership? Should developers utilize it?
If you have your own examples of how taking responsibility has helped you in your career, please share it with us :)!
Oh and...! If you are interested in coding, growth mindset and are willing to share your experiences, ideas, then please do PM me on Twitter :)!