What Java development has to do with Iron Maiden, you may ask…
(What? Who would even ask that?)
It was January 2014, I had the opportunity to introduce on the stage an idol. Many years before, as a teen, I had studied English trying to understand what he was saying…
I was on the stage of Campus Party Brasil, talking about Java, software development and the developer career, to entertain the crowd while we waited for Bruce Dickinson, lead singer from Iron Maiden.
(This was the closest I will ever get to open for Iron Maiden…)
Bruce gave an amazing presentation about entrepreneurship and the skills needed to succeed.
Many lessons stuck with me that day. But one in particular was eye opening.
He was talking about what makes someone a top performer, in his case, a literal Rock Star…
The difference between a rock star and a normal musician,
it is NOT the music.
Both need the music to be musicians.
is the rest.
The difference are the things the rock star does to be a rock star: the show, the focus on the audience, the entrepreneurial and negotiation skills, and more.
The rock stars musicians take control of their artistic career and walk their own path, to get where they want to be.
Be a Rock Star developer!
We can apply the same to our world of software development.
The difference between a rock star developer (non-literal in our case) and a normal developer is not the code.
Both need to have coding skills to be developers.
The difference is the rest.
A rock star developer is someone that is respected and recognized, that people want to work with. A rock star developer gets called to work on amazing projects, with amazing people.
I believe there are some skills that will push you from being a good, day to day developer, and take you into the journey of becoming a rock star developer.
That way, you take control of your developer career, and will forge your own path, that will take you where you want to go.
What are those skills?
#1 – Listen
What makes us developers is our ability to solve problems using code.
And the most important skill to be able to solve problems is to listen.
Listen to your customers, to understand the real problem that needs to be solved.
Listen to your colleagues to know what is being done, and what was done before. Listen to their difficulties and ideas.
Listen to previous developers and developers of the code and the libraries you use. Listen by reading their code and understanding what they did.
Listen to your boss and your team leaders, to get clarity of what is expected from you. and what is their definition of success.
Listen to your team, to get clarity on what they are struggling with, to understand their goals and dreams.
Don’t just listen apathetically…
Listen actively. Ask questions. Dig deep. Take responsibility for finding the information you need to succeed. Take responsibility for the success of your team and your project.
#2 – Grow Communities
Software development is a collaborative effort. The idea of the lone “hero developer” that solves the world’s problems is as much inspiring in movies as it is untrue in real life…
When you develop software, grow communities around your code!
Grow communities inside your company. Promote sharing among your teams. Promote co-ownership of projects. Incentive people to help each other.
Grow communities connected with your code. Contribute back to open source projects you use. Open your libraries and your tools. Join standard discussions.
Grow communities with your customers. Implement Agile methods that include customers and end users in the development process.
Grow communities of developers. Participate in events and user groups. Share your experiences and challenges. Improve the ecosystem around you.
Grow communities by mentoring peers and novices, so they advance faster and get to your level sooner, increasing the expertise of people near you.
Being a giver and paying it forward is what makes communities succeed. The more you work together, the better a developer you become.
#3 – Walk the Path
Developers are fixed on learning, and are usually overwhelmed with the amount of new stuff we need to learn.
It is not about learning.
It is ALL about the skills.
And skills are only acquired when we do it.
You may need to learn the trail to get where you want. But it is only when you walk the path that it will actually take you there.
Walk the path by implementing small, useful projects with the new technologies you are interested.
Walk the path by recognizing the value of mistakes. We can’t succeed if we are afraid of failing.
Walk the path by doing it and then sharing your results, so others can follow your lead and succeed too.
Walk the path by being consistent and doing it every day. It is not about being right or doing correctly. It is about doing it a little better every day.
As the saying goes, anything worth doing is worth doing badly first.
Don’t wait until you know, until you are good, until you have mastered to start doing. Walk the path by doing it first, no matter how badly.
Mastery is the result of the walk. It is neither the destination, nor where the path starts.
#4 – Build Trust
Trust is the backbone of our industry…
Even before you type the first character in your projects, you trust all the developers that build everything you take for granted — your language, IDE, libraries, and the whole infrastructure you depend on.
The same way, others will trust what you build.
Give your best effort to earn and deserve that trust.
Build trust doing things not only in your own interest, but by looking for the interest of others.
Build trust by being humble. Accept that you don’t know everything, that you may be mistaken (and will make mistakes), and that you need the help of others.
Build trust by considering the possibility that others are better than you. Work with them, learn their strengths and respect their weakness. Help everyone grow.
Build trust by doing your best. Take responsibility for your code and your career. Try to always improve your skills and put your best effort into whatever you do.
Build trust by being transparent and helpful. Strive to write clear, understandable code. Help the future coders build on top of what you did.
Build trust by speaking the truth. Learn to negotiate and reach agreements. Say yes to the things you will actually take responsibility for. Learn to say no the right way.
When people trust you, they call you to work on amazing stuff…
#5 – Live in the Present
We want to do so many things, and go so many different paths… The hardest thing of all is to take action here and now!
Practice taking action NOW.
Many people tell me how they will change careers, or how they will become better developer, or how they will be this or that, as soon as they get a new job, a new boss, maybe a new company that gives them the opportunity…
To become a better developer is not about being better in the future. You have to live here, in the present. Be a better developer right here, right now. Where you are today. Get better with whatever you have. Now.
Live in the present by taking small steps today and being consistent. It is not about doing big things, it is about doing small things every day!
Live in the present by reducing worry and stress. There is no point in wasting time worrying about what’s going to happen tomorrow. Work to get today done well.
Live in the present by understanding the past. The legacy code you are working with was built for a reason. It is arrogance to believe you could have done better in the past! Learn from it.
Live in the present by building the future. Don’t walk blindly into your future path. Have a clear vision of what you want to accomplish and where you want to go.
Live in the present by being flexible and solving problems today. Things change. Problems pop up. Plans get dismantled. That’s real life. The more flexible you are, the less suffering you will feel and will create.
When you live in the present, you focus on what you can do right now, instead of blaming yourself and others for what was not done or worrying about what still needs to be done.
Start walking your path today…
Those are skills that don’t come naturally. We need to work on them.
But they are what you need to turn your amazing technical skills into a powerful and fulfilling career. They will take you to rock star level.
To help you build those skills and take action today, here is my Christmas gift for you…
Take action today by actually reading it!