Bruce Lee on Software Development

March 12, 2010

Before his untimely death in 1973, Bruce Lee managed to shake up the martial arts world with his theories of combat and training. Why? Because he felt – much to the chagrin of his peers – that the traditional martial arts were too rigid and formalistic to be practical when applied in an actual fight.

Lee referred to this rigidity in the martial arts as a “classical mess” that wasted time and energy. His real concern was that concentrating on a specific style as the only way of fighting prevented someone from becoming a truly capable fighter. This is because focusing solely on any one style of fighting restricts your options.

For example, a style like karate leads to specialization with punching and kicking techniques, but a karate man is unable to handle a wrestler if the wrestler succeeds in getting the karate man on the ground. Conversely, a wrestler is helpless against a karate man if the karate man is successful at keeping the wrestler at arm’s reach.

Bruce Lee was regarded by many as being years ahead of his time. And while computers were in their infancy by today's standards, much of what Lee advocated regarding the martial arts can be applied to software development. For instance, do we spend too much time and energy on our own stylistic “processes,” losing sight of what software development really is?

As an industry, we’ve certainly had our share of silver bullets. We’re not alone in this respect. The martial arts industry has its silver bullets, too. Pick up a martial arts magazine and peruse the ads. You will find someone advertising a “fighting method” that is guaranteed to make you a “killing machine” by using one simple move. No need for all of that hard training!

If you believe that, I’ve got some land to sell you… Or perhaps a “killer software development productivity technique,” hmmm…

Getting back to the subject at hand, it is interesting to examine how Bruce Lee resolved the stylistic issues involved with the martial arts. His journey resulted in the development a system that he called Jeet Kune Do.

Bruce Lee was clear on one point, stating: “I have not invented a ‘new style,’ composite, modified or otherwise that is set within distinct form as apart from ‘this’ method or ‘that’ method. On the contrary, I hope to free my followers from clinging to styles, patterns, or molds.” In short, Jeet Kune Do is not a style of fighting, it is a system.

Lee stressed that you didn’t want to assemble techniques from a variety of styles and slap them together to form a new style. The goal as a martial arts practitioner means that you should discover what works best for you, because what works for one person will not necessarily work for another person.

Lee was all about exploration and continual learning. Recognizing and respecting that everyone was different, he felt that practitioners should interpret and evaluate techniques for themselves, adapting the techniques is necessary to meet their own circumstances. The caveat was that those decisions should be based on realist combat, because those decisions should have a strong basis in reality.

Lee sought to understand the true nature of fighting; he sought to understand what each style had to offer, but in doing so he strove to avoid being trapped by the limits of any one style. His approach of “absorbing what is useful” and discarding anything that was merely ritualistic is great advice to this day.

Bruce Lee’s research and thinking was all about how to become a better fighter. He wanted to understand the knowledge, skills, and attributes that went into being a great fighter.

When it comes to software development, it’s all too easy to devote time and attention on the process – the style – of software development, and too little time focused what it takes to produce great software in the first place: good, capable people and teams using proven, professional practices.

Does process alone make a team a high-performing team? What advice would you have for someone who wants to become a better programmer? I would HOPE that it isn’t along the lines of, “Follow process XYZ and you will become a great programmer!”

In the end, follow Bruce Lee's advice: Examine what others have to offer, take what is useful, and adapt it if necessary. I'll close with an old quote: "The style doesn’t make the fighter, the fighter makes the style." Or should I say: The process doesn’t make the developer, the developer makes the process.

A few references about Jeet Kune Do and Bruce Lee:


johnbender said...

"...and too little time focused what it takes to produce great software in the first place: good, capable people and teams using proven, professional practices."

It seems to me that "proven professional practices" is in opposition to the freedom described in the rest of the article.

March 13, 2010 at 9:35 PM
Dave Moran said...

The idea is avoid over-emphasizing process and procedure over other important qualities. Professional practices are important because they have been vetted in real-world scenarios. And by practices, I specifically was thinking more along the lines of TECHNICAL practices (OOD/OOP, TDD, etc.) when I wrote that line. You don’t want to ignore what others have spent time and effort developing and refining. It isn’t practice that makes perfect, it is perfect practice that makes perfect.

If you develop bad habits, not only will those bad habits prevent you from getting better, it will be difficult to unlearn those habits later. Look towards the experienced professionals to provide expert advice and guidance. I’ve seen actors that portray boxers punching heavy bags, dropping their hands when they punch. A professional fighter would not practice that way, it reinforces a bad habit that will get them killed in the ring.

The other real danger is that people have a tendency to discard things without understanding them or even trying them. This includes the process of developing software. We’ve adopted Agile/Scrum development, and I’ve heard and read that all too often, teams are adopting Scrum, but… They’ve discarded important aspects of Scrum without fully understanding or working with what they’ve chosen to ignore. In these cases, people are too rooted in what they are already doing, prematurely discarding what others have to offer.

March 14, 2010 at 7:25 AM

From philosophy to motivation to self-help, we look at forty of the most introspective and interesting Bruce Lee quotes that will change your life! bruce lee quotes

September 30, 2014 at 6:20 AM
Joseph Harrison said...

If you see their developments in software you would almost get more things to your level and to your interest that you can't separate the various skills played there and helped almost. essay writing service online

October 12, 2015 at 8:45 AM
Tony Graid said...

If you see their developments in software you would almost get more things to your level and to your interest that you can't separate the various skills played there and helped almost. essay writing service online

October 13, 2015 at 3:28 AM
Frank Robinson said...

The best decision if you need some professional help with web developing. You can look for some help of Nix solution is one of the best web developing company in the world so if you need some try to and I'm sure they'll find the right solution for your eCommerce project. Good luck.

January 14, 2016 at 4:54 AM
NancyRichard said...

Our software development team draw on decades of experience to guarantee quality at every turn.

February 29, 2016 at 2:28 AM

I have read your blog, it was good to read and I am getting some helpful data's through your blog continue sharing.. software development

October 20, 2016 at 10:20 AM

Post a Comment