OKCOOL

Back

An exercise in agility

When you develop for a customer you have two factors that help keep things on track. Time, and budget. More often than not, your customer wants it done yesterday, for as little as possible. That’s the nature of business. We thrive on maximizing our customers’ investments by ensuring they use technology appropriately for their requirements. This means we often strip out parts of a project if we feel they’re not adding to the end result or can’t be delivered quickly enough. We also try to use existing technology wherever possible to speed things up. All of this leads to a quick turnaround on a project and happy customers that keep coming back.

When you develop for yourself, it’s a different game altogether. You don’t have time or budget restrictions, which can lead to the ultimate project killer… feature creep! So, with this in mind, Keir and I set ourselves a challenge. Develop a full facebook application in only 4 hours.

So what did we decide to build? It’s an idea I had a while ago. It’s not going to set the world on fire with originality, but hey, we only set had 4 hours to build it. The brief goes something like this:

“Build a facebook application called The Neverending Story that will allow each user to start their own story. Each of their friends will be able to read the story and contribute to it.”

The idea behind this being that you end up with some pretty funny stories written by a group of mates. Simple.

So, we spent about 15/20 minutes outside of our allocated time to work out what needed to be done. Most importantly, we stripped out things we knew we didn’t have time for and managed to cut it down to only 3 pages.

  • The profile page – we decided this would show the first part of the story and the last two contributions.
  • The full story – this would be a page where a friend could read the entire story and add their contribution.
  • A thank you page – this would actually submit the contribution to the story, thank the user, and ask them to invite their friends to start a story

We put the kettle on, had a cup of tea and made sure our laptops were on the juice. Then we got going.

The ingredients:

  • 1x countdown timer for keeping us on track.
  • 1x XHTML crack pot developer – that would be Keir.
  • 1x PHP crack pot developer – that would be me, I guess!
  • 1x Webserver running PHP.
  • 1x MySQL Server.
  • 3x Facebook accounts for testing (Mine, Keir’s and a test account we setup).
  • 1x Facebook framework consisting of some library code of mine and the facebook platform itself.
  • 1x Large bag of cadburys mini eggs (must be a large bag because Keir can consumer a considerable amount over a short space of time).

I got going on setting up the facebook application. There are some slightly strange fields to fill in during this process but I had the benefit of having done this a considerable amount of times before. I then proceeded to setup the web server (IIS) and database with FTP access so that we could both upload our files. This was about 15 minutes out of the time already, and I hadn’t written a single line of code at this point.

Meanwhile, Keir got stuck straight in to doing the layout for the story. With a normal facebook application you have to use FBML which is a slightly cut down version of XHTML with additional tags added that perform specific functionality.

I then went on to build the PHP code while Keir did the layout for the profile and refine the story page. Thankfully, neither of us kept the other waiting for any considerable time and we met at a nice point together around about 10 minutes before the clock ran out…

Did we make it?

Yes…. kind of. Well, no, not really. I’d like to say we did. I’d like to pretend we scraped in, Mission Impossible style, with 1 second remaining on the clock. Unfortunately, we over shot by about 15 minutes. We do however, have a fully functioning application.

What did we learn?

  • Cut back, remove, restrict and simplify. This wasn’t a complicated application but there were still things we could have ignored for a later revision. From my side, I unnecessarily added security to the stories preventing anyone from being able to read another story. Although this seems like a fairly important security measure, we didn’t discuss and agree it was necessary, so I shouldn’t have included it. My past experience told me to do it, and it used up valuable time. From Keir’s side, he added links to functionality we weren’t going to include in the first release which we later needed to remove.
  • Testing takes time. A lot of time. We didn’t manage to test the application at all other than as we were going along. Consequently, we have an application that functions, but isn’t yet ready for public use. We could have easily spent another few hours just testing it under every condition in every browser.
  • Have a decent code library in place to begin with. It would be impossible to develop something this quickly without having previous code available.
  • Research and learning takes time – a lot of it. It really slows you down when you have to look something up. It’s a bit like an egg and spoon race when your egg drops off! It throws you off your rhythm,
  • There is little or no time for mistakes. If you can’t solve a problem quickly, you need a quick fix or a different solution.
  • This was good practice, good fun, and we got something out of it. We both feel like we’ve upped our game very slightly and will no doubt be doing this again in the future. A worthwhile exercise indeed.

Where to now?

Keir and I will be putting in another 4 hours to put the finishing touches on the application and make sure it works reliably. We’re fairly sure we can probably get it all done and dusted in less time than this to a satisfactory standard. Perhaps we’ll relax a bit next time and have a beer along the way.

Watch this space for The Neverending story coming soon…

  • Tom
  • 25 November 2007
  • 0 comments

Comments

Add a comment





OKCOOL Wordpress theme created by OKCOOL