Blog

Lessons Learned from Sports Strategy

I enjoy participating in many sports and often sports strategies can be applied to work.  Here are some of the ways I have thought these concepts can apply to software development:

1. Pursuit angles and Racing Lines 

Football Pursuit Angles

In football, playing defense isn't as simple as running after the ball carrier and tackling them.   Often you need to plan your angle of pursuit to catch them, especially if they are a far distance away.

The angle of pursuit is simple concept of picking a line to run so that you will eventually make a tackle.  A pursuit angle is important as just chasing after them directly often will not work if you are slower (which often I am).

In software development, especially with ServiceNow, there are multiple ways to design an application or enhancement.  Picking the best design and planning can make a big difference in your results.  Chasing after a design without an "pursuit angle" you won't "make the tackle".

Racing Lines

Racing lines and cornering are a similar concept to pursuit angles. In racing, picking the correct racing line will give you the fast speed out of corners and give you faster times around the track.  I use racing lines to minimize my driving in my suburban housing development.  :)  Also I do use them in cycling, so that I keep my speed in turns.

Racing lines are not immediately intuitive for me.  It seems it would make more sense to just round that corner.  However after you practice cornering for a while, it is indeed faster.  Same goes for software development, just because it seems like the shortest route, doesn't mean it is the fastest result in terms of project completion.

2. Always carry a backup

I like to go on century bike rides (100mi+).  When you are 50-60mi from home and have a flat tire, packing a repair kit can really make your day.  Another example is the cave spelunking trips I sometimes go on.  On those trips, they always advise carrying three sources of light.  If you are in a pitch-black cavern, miles from the surface, being without light could get you into some trouble!

One "fun" thing to do on a cave trip is to turn off your light and try to navigate your way back to the surface. It is very disorienting, and likely you would die in the cave without assistance.

How does this apply to software development?  Backup your work, backup your database, have a backout plan, have a secondary plan if the first plan doesn't work.  Be prepared.  If you are not, you are shooting from the hip which I avoid due to the stress it causes and outage risks.

4. Tell someone where you are going

I never used to tell people where I was going on my adventures.  I thought it was fun to be lost on my own and struggle to find my way back. However a few times I was stranded greatly and my health was in question.  After a few of those situations, I now always tell someone where I going.

Same goes for software development.  Tell people your plan as much as possible.  Be transparent with our work efforts so that others can see what you do.  It isn't always easy to hear criticism, but it can produce a better application.

5. Learn Difficult Techniques

Rickson Gracie is a Brazilian 8th degree black and red belt in Gracie Jiu-Jitsu.  He was one of pioneers of modern mixed martial arts.  He had to say this about the toughness of jiu-jitsu:

"Where there's discomfort, there's fear," he said. "In these very tough positions, you're in a little piece of hell. And through this daily suffering, you learn to survive in these situations. You have to find comfort in uncomfortable situations. You have to be able to live in your worst nightmare. Jiu-jitsu puts you completely in the moment where you must have complete focus on finding a solution to the problem. This trains the mind to build that focus, to increase your awareness, your capacity to solve problems. Sometimes, you don't have to win. You cannot win. But that has nothing to do with losing." 

I agree with Rickson in that being in difficult situations does help you if one of those situations occurs in the future.  Although you should avoid them to minimize risks at times, you must risk to become better.  You will have failures,  but you will also have success.

I compare this to building an email integration vs building a REST web services integration.  The email integration is easier to build, but it has limitations and reliability issues.  Making the more difficult effort to build the REST web services integration is worth the discomfort of learning how to build it.

6. Use emotions to your benefit

Some of my best programming and management efforts have come from the willingness to prove myself.  I may get annoyed on how an application works or poorly designed process. However focusing that emotion to building improvements is a great motivation tool.

With competitive sports, anger or frustration can work against you.  You can make mistakes not thinking clearly.  However focusing that motivation to winning really helps sometimes.

7. Don't reveal all your secrets

You see this blog.  This is only a minor portion of all the programming I know.  Some of my knowledge is proprietary to the company I am working for, and some of it I just want to keep for myself.  You never know when you might need it.

 With this ServiceNow blog, I can tell a few secrets and get my name out there.  However it is just a little bit of what I know.

You can imagine how keeping techniques and strategies secret is valuable in sports as well. 

8. Use Teamwork

Use all the people on your software development team.  Don't load up on one "player" when you can get more output with using the entire team.  Although great "players" do make great teams, without planning or using teamwork they are often under utilized.

Some of the great Phil Jackson NBA teams used the triangle offense to dominate games and win NBA championships.  Was it his offensive strategies or the players that made that success?  I think it was a combination of those factors.  It should also be noted that you are not going to invest in great players without great strategy either.

9. Create a Bandwagon

Speaking of the Lakers and the Bulls, these two teams had many "fair weather fans" that became fans when their team was winning.  With a large number of fans, owners are willing to invest more in the team because the fans are purchasing tickets and merchandise.  

Although you sometimes will not be liked by all, trying to build a large fanbase can make your software very popular, which in turn will get you a larger budget.

I have started working at companies within a few months had to request 3X - 10X add more licenses to the software.  Managers will get annoyed at my requests for more licenses.  However I was paid to make the software popular.  If I am asking for more licenses, that means I am doing my job correctly.

10. Kill them with Kindness

I am not the greatest at this, but recognize people that are.  With some "volatile" situations and individuals, I often find a person that can defuse these situations with kindness and in turn find a solution.  Same goes with sports.  

In boxing and mixed martial arts, there are customs that you shake hands and fist bump before matches.  Also against much larger or skilled opponents, sometimes you will use funny jokes or talk about your personal life so that they don't murder you.  This also gives you an advantage if they are taking it easy and you are not.