The most important thing you can do to increase the success rate of a software project is to fully define the software before a single line of code is written.
Fantasy Land
While it sounds good on paper, this practice is something that only exists in my version of Fantasy Land. Deadlines, budgets, and excited clients are just a few of the catalysts that force a software project into the “As Soon as Possible” mode. Most project managers only care about getting the code started.
The reasoning behind getting development started quickly seems logical, but it is flawed. As Alan Cooper states in his book, The Inmates are Running the Asylum, “After the programmers have begun work, money drains swiftly. Therefore, logic tells the development manger that the most important thing to do is to get the coding started as soon as possible, and to end it as soon as possible.”
This thought-process transforms the project into looking like most software projects, “The conscientious development manager quickly hires programmers and sets them coding immediately. She boldly establishes a completion date just a few months off, and the team careens madly towards the finish line.”
I’ve been involved in ma-and-pa shop projects all the way up to enterprise applications with 500+ screens for a user to get lost within. The one thing all of these projects had in common was that the more definition there is around at the beginning, the more successful the endeavor has been.
And the Indians take the fort…
A few years ago, The Matrix Revisited was released. This was a DVD with hours of interviews, shooting scenes, and general information about The Matrix.
It’s been over six years since the original movie was released and it’s hard for some people to remember the breakthrough impact this film had. I’ve seen it dozens of times.
In the interviews, the one thing that stuck out to me was how everyone commented on the detail found in the script written by the Wachowski brothers. Years before a single actor was cast, the script was loaded with details.
Joe Silver, the producer, said it best with,
It’s really unusual that directors are so sure of what they want. They [the Wachowski brothers] write the script, they know exactly what they want. They know exactly what angle they want to see it at. What the actors should say. How he should turn. When he takes the breath in his speech. I mean, they know it exactly.
The emphasis on “exactly” was his, not mine.
Joe Silver went on to discuss traditional scripts for action films. The example he used was a western film where the script would say “And the Indians take the fort.” That sentence takes up one line on a page, but takes a month or two of shooting. Previous script writers wrote one-sentence, but relied on the director, choreographers, and other cast members to plan out some of the most intense scenes in the movie.
In contrast, when the Wachowski brothers “explain the helicopter sequence or when they explain in the new movies, the car chases… when they explain that stuff, they’re very clear of what you’re seeing.”
Joe went on to say that such detail makes it easier to understand the picture and budget for it accordingly, because you know exactly what you’re planning for.
No deleted scenes in the The Matrix
One of the biggest things people may have noticed about The Matrix DVDs is that there are no deleted scenes. After hearing what Joe Silver had to say, everything connected. The directors knew exactly what their completed product was going to look like, they communicated it in great detail, and not one scene was shot that they didn’t want in the final film.
If only the Wachowski brothers could be in charge of my next software project.
Defining a Software Project
It is possible to hold software projects to a similar standard.
Things need to be thought through. Whether the developers are involved or not, there needs to be some sort of analyst creating end-user goals, flowcharts, screen designs, etc. That’s at a minimum. That’s just so there is something that people can use to plan ahead for resources, budgets, and timelines.
The more definition upfront, the more prepared everyone can be to successfully create the final product.
As Alan Cooper says so well,
…without product design, our manager’s two fears remain unquelled. She has not established whether or not the users will like the product, which indeed leaves its success a mystery. Nor has she established what a ‘complete’ product looks like, which leaves its completion a mystery.
While we might not be able to get the Wachowski brothers to do my screen design, we can certainly bring in business analysts and interface designers to spend some time thinking through the final product.
It’s impossible to portray a philosophy in software design in such a short article, but if I have peaked your interest, I recommend you check out the links below.