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:
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:
Here is what I do:
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).