Do Your Job

Four time super bowl winning coach Bill Belicheck has is one of the most well respected coaches in the NFL. He is prepared, an incredible tactician, and great delegator of responsibility.

One of his mantras that has become well known, is to do your job. This means preparation, through repeated practice, watching game film to study both opponents and their own technique and strategy, and strengthening through good nutrition and weight room training. It means above everything else, to be a professional.

Bob Martin in his talk Reasonable expectations from your new CTO also seconds this idea of being a professional. As software craftsman it is up to us to take our jobs seriously. Software is everywhere, and as it become more of an integrated part of our lives, being good and professional at our jobs is becoming ever more important.

Although all the expectations he lists are important, I’ll highlight a few of them here and talk about their importance.

Like professional athletes who hone their craft everyday, we need to train and educate ourselves. Continuous improvement is our goal. Building up our toolset, so we spend less time configuring and more time programming. Reading books, going to conferences, and being disciplined in everything we do.

Not good, but extreme quality in the software we write. Writing quality code means writing code that is clean. The only way to go fast is to write quality software.

Cover for each other means we share the code with everyone on the team. If we don’t understand some code we ask the person on the team to help us with it, or if we wrote it to take time to explain it. If one person on the team leaves for a job or a vacation, everyone should be able to step in and cover. Pair programming is great way to ensure everyone has the ability to cover for each other. It means more domain logic because everyone is working in different parts of the system.

Mentoring is extremely important to me because I would not be where I am at if it were not for mentoring. My incredible mentors and teachers Turing School of Software & Design. My now wonderful mentors @8thlightinc. Someone that can give you their professional and valuable insights on not only how to do something,but why we do those things accelerates your learning.

Continuous aggressive learning. I would argue that this really one of the most important things in life. Being able to teach ourselves to learn is the ultimate life hack. If there is something we want to get better at, there is almost nothing limiting us.

When that comes to programming we have a wealth of resources. Books, conferences, other programmers, and the almighty power of the internet! Continuing to learn is important for us as programmers because we are in an industry that is moving at an incredible pace of speed. Much like a surfer we have to be able to read the waves of different languages, and hop on whatever wave is up next. Maybe today it is JavaScript, maybe in five years it isn’t JavaScript. What if it’s exlir? What about the ever increasing need for mobile development? We have to continue to learn new material so we are prepared for when that happens.

Remember it’s a personal decision. If you see messy code it is up to your clean it up! See a test that needs to be written, write it! Need to learn devops for your next client, then learn it!

Now a quote to motivate and remind us, that everyday it is our goal to do the things necessary to become great at our craft.

“Success isn’t owned. It’s leased and rent is due every day.” ~ J.J. Watt