Who is Nick Saban?
Some of my non-American readers and those who don’t follow American college football (not soccer, or what others outside the U.S. call ‘football’, but American football) will not know who Nick Saban is. Nick Saban is (at the time of this writing) the head coach of the Alabama Crimson Tide.
He has won national championships with the following teams:
- LSU Tigers: 2003-2004
- Alabama Crimson Tide: 2009-2010, 2011-2012, 2012-2013, 2015-2016 (with a championship appearance in the 2016-2017 season)
- They are at least going to the championship game in 2017-2018 against the Georgia Bulldogs (which will have been played by the time this is published, but not at the time that I’m writing it).
As an Auburn fan (the rival school to Alabama), I don’t like Alabama that much. (Sorry – if I don’t at least write that, some of my peers will heckle me :-).) However, I have a great deal of respect for their current coach.
Nick Saban is, without a doubt, one of the greatest college football coaches of all time. What is his secret? The ‘process’.
Using a Process
Saban states he focuses the team on getting better every day. Rather than focus on results, focus on getting better. You can read more about his processes at the following links:
While he doesn’t reveal everything about his process, he does have one. He promotes it on his team.
If you miss a curfew? You don’t play.
Not trying your hardest? I’m sure there’s a plan for that too.
If you listen to his interviews before, during, or after games, many times he refers to very basic ideas.
- We’re just not blocking, so we aren’t running the ball well.
- We’re winning, but we have missed several opportunities.
- We aren’t tackling.
Whether the team is doing well or poorly, Saban is still focused on how well they are following a process. The score is less relevant to how well the team is following their principles.
So even a 50-0 victory could be a failure, depending on if the team executed well or not.
Taking This Idea of Process to Software
Just as Nick Saban uses a plan on the football field, we use processes in software development.
Hopefully all these are standard at your company:
- A known method for committing code to source control
- A defined way for releasing code
- A process for testing code, preferably using some form of automation and continuous integration
If you don’t have one? Create it! If you have the authority to make everyone follow a process, get their input and create one. If you don’t, get with the people who do to create one.
Why should you even care? Without a process, you can’t improve what you are doing (since it is not repeatable).
Having a plan helps prevent you from wasting your time thinking about problems that have already been solved by others. For example, rather than thinking about how to release code, spend your time solving business problems. Several other companies/developers have already solved releasing code and have documented it (Docker containers, Continuous Delivery with Ansible, creating tags for releases in source control, etc.).
Taking It a Step Further
So we’ve seen common processes that many software developers use. But what about some more personal or company-specific ones?
- No code is checked in without a code review.
- Whenever a bug occurs, determine why it happened and how to prevent it. That new knowledge becomes a new part of the process.
- For every retrospective, we go back after the next sprint to see what we actually changed. If it was nothing, user stories are created to make sure we are implementing lessons learned.
Software process does not need to only be software-focused. You can use lessons to make yourselves better. How can you get better each day? How can you automate something that used to take a lot of time? Can you document something that everyone does differently?
The very best use these well-defined processes to make them better. For the mundane tasks, these take little thought as there is a document or some form or automation to do it. For the bigger picture things, process is used to make it better.
Start doing what the best do and use well-defined plans at your company and in your life!