Bruce Lee on Software Development

11 thoughts on “Bruce Lee on Software Development
  1. One of the agile principles is “People Over Processes”. I have never understood why it doesn’t come naturally to everyone.

  2. Mohit,

    Agreed, valuing people can in fact be a struggle! (In some places.) I’ve seen instances in years past where individuals and organizations grab hold of the process itself and valuing it more than anything else, including the people.

  3. You have connected the style concept very well by using Bruce Lee as an example. My view of the logic understood is the following.

    The style you are talking about here and the analogy of Bruce Lee is an individualistic style,i.e its a fighting style. A one on one, or a one on many. The person is concentrated on oneself and one’s abilities. Port this logic on to a developer and you will have disaster written all over in a team working scenario, because you just have a peron who thinks he is ‘God’s gift to Man Kind’.

    Taking in the fighting analogy, the US Marine Corps keep insisting, they rather have a team player than a Rambo. Leaving behind individualistic styles may be suited for some industries (like martial arts) , but in a team working environment, it is better to have a collective effort, for which you should not have much desire to leave YOUR mark behind, but the TEAM’s mark.

    Process only ensures that if in the middle of the ‘fight’ (read project delivery) this ‘Bruce Lee’ quits or ceases to be associated with the project, the rest of the ‘not-so-Brucelees’ should be able to carry on the ‘fight’ and win it. I would bet on a well laid out process any day than an individualistic ‘Bruce Lee’. Being process driven is the only key to scalability and quality.

    But again, that’s just my side of the view !

    Mohan

  4. Mohan,

    Thanks for your comments! Just to explain the logic – motivation really – behind this. Like most things in life, balance is important. The important thing is not to follow any one process or approach to the extent that it blinds you to the full realities of software development. I’m advocating (philosophically in this post) that software development requires knowledgeable, competent, capable professionals. Process alone will not make a team successful. A team of competent professionals following a reasonable process, however, will be successful.

    Bruce Lee stirred things up, and he was genuinely concerned that people were being led down the wrong path; a path that denied the realities of actual fighting by following rigid styles that were both limited in scope and lacked flexibility. Granted, the fighting Lee was talking about was geared towards individual combat. I agree with you that individualistic programmers do not fly well in a team setting, and I fully agree with your comment about the military, Teamwork in military units is essential. But they also demand that each person knows their jobs and can perform up to the expectations of the team. I personally wouldn’t want to go into battle with a unit full of incompetents at my side!

  5. Here are my two cents.

    1. Start with a filed-proven, simple-yet-structured, and tailor-able set of essential processes (like Requirement Gathering, Software Design, Conducting Reviews, Writing Code, Making & Executing Test Cases, Logging Defects & Tracking to Closure, Version Control, Build Management, Delivery / Release Management, Change Request Handling, Bug Fixing, etc.)

    2. Let people adopt these processes in real-life situations

    3. Make necessary changes to these processes based on real-life situation feedback

    4. Goto step-2

    No software engineering methodology prevents you from following the above core algorithm.

  6. Dave,

    I agree with your comments. There needs to be a balance of ‘Person and the Process’. The reason why I commented the way I commented, is the following;

    – S/W development is getting more and more complex with newer technologies hitting the market
    – Everytime there is a new technology in the market, its ‘HOT’ and the price for the skill rises and there is huge labor turnover
    – More over these little ‘Einsteins’ need to be handled with kid gloves, lest they find the company not worthy of their contribution.

    Given the above facts, if the person is also a ‘Bruce Lee’; who knows everything in a team without any processes, then he becomes the real ‘GOD’ for that project.

    In my experience, I have seen that good manpower planning, training and succession planning takes care of these issues. From a S/W methodology perspective, good documentation processes as given in ISO or CMM goes a long way.

    I agree with you that there is no point going in to a battle with incompetent teams. But having a process where supplies and refills come in when people fall would be a life and death differentiator.

    Very good thought / discussion points.

    Mohan

  7. Mohan,

    Thanks again for your comments and discussion. That is what this is all about! I appreciate it.

    Regards,
    Dave Moran

  8. I cant imagine some of the web sites My spouse and i have been brought to by stumblupon (basically today this web page) I was trying to spend a couple of obnoxiously boring 60 minutes away, when stumbleupon landed me here. What a exceptional resource site you have I’m so delighted to have located it I have just passed the last twenty mins working through some of your articles, and have furthermore bookmarked some of them. I will defiantly be returning in order to learn a little bit more when i have atiny bit more time.

  9. Gratulations man, radio gogo talked about your blog on 11 pm. Header was your blogpost Bruce Lee on Software Development | Bridge-Blog. Well work. bye

  10. Your blog is interesting and I keep reading it. Bruce Lee is indeed a good martial arts artist and nothing or no one can change that.