Starting from a blank slate to create a new site can be a refreshing experience, a chance to get it right the first time. However, with so many possibilities for what you can build how do you decide where to begin? What is vital to the success of the project, and what is just gravy? And, to beat the metaphor into the ground, do we need the gravy or is it a tasty treat that will kill us slowly over time?
After your initial research and brainstorming sessions you are likely left with a wish list for features and functionality that is longer than a greedy kids letter to Santa. Step one is to define the essence of what you are building. Write it down in one sentence in large letters at the top of a sheet of paper (yeah, I like to go analog on occasion). Generally you can write this as the goal of the site or application. A few examples are:
- This web site is for scheduling appointments with a lawn service
- This web application is for ordering flowers online
- This web site is for ordering prints of digital photos
Now that you have defined the essence of what you are trying to build focus on the bare minimum set of things needed to let a user accomplish their core goal in visiting the site. Keep this technology neutral for now. Let’s take the digital photo example and take the next step. Make a list of 3 to 5 things that are absolutely required. For example:
- A way to send digital photos to the printer
- A description of the options for the prints (sizes, number of prints, etc.)
- A way to pay for the prints
- A way to receive the prints
Note that at this point we aren’t getting into the implementation. Users may upload photos through a form, send a CD, or memory card, or e-mail them. We just know there has to be a way to transfer them in digital format.
Now that we know the main components needed to reach or primary goal(s) for the site we can break those down further to explore the options for implementing those components. Let’s look at the first component we listed, a way to send the photos to the printer. We make another list of options:
- Upload photos through a form
- Mail a CD-ROM
- Mail a memory card
- E-mail the photos
Now your mind is probably already jumping ahead to the details of these options such as how we would handle returning expensive memory cards or what file formats we will accept. That’s fine, and once you are this far it may become clear that some of the options are better than others. This is a chance to look at simplifying the system.
Now let’s try to simplify what we have. What is the best option for transferring the files? What is easiest for the users? What is best for the printer? What costs are involved in each option that may be bad for the printer’s bottom line? We can prioritize the four options we came up with and consider only building the top one or two options instead of all of them. Feel free to add notes on why you ordered them this way for later. Our list might look like:
- Upload photos through a form (no e-mail program needed, simple to do)
- E-mail the photos (requires user to attach photos to e-mails, less organized for printer)
- Mail a CD-ROM (requires paying for postage, possible scratches and bad discs)
- Mail a memory card (requires paying for postage, cards are expensive if lost, must be returned)
So we might end up just providing an upload form and an option to e-mail photos if the users prefer to. We’ve examined all of the options and have chosen to implement only what is needed. By reducing the options we will take less time to get the system up and running and cut overall development costs.
We can continue this process for the other items on our list. We can also drill down deeper to get at the details of how the upload process will work, what information we will ask for in the forms, where it will go, how the printer will access the uploaded files, etc. and in doing so we will list out the options and then pare them down to the minimum needed to get the job done at each level.