Time to take the Takes or the Time In Between Takes?

    0
    660
    views

    It’s not the time it takes to take the takes that takes the time; its the
    time it takes between the takes that takes the time.


    – Steven Spielberg


    Spielberg’s observation does not apply only to movies. Ask any experienced software
    development professional and they will understand the delays between bursts of
    productive software development.


    Seems like way too much time is wasted in software development just waiting for people
    to say or write something about your requirements, design or your latest release!


    Plenty of opportunity for Lean Efforts, I would say!


    Let’s look at someone who does it right!


    Stumbled upon this notes on a presentation given by a Google Insider to the Silicon Valley
    Product Management Association in 2003.


    All those Buyers and Sellers of Outsourcing/Offshoring services need to pay particular
    attention on what this is and why Google is so successful.


    Some caveats first – I am not against a Formal Software Development Process. Far from it!
    Without a formal process you are dead! With an overly formal process you are even more
    dead! That’s the problem.


    Problem is that a formal software development process or certification creates illusions
    of actual progress if you let them fool you!!


    However, Google’s approach merits a lot of attention. Salient features are:


    * Hire only the best and make it a mix of different eclectic backgrounds. Hiring the same
      kind of people just creates a Mutual Admiration Society and does not breed creativity!


    * User Centered Design – Create all products from the point of view of the user. The tasks
      they perform rather than "Features" of a product!


    * Accept Ideas from Everywhere! Creative ideas come from all sources and the company should
      actively encourage as many forums as possible for this to happen.


    * Small, Agile Engineering Teams – 3 to 4 in each team! This makes communication and focus
      easier and makes things happen quickly!


    * Iteration and Experimentation – Early releases to internal users. Quality is built ONLY by
      actual usage by real users!


    * Minimal Requirements and other Documentation – Only as much documentation as needed!



    Granted that what Google calls a "Product" is different from what software development
    outsourcing deals with, but the lessons are nevertheless, the same.


    Very complex software written quickly and tested iteratively! Addresses many of the problems
    current outsourced software development projects ail from – Outdated requirements, problems in
    communication and understanding, problems in change management, etc.


    All of the above ingredients of the Google approach make sure that the time in between
    takes are minimized and the quality of the output is right where you want it to be! If it takes many iterations to get there, so be it! Your output gets tested that many times.