Scoping out an Android Project
We just completed two Android projects; the Sporcle android app and the hereMe! Android client. These projects are wildly different from a technology point of view, but the phases that we went through to develop them had many similarities. For future mobile projects I would propose to define the scope with the following phases.
Android App Phases
- Rough Build out, prototypes
- Review and redesign
- Full Build out
- Version 1: Client review
- Testing for functional completeness
- Additional Functionality, tweaks
- Full test for release
Here are a couple things to notice. The first 5 steps are what I would expect from any application. It's hard to capture all of the functional requirements in the first build of a product. Also, you tend to find the limitations of the technologies and some general refactoring is required to deal with these limitations. For instance, on the hereMe! project we found out that the media viewing technology had several limitations; you couldn't rotate the video like an iPhone, landscape mode is required in all cases, etc... After you get to phase 3 you should know all of these problems and be able to change the design to accommodate these problems.
What we didn't count on is the amount of polish work that was required to make the app look finished and professional. For some reason the amount of polishing feels greater for Android than for a similar iPhone app or web application. Perhaps its because the architecture is so different; or because Android favors configuration over convention. Whatever the reason, it is compounded by the fact that Android runs on so many devices with so many different flavors of the OS. Each screen has a portrait and landscape layout which must be viewable on the myriad of different screen densities and OS builds in the Android universe. Additionally, through the testing phase, we experienced many strange gotchas in seemingly simple API calls on different builds and different device manufacturers. In any case that is what Phase 7, 8, and 9 are intended to address.
So if you are building an Android app, budget man hours for each of these steps. Android apps are very tricky to get right and if you refine them correctly it will look like you didn't do anything at all.