The studio wants to put on a play.  The play will be about things and stuff and will be directed by you.  The producers, studio and investors have allocated some funding and have given you a date when the play must go on.  They will make billboards, buy air time, sell tickets and run ads in news papers.  All this cost money.  It is really a really important, high visibility, high impact and will be great for all of us if you can help pull this off (heard any of those things before?).

The producers will also find you a set of actors based on the budget and will help with anything you need.  You ask for a team of actors that you have worked with in the past.  They know how to work together and are happy to play any part they can but that confidence and quality comes a cost and we only have $1.00.

As the director, you consider the following:

  • You have never directed a play about things and stuff.  Stuff, yes.  Thingamabobs, yes.  Widgets, kinda.  But never together.
  • You have the following roles based on the script I’ve been provided
  • You have a deadline and no money
  • You have to get wardrobe, props and actors all aligned and working in parallel and hope they come together in the end
  • The producers, investors and studio will walk in unexpectedly and often to see how things are going and will get very worried if they think the opening will be affected in anyway
  • You can’t quit because if I do, you will never work in this town again.

Time for auditions.  In comes a band of actors, each with their own pedigree, attitude, various experiences and expectations.  “I need my own trailer”, “I better be the lead”, “You aren’t doing it right”, “this is impossible, where is my agent”.  The only thing they have in common is that they have never seen each other or worked together.

You need to fill the following roles: Cinderella (lead), some dwarfs (supporting), a tree and a rock (live props with some lines), and I need someone to play the stand-in for the second lead which is currently filming somewhere else because it’s an animated role.  2 weeks into rehearsals, everyone wants to be the lead, you have 3 of 7 dwarfs, a rock, no tree and you are playing the stand-in because no one else wants to be “out of the spotlight”.  You also have homemade costumes, a few hand-me-down stage props, no place to practice together and here comes the studio asking for status.

Let’s map it to software development:

  • Play – New application development project.  Probably never been done before, if so, not quite like this
  • Producers, studio, investors – The bobs, monkey managers and customers
  • The Date – When other people will come to see your  the studio’s play
  • The actors – Cinderella (lead dev), dwarfs (just plain ole developers), the rock and tree (testers), the costumes (UI), the animated role (insert integration system of choice here)
  • Props – The tools
  • Stage – Location

Here is what I do:

  1. Keep the bobs happy
    • Let them know when, where and how you will report status to them.  Keep them out of your rehearsal area but if they drop in, make sure they are “silent observers”.  In Agile, the bobs are chickens and chickens are not to disrupt the daily work.
  2. Separate status reporting from daily work
    • There will always be a deadline otherwise work will go on forever.  Sometimes the deadline is movable.  No one will tell you the actual date, ever!  If you knew it, you would slow down; it’s human nature to take up all the time allotted for a task.  The roadmap and milestones are a waterfall tracking mechanism for reporting out.  Daily work should be summarized at this level. 
    • Let the work be the data.  At the end of the day, telling someone that you have 3 of 7 dwarfs means nothing.  Showing them a chart of “dwarf work” goes a long way.  The bobs see the world as color charts, graphs, and dashboards.  As technical people, we see the world as black, white and grey.
    • Reporting, tracking and process methodology on the outside, implementation and execution methodology on the inside.  Let the purist scream and protest and boycott but this is what I found works in all cases.  When I don’t know where to go, I look to process to tell me where I’m supposed to be. Those are milestones.  Any documentation, testing requirement, hardware ordering process, training lead time, etc, is added to my product backlog the same as localization framework.  It is scheduled into the sprint and tracked like any other work item.
  3. Ensure the proper isolation of work
    • I call them swim lanes.  You can call them feature crews, branches, paths, tracks, whatever.  Costume designers go their way, actors go another way, and props go another way.  Give your team direction and trust that they will do their job by the time we all need to come together.  I call it controlled chaos.  Put chaos in a box so when people ask what’s all this chaos, you can say, it’s in the box and I’m watching it so it doesn’t get out.
  4. Ensure the actors are happy and always working on what is important
    • When you keep the bobs out of the workplace, actors can focus on acting.  Not reporting, status calls, budget meetings, etc.  Also make sure that the rock is not trying to tell the tree how to be a tree.  If that happens, you get a bad rock and terrible tree.  No one wins.  Stay on target.
  5. Never let a day go by that you don’t check in
    • Jim McCarthy's 1995 book Dynamics of Software Development calls it “going dark”.  Others call it “Nomadic development” or remote work.  Either way, if you can’t be accountable for your work, maybe you should go flip burgers.  You get paid to be accountable, professional and knowledgeable.  “Where are you on bedazzling the Cinderella costume?” is a reasonable question because next week is full dress rehearsal, so quit whining.
  6. Never kiss on the mouth (From Pretty Woman), don’t get attached to anything you can’t walk away from (From Heat), and always be ready to say goodbye.
    • You don’t own the purse strings.  It is not your play.  You are not responsible for the success (failure, yes.  success no).  There are no Oscar’s for best director or Grammy’s for best composer.  The best you can hope for is the continued employment award (aka paycheck).  The moral is that you have been entrusted with the management of the play temporarily.  You are a steward of the play and you are allowed to be in charge as long as the studio, producers, and investors feel like it.  That’s the reality. 

Wrap it up:

Tools, tools, tools.  A methodology and a process is a tool   You will choose the right one for the job at hand.  Sometimes you need all waterfall.  Sometimes you need Agile.  Other times you need a little XP, some Agile, and MSF-Waterfall on the outside.  For nails, use hammers.  foundation, use cement.  For electricity, use copper.  For software, choose what works when you need it.  Know your tools their their strengths and weaknesses (See section II.4) but also know how the will be used and who will use them (See #Section III.18).