The Simple Leads to the Spectacular
Steve Kerr, head coach of the record setting Golden State Warriors (my local Bay Area NBA basketball team), has this to say about what the team needs to do to get back on track (paraphrased):
What we have to get back to is simple, simple, simple. That's good enough. The simple leads to the spectacular. You can't try the spectacular without doing the simple first. Make the simple pass. Our guys are trying to make the spectacular plays when we just have to make the easy ones. If we don't get that cleaned up we're in big trouble.
If you play the software game, doesn't this resonate somewhere deep down in your git repository?
If you don't like basketball or despise sports metaphors this is a good place to stop reading. The idea that "The simple leads to the spectacular" is probably the best TLDR of Keep it Simple Stupid I've ever heard.
Software development is fundamentally a team sport. It usually takes a while for this lesson to pound itself into the typical lone wolf developer brain. After experiencing a stack of failed projects I know it took an embarrassingly long time for me to notice this pattern. It's one of those truths that gradually reveals itself over time.
Individual talent and performance matter, but what seems to matter more is working together towards a common goal (suggested theme music). If you've ever been on a great team you know how fun and productive software development can be. And, as is more likely, if you've been on a bad team, you know what a soul sucking, life killing job software can be. It's a world of difference.
The Warriors are having a magical season. They are chasing a record once thought nearly impossible to break: a 73 game winning season. This year they set the record for the longest home winning streak in NBA history. Odds are they will win their second NBA championship.
The Warriors play a different brand of basketball than most teams. They play a team game. It's a flowing motion oriented game emphasising passing and an intimate coordination between the players. It can be beautiful to watch, a refreshing contrast from the slow individual-centric style from the 1990s. Here's a good example.
But after the NBA All-Star break the Warriors have been in a slump. A winning slump, but they aren't playing as well as they were earlier in the season. Why? Probably because the 82 game NBA regular season schedule is grueling. Compounding the problem is that the Warriors have the longest travel schedule of any team in the league; and every team is gunning for them. The Warriors get their opponent's best game every night.
Developer's will know what this is. It's a death march. Mental and physical fatigues takes over and everything goes to hell. You lose focus. You can no longer play at a high caliber. You stop taking care of the ball. Turnovers increase. You stop hitting the boards and getting rebounds. Fast break opportunities decrease. You stop playing solid team defense. The other team's shooting percentage increases. You stop making the extra pass. Assist totals decrease. You stop hustling. All the dirty work doesn't get done.
A system that once produced super-linear results transforms into a sub-linear system. How do you get back on track? Steve Kerr's answer:
What we have to get back to is simple, simple, simple. That's good enough. The simple leads to the spectacular. You can't try the spectacular without doing the simple first. Make the simple pass. Our guys are trying to make the spectacular plays when we just have to make the easy ones. If we don't get that cleaned up we're in big trouble.
Chuang Tzu's story of The Dexterous Butcher comes to mind when I read this quote. And like the Tao, simplicity can not be defined, but it can be experienced, and "make the simple pass" is as good a way as any to think about it.