Monday, January 26, 2015

Designing part 2 (Requirements)

I'm gonna hold off to visual designing for a little longer. And the reason for that is that we haven't defined all the functionality yet in a more organised fashion.

How do we do that? Simple. By making a requirements list.

Note, that this is only common when a project is using the waterfall model for developing. Basically, in a waterfall model you finish each aspect of a project and move on to the next step only if you finished the previous one completely. In an agile project you do each step repeatedly for every few weeks (a sprint).

A requirements list is simply a list that defines all functionality the app requires. I prefer to sort it by using MoSCoW.

Now, let's make the list.

1. Scan for ingredients using the camera (Must)
2. Look up ingredients by searching (Must)
3. Have a valid datasource which I'm not the responsible for. (Must)
4. Support iOS 7 and above (Must)
5. Have multiple categories (profiles) to choose from. (Must)
6. Fast scanning (Should)
7. History (Should)
8. Supermarket searcher (Could)
9. Online portal to subscribe to custom categories users made. (Could)

The requirements list should be SMART. SMART stands for :
  • Specific – target a specific area for improvement.
  • Measurable – quantify or at least suggest an indicator of progress.
  • Achievable – specify goals that are reachable.
  • Realistic – state what results can realistically be achieved, given available resources.
  • Time-related

A good rule of thumb to have in mind when making requirements SMART is that someone unrelated to the project should know what each requirement means and could interpreted it exactly as you mean it by just reading the requirement.

You can see that the supermarket searcher we had in our initial brainstorm session on paper has a Could specification. This is because I think it isn't that important while it would take a lot of time to integrate it.

Another thing to note is the valid datasource I don't want te be responsible for. This is because giving people advice on how to eat is a huge responsibility. Given the wrong advice, users could be in harm. That is not something I want to have on my back. Nor do I have the knowledge to give good advice. So the answer would be to look up the diets for each category/profile on the internet by known sources.

The reason to support iOS 7 and above was an easy decision. 


As you can see iOS 7 and above are on 97% of the phones. Adding support for only 3% would be a waste of developing resources as well as another important fact: the camera.
As you know by now the camera is an important factor in this app. Supporting < iOS 7 would mean supporting the iPhone 4 camera.

One of the bigger improvements in the iPhone 4S over its predecessor is the all-new camera. This is because besides an 8MP sensor, it also comes with a few other enhancements like an optical system with five-element lens (as opposed to four in the iPhone 4), wider f/2.4 aperture, improved back-side illumination and color accuracy, and last, but not least – faster operation

I'm not one for the megapixels when it comes to camera's as the quality of the photo has little to do with it, but in this case, where I have to examine each pixel on a photo up close to recognise text, it is most important. Supporting the iPhone 4 camera would mean less sharp photo's which on it's turn would mean worse recognition. Users would get angry for bad functionality and a bad app overall.
And that for only 3%? No thank you.

So now that we have the requirements, what comes next?

Visual design! (and no, I won't postpone it any more)
  

No comments:

Post a Comment