Archive for August, 2007

Sometimes I wonder if I’m just too different from other people to “get” stuff.

The Bourne Ultimatum grabbed a 94% approval rating on Rotten Tomatoes. The lone voice of dissent among the Cream of the Crop was Stephen Hunter. I thought the camera work and editing was horrible. But with such a high rating, who can argue?

Apparently, I’m not alone. Roger Ebert’s website has been flooded with people complaining about Paul Greengrass’s horrible film work.

Reading through the comments is comforting. At least I’m not the only one…

The other day I got an email from a developer asking my opinion about some software management tools. He’s in a situation I’m sure we’ve all been in at one time or another: he’s got a very small team of developers and a limited set of resources, and he’s working for an agency that has all sorts of rules and regulations they want developers to follow. He’s somewhat new to the game of software management and wanted some advice on tools to help him manage his project.

I started thinking: I am not a project manager. I am more of a “team lead” on my current project. I’m the guy other developers come to for answers in regards to topics such as architecture, coding conventions, design decisions, technology queries, etc. But I’m also an opinionated guy, and I did have thoughts on the matter. At any rate, I started typing out a response to my developer friend when it occurred to me that this might make a decent blog post. Thus, these are my thoughts on project management…

Simplicity

My feelings on Project Management are very similar to my feelings on writing good code: Keep It Simple Stupid. I believe complexity only slows us down and makes things more difficult in the long run. If one way of doing something takes less (a) time or (b) effort than another way, and provides us with the same data or feedback, then I think the faster/easier way is superior. That seems like common sense, but you’d be surprised what guides people’s decision making processes.

Above All: Information

The number one thing you need to manage a project successfully is information. And you need it to be concise, easy to find, easy to digest and accurate. You also need this information to be updated frequently, in whatever form it takes.

No single tool exists to do all of this for you. It takes more than that: it takes good developers, constant communication, and a suite of simple, reliable, accurate tools to gather metrics and data for you and present it in easy to digest ways.

  • Simple. Because anything complicated takes too much effort to maintain, and when that happens people stop using it. This goes for tools or processes.
  • Reliable. Because tools that don’t work just add overhead to your time. Unreliable tools create aggravation.
  • Accruate. Because enough of software development is a guessing game already. Accurate metrics define from the obscure.
  • Easy to digest. Because you’re already too damn busy with everything else going on.

The faster you can digest the status of your project the less time you’ll need to spend interpreting data, which means more time for something else. The less verbose documentation you have to wade through the more time you’ll have for doing important things, like writing code, tests, and meeting customer expectations. So how can you get do this concise, clean information?

Version Control with a Continuous Build Server

This is the first step, and it is a must. You have to have version control. This may sound like a no-brainer, but believe it or not there are still developers and teams writing software without version control.

Second, the Continuous Build Server is one of the best tools for determining your project’s status. It is like a doctor’s thermometer; it helps you see, in very concise terms, what the health of your project is. Without a continuous build server you might as well use a Ouija board to figure out where your software project stands. The larger your team, the more difficult it will be to determine the state of your code, as developers will be manipulating it too frequently for you to keep up on all the changes. A build server is the ultimate distillation of status: green is good, red is bad.

Of course having a build server implies something else: Unit Tests. Without Unit Tests, a build server is just an scheduled compiler. Yes, it will tell you if the build is broke, but that’s only a small portion of what a build server can do. With Unit Tests, a build server can tell a lot more about the quality of the code as a whole. You can see tests passed and code coverage reported; you can know not just if the build is good or bad, but to what extent it is good or bad. And you can digest all of that in seconds.

Story Cards

Helmet Stickers

You know those stickers that college football coaches award to their players for outstanding plays? The ones players put on their helmets for making great plays? As the season gets closer to the end, helmets have more stickers, and it becomes really easy to see who the standout players are. That’s what Story Cards are. They are football helmet stickers.

Forget Gantt charts. Forget detailed requirements documents. Forget everything that requires extensive reading. Story Cards are the cat’s meow for Project Management because they’re simple, concise and maybe most importantly: visible. They hang on a wall where everyone from the development team to the customer can see them. They are physical representations of accountability. They are an incredibly easy to read metric for determining how far along the project is. When you see a wall go from empty to cluttered with story cards, you know you’re making progress, and so does everyone else.

Bug Tracking Sofware

No matter how well or completely you test, you’re still going to have bugs. Fewer bugs to be certain, but bugs nonetheless. Or little user complaints that aren’t really bugs: a detail someone forgot; a feature that needs tweaking; a user request that’s really too small for a story card. You need a place to track this stuff, otherwise it falls through the cracks. These are the things that add polish to a project. Bug & Feature tracking software can help. We use Dragnet where I work and we really like it. It’s simple, which is a key feature for anything we try and employ. It is extremely easy to use, which gives us no excuse not to use it.

Wiki

A project needs a hub. I think a Wiki is the perfect hub. You can put everything on it. You can link to any file of any importance on your system: link to your build server’s reports, link to your bug tracking software, link to web pages that developers should be familiar with, link to blog posts that are relevant, link to anything you don’t want to forget.

You can also publish release notes, release schedules, coding conventions, FAQ’s, or whatever your heart desires. It’s a great central location for all things related to your project. And it’s wiki software. Choose the right kind (simple to install, easy to use) and you’ve won most of the battle.

I would stay away from turning a Wiki into a design document however, or anything else that required extensive reading. It should be a place for links to tools and concise digests of information. If you turn it into a novel then developers and customers won’t use it. Besides, this is why you have a development team: to get the details. I don’t really want to read 100 pages of documentation about the project, I’ve got coworkers to tell me the details. Besides, they’re more fun to talk to. But as a hub – as a central way to tie all your important pieces together – I think a wiki is great.

Conclusion

Like I said, I’m not a project manager. But I’ve watched how my current boss manages our project and I’ve learned that his greatest source of frustration comes from not having enough information. He can’t make decisions without accurate, reliable, up-to-date information. No one can. And it is our responsibility as developers to get him that information in whatever forms we can, as concisely as we can, as frequently as we can. If I had to be PM tomorrow on a project these are the basic things I’d want to get started with. The rest of the information – whatever these tools don’t cover – would come from my employees.

This is just a short thought: A coworker of mine was running down the credentials to a programmer he encountered online. He wanted to see more of the work this guy had done, so he was looking up the person’s profile. He came across something that mentioned that the person had worked on an online gaming project. Come to find out it was online poker.

I just find the whole thing funny. I have been an avid video game player my entire life; I’ve spent hoards of hours playing Everquest and later Everquest 2. When I read the words “online gaming” the thought of gambling doesn’t even enter my mind.

Stardust

Fans of the film The Princess Bride speak of it with a reverence reserved for few movies. They have memorized it wholesale, and can recite entire scenes word for word. It has obtained a cult status among its followers; it is worshipped; it is beloved.

It was also perhaps the only sort of fantasy movie that could have been made successfully before Peter Jackson and The Lord of the Rings convinced the world that the genre could be taken seriously. The Princess Bride was not just a fantasy film; it was a perfect marriage between fantasy and comedy. And it was this latter quality that made it accessible, allowing it to earn a legion of devoted fans.

Stardust is a movie for these people. It is a movie for people who hold a place in their heart for The Princess Bride, and still have shelf space left for something else.

Startdust is the story of Tristran (Charlie Cox), a boy who, unbeknown to him, is actually the son of a princess (Kate Magowan) from another world that exists on the other side of a rock wall that lies in a field near a town in England, appropriately named Wall. Or should I say the kingdom lies in another dimension on Earth. Or a parallel Earth. It doesn’t matter. These are trivial details that are mostly unexplained, and the movie works better if you don’t try and figure out the details.

Tristran is a lost cause. He’s the subject of unrequited love. His affections are targeted toward Victoria (Sienna Miller) who isn’t interested in him; she’s after another, seemingly more capable man, who appears to have better clothes and is more accomplished with a sword. Tristran doesn’t care; he’s in love, and he’s willing to go to great lengths to prove it.

On the other side of the wall, in the province of Stormhold, the king (Peter O’Toole) is dying. He’s sired seven sons, some of whom are already dead at the hands of their siblings because they all covet the crown. As his final act, the king does a bit of magic with his prized necklace: The heir who can find it and restore it will become king.

The necklace shoots off in the stars and brings one of them back down to Earth with it: Clare Danes, who has never looked this lovely in any film she has done before. Here, she is absolutely radiant as Yvaine, the literal embodiment of a star. She glows when she is happy, but even without the special effects she melts the heart.

Through devices that I will not reveal here, Tristran meets up with Yvaine and their adventure together begins. The king’s sons hunt them for the necklace that Yvaine wears, and Michelle Pfifer, in a wicked turn as the witch Lamia, hunts the star for her own reasons. Along the way they run into certain troubles, as all such plots require, but the movie never comes across as tired or long, despite its two-hour-and-fifteen-minute running time. And while describing the complete plot of Stardust would make it sound complicated, the film is never confusing or difficult to follow.

Robert DeNiro shows up about halfway through the movie as the gay pirate Captain Shakespeare of an airship that harvests lightning from the clouds. His attempts to mask his true nature from his manly pirate crew make for some of the most humorous moments in the film.

If a gay pirate captain of an airship that harvests lightening sounds strange on paper, well, that’s because it is. But it also works, largely because of DeNiro, who has as much fun with the role as the audience does, but also because that is how Stardust works as a whole. The film, despite how strange or unconventional it may sound, works in every way once transferred into visual format. This seems fitting, since the film is based on a novella by Neil Gaiman that is largely a graphical work.

Like The Princess Bride, Stardust marries a fantastic fantasy realm with comedy and a love story. The movie never takes itself too seriously and hardly misses an opportunity to make the audience laugh, yet all the while still manages to make us care about the characters.

Princess Bride fans will note that while Stardust is funny there are few memorable lines in the film. This is not a weakness however; it is just a difference of style. Stardust has more to carry it, with some very attractive special effects and a love story that takes more prominence. It is charming and beautiful, which does not make it better or worse than The Princess Bride, just different.

The Bourne Ultimatum

Jason Bourne (Matt Damon) has a problem: He desperately wants to know who he really is and what happened to him (or more specifically, who made him the way he is). The Bourne Ultimatum also has a problem: It is an action film where the dialog and non-action moments are far more interesting than the action sequences. The Bourne Ultimatum, and its predecessor, The Bourne Supremacy, should be required study for all film directors on how not to make an action movie.

The Bourne Identity set up the premise for these films by introducing us to Damon’s character shortly after a failed mission. Jason Bourne can’t remember who he is or what he’s capable of doing to other human beings, and that sets the stage for a plethora of chase scenes, fight sequences, and close calls; just the perfect cocktail for an action franchise. But more than that, The Bourne Identity also set the standard for our expectations in regards to this character and this world. Identity was a perfectly filmed action movie. The dialog, acting, writing and directing were just as good as the action scenes themselves. Identity was a complete package, and director Doug Liman understood how to make it so.

Paul Greengrass, the director for Ultimatum and its predecessor, Supremacy, does not understand how to film an action movie. That is not to say he doesn’t know how to tell a story or direct a movie (there are some very excellent story elements/plot twists in Supremacy, and Ultimatum does not disappoint in that regard), just that he specifically does not know how to film it. His camera work is the worst in the industry.

For reasons that I cannot begin to comprehend, Hollywood directors, Greengrass chief among them, have taken to a particular visual style for filming action sequences. This style involves the use of a hand-held camera at close range. The overall effect of this technique is that action scenes are incredibly shaky, blurry, undefined and utterly disappointing. You may hear people refer to this as the “shaky-cam”. It would more aptly be named the “I don’t want you to see what I just filmed” cam.

It says something about an action film when the quiet moments, plot twists and dialog shine much more brightly than the action sequences themselves. It speaks of a failure to understand the genre.

There are moments during The Bourne Ultimatum when the action is so intense and the potential for thrills so great that we can sense, with a high amount of frustration, how incredibly great this film would be if only Greengrass would stop using the damn shaky cam. This is the first action movie I can recall watching where the blurred images became so hard to follow that I eventually gave up and just waited for the next ‘slow’ moment in the film to come along so I could actually make out what I was looking at on screen.

The horrible quality of the camera work becomes even more glaring when one slips a DVD in for The Bourne Identity, or the most recent James Bond film, Casino Royale. The directors for both of those movies understood how to actually use a camera for the action scenes. (Go back and watch the Parkour chase in Casino Royale and then watch any sequence in Ultimatum. The contrast is stark).

As if the poorly executed action scenes weren’t enough to blemish the film, it also fails in a couple other areas. Julia Stile’s character, for instance, is completely underutilized to the point where one wonders why she was in the movie to begin with. There is a minor story arc between her and Jason Bourne that is implied, but never explored, and we feel a bit cheated that Greengrass never does anything with it.

Finally, the big secrets of the movie lack impact. When they are revealed they come across as really weak, unable to support the plot engine that requires all of the running and killing. After three movies worth of secrets, we’re left scratching our heads, asking ourselves, “That’s the reason they’re trying to kill Jason Bourne? Are you kidding me?”

In the hands of another director (maybe even Identitie’s Liman) these films could be instant classics in the action movie genre. Instead, Supremacy and Ultimatum are merely visual annoyances. Try holding your eyelids open as long as you can, until they dry out. You’ll get the same effect.