Online Book Reader

Home Category

Facebook Cookbook - Jay Goldman [42]

By Root 774 0
to a religious war with no obvious winner, be it Java versus .NET versus Ruby on Rails, dogs versus cats (although dogs are clearly superior IMHO), or software design methodologies. Wikipedia lists 16 different approaches to application design (http://en.wikipedia.org/wiki/Software_development_process):

Waterfall model

Spiral model

Model driven development

User experience

Top-down and bottom-up design

Chaos model

Evolutionary prototyping

Prototyping

ICONIX process (UML-based object modeling with use cases)

Unified process

V-model

Extreme programming

Software development rhythms

Specification and description language

Incremental funding methodology

Verification and validation (software)

Most of these are overkill for your purposes, but you should take a few days out of your busy schedule and read up on them anyway. If you really are new to this and are coming at the question of methodology as pure as the driven snow, you should take the time to evaluate the strengths and weaknesses of the different armies before you dive into the battle.

In the end, you’ll probably find that you need a really lightweight approach that adapts quickly to the changing demands of a platform such as Facebook. You might find that 37signals’ Getting Real book has a lot of merit when it comes to Facebook app development—you can find out more about it, as well as pay your $19 to download the PDF, at http://gettingreal.37signals.com/.

The most important thing you can leave this recipe with is this: don’t get stuck trying to pick a methodology at the expense of ever getting started. All of them are just tools in your toolbox, and although it’s always easier to do a job with the right tool, you can still get it done with the wrong one. My own process is described next in the Discussion, but feel free to use anything you’d like, just as long as you get out there and use it.

Discussion


I agree with a lot of what 37signals says in their book, although I tend to prefer a more structured design process than they advocate. I’ve been on enough teams and built enough software to know that there is some real truth to the axiom that an hour of design saves 10 hours of programming. Here’s the process I follow when designing a new application.

Know thy user


Start off by understanding who you’re building for. Is your app targeted at males aged 17–24? Are you building for stay-at-home moms and dads in their 30s? Do you expect to attract predominantly French-speaking new immigrants who are trying to get established? The answer to this question is really the foundation of everything that comes after, so don’t gloss over it and try to skip ahead. If you’re serious about getting it right, consider using Alan Cooper’s personas methodology to develop some personas for your key demographics. For more information, see his book The Inmates Are Running the Asylum (http://www.cooper.com/insights/books/#inmates) or Wikipedia (http://en.wikipedia.org/wiki/Personas).

Gooooooooooooaaaaaaaaaal!


Now that you know who your users are and have some personas built out to represent their opinions, what are they going to do in your app? Start with high-level goals and work your way down into lower-level use cases and bottom-level tasks. A quick breakdown for the Facebook Photos app might look like this:

Goal: See friends’ latest photos

Use case: Browse through the latest photos from friends

Task: Go to the Photos app main page and see the list of newly uploaded photos, filtered to display only the current user’s friends

Goal: Share photos with friends

Use case: Create a new album and upload photos

Task: Click on the “Create new album” button, then enter a name and description

Task: Use the Java applet Photo Uploader to add photos to their new album

Use case: Send photos to friends off-Facebook

Task: Copy the URL for a given photo or album from that photo or album’s page and email to friends

Always remember the age-old adage KISS: Keep It Simple, Stupid. If your app is successful and attracts

Return Main Page Previous Page Next Page

®Online Book Reader