In Part 1 I discussed a hypothetical realty company who needs a new application for their business. They’ve decided to go ahead with the app, and so we are about ready to start development.
With the general requirements in hand, we work with the customers to create user stories for their application. We get the following from each customer, listed in initial priority order:
- John Roberts (Dial-Up)
- I search for a property and get listings back.
- I search within a list of properties to get more targetted results.
- I click on a property and see all the details we have on it
- I can mark properties and see a comparison of them
- Susan Stern (Blackberry)
- I type in a street name and/or zip+4 code and get a list of properties.
- I select a property to find out more information like number of bedrooms. (I don’t have to select to find out the address or price.)
- I select a property and get driving directions.
- David Craig (Laptop/ Wireless)
- I enter an address, price range and/or other criteria and see a list of properties.
- I narrow down a list by entering more criteria.
- I access the list from any computer
- I get an email alert when new properties are available
- I get driving directions to the properties
While I know I’d like to write acceptance tests for these, I’m not sure how to go about that. In lieu of that, we create some mock-up screens for each section. So far we know we have three seperate UI pieces: a Web, a WAP and a Desktop Application. We could do a Java app for the Blackberry, however the indication is that not everyone who is mobile uses Blackberries, nor Java enabled phones, and they want something that will work regardless of phone type. We explain that they will have to have a data access plan for their phones, and they agree to it.
The screens mocks are very basic. The Web and Desktop apps have fields for all search criteria: Area, Zip Code, Address, Price Range, Number of Bedrooms, Square Footage, Lot Size. They both bring back a listing of properties 10 to a page that includes the picture and all criteria. No clicking through will be necessary, though a link is sketched that will take them to theoretical driving directions.
The mobile app allows for entering street number, street name, street type, zip code (+4) and price range. Street Type is a drop down list. All fields are optional except zip code. When the user submits, it returns a listing of properties with the price and address ordered by street name. It shows 10 to a page, and the user can page through the listings. They can also click a property and bring up an information page including a link to the hypothetical driving directions.
After working with XYZ to create these documents we put some estimates on the table, with the total coming in at two months. They decide to cut the comparison screens for now, and the email alerts will be handled by their existing DBA who will add a trigger to their SQL database, which cuts back the estimate to six weeks. We also add some additional background stories:
- Unauthorized users are not able to access the application
- A user logs in succesfully and is brought to the search page
- A user forgets their password and clicks on the Password Reminder link
With that behind us and with approval from the client, we take a look at the app as a whole. We lay out the stories and estimates and come up with the following release schedule:
- Week 1: View a list of properties based on search criteria via a web page
- Week 2: Search and view properties on a desktop app based on a static database
- Week 3: User security and driving directions enabled for web and desktop, desktop app gets latest database on startup or sync
- Week 4: Search and view properties on a WAP simulator
- Week 5: Security, driving directions and search enabled on WAP phones
- Week 6: User Acceptance
Though ambitious, the team feels like it is doable based on their previous experience with web and mobile apps. They feel like they will be able to reuse a lot of the code between the versions to help speed development along, creating a pluggable presentation layer. What do you think? Do you think they can make it?