Skip to main content

Agile project management: converting user story to technical requirements

This post will talk about the user story of a woman who wants to use a to-do list app to manage her Christmas shopping. Each user story corresponds to some of her ‘wants ‘(‘expectations or user stories) from the to-do list app. In this post I aim to look at all the user stories and try to understand them from a technical and implementation perspective. Let’s have a look at all her user stories, starting with

User story 1: Categorize 

I want to be able to categorize gifts for the person I am buying it for
The first thing that comes to mind is, grouping i.e. a parent child relationship. So my understanding of her expectations from a to-do list app is that she wants to create individual lists for people. e.g.
Her son Paul for whom she needs to buy
  • a new cologne, a  gym bag, and a Flash drive
The next would be her daughter Betty for whom she needs to buy
  • a new bicycle , a pair of shoes and renew her gym membership

How can we deliver this via a to-do list app?

In terms of implementing these into a to-do list app, the requirements are as follows,
  1. The first change that would be needed would be to the database  to  allow for a table to store a person name or a category that has a list of child records. The child records would be the gift name i.e. items of a to-do list.
  2. The next stage of implementation would be to consult a UI designer and discuss how this would look in the app itself.
  3. Once we have the design, then it would be a matter of delegating the work to both front-end and backend developers to implement this change.  Followed by extensive testing or ‘crash proofing ‘ it before release.

User story 2: Location

I want to be able to specify where I am buying the gifts from
Hmm…. I think what she wants from this is for every item she adds to her to-do list she wants to specify a location from the map for it e.g. for the to-do  “buy a new gym bag” she may want to specify the exact location by putting a marker somewhere on Pitt Street on the map.

How can we deliver this via a to-list app?

In the app when a to-do is added the user should also be able to see a map i.e. MapKit or Google Maps SDK and drop a pin on it. The pin would give us a location i.e. latitude and longitude for it that we can store in the database. We would also need to work with a UI designer to come up with a way of showing the location specified for a to-do.

User story 3: An internet search?

When I note down the gift items, I want the app to suggest where I can get the gift item, at the best price
Her expectations from this are simple, she wants to know what’s the best deal for the product she’s buying. E.g. she adds a to-do item buy a new mountain bike and the app would then [trigger a search for the best deals for a mountain bike for her.

How do we deliver this via a to-do list app?

Hmm not sure about this. Adding this feature is more complex than some of her other wants. My only guess at implementing this would be to call some third party API by passing her location as well as the search terms from her to-do. Then come up with a design to display the results of the API call via a pop-up or so. Owing to the complexity of this feature it would require much more development and testing time than the previous ones to implement.

User story 4: Task delegation

I want to be able to send my list to someone so if I don’t have time, they can buy it for me
This is a really good time management technique that she’s hoping to use. It’s a case of finishing your to-do  by task delegation when there are time limitations. E.g. if she realizes that she’s only bought 5 out of 12 items in her shopping list and and it’s already 5:30 pm,  she wants to be able to send that list to someone else to finish shopping.

How do we deliver this via a to-do list app?

I think the simplest way to achieve this would be to have the ability to select to-do from the list and then send those to-do to someone via sms, email etc. To get more technical the iOS UIActivityViewController comes to mind.

User story 5: Reminders?

I want to be able to keep track of the gifts that I purchased and be reminded on what I forgot
Hmm…. I think this is a bit self-explanatory. Maybe you can tell me your thoughts on this? What do you reckon? How should we implement this? Write something for me in the comments below.

As usual, if you find any of my posts useful and want to support me, buy or even try one of our products and leave us a review on the app store.
My Day To-Do - Smart Task List
Developer: Bhuman Soni
Price: $2.99
My Day To-Do Lite - Task list
Developer: Bhuman Soni
Price: Free+
Snap! I was there
Developer: Bhuman Soni
Price: Free

Comments

Popular posts from this blog

Upload to AWS S3 from Java API

In this post, you will see code samples for how to upload a file to AWS S3 bucket from a Java Spring Boot app. The code you will see here is from one of my open-source repositories on Github, called document-sharing. Problem Let’s say you are building a document sharing app where you allow your users to upload the file to a public cloud solution. Now, let’s say you are building the API for your app with Spring Boot and you are using AWS S3 as your public cloud solution. How would you do that? This blog post contains the code that can help you achieve that. Read more below,  Upload to AWS S3 bucket from Java Spring Boot app - My Day To-Do (mydaytodo.com)

Addressing app review rejections for auto-renewing subscription in-app purchase (iOS)

The ability to know what the weather is like while planning your day is a feature of  My Day To-Do  Pro and as of the last update it’s also a part of the  Lite version . Unlike the Pro version it’s an auto-renewing subscription based  in-app purchase (IAP)  in the Lite version. What means is that when a user purchases it, the user only pays for the subscription duration after which the user will be automatically charged for the next period. Adding an  auto-renewing  subscription based IAP proved to be somewhat challenging in terms of the app store review i.e. the app update was rejected by the App Review team thrice because of missing information about the IAP. Therefore in this post I will share my experiences and knowledge of adding auto-renewing IAP in hopes to save someone else the time that I had to spend on this problem. In-App purchase This year I started adding IAPs to My Day To-Do Lite which lead to learning about different types of IAP...

Serving HTML content in an iOS app that works in iOS 7 and later (using Swift)

As I have mentioned in an earlier post , I really enjoying coding in Swift. Now what am I doing with it? Well I am trying to build an HTML5 app that must work on devices with iOS 7. So in iOS8 apple has introduced a whole bunch of features that facilitate easy communication between web content and lets just call it back-end Swift code, but those features are not in iOS 7. So why do I want to build something that would work in an older OS? well I do not expect existing iOS users to upgrade to iOS 8 straight away and i also know a couple of people who would be very reluctant to upgrade their iPhones to iOS 8. Now in case you do not, you can have a read of the "Working with WebViews" section of this post , to know how to serve HTML content with WebViews. So when I started building my app, I wanted to know: How do I invoke some Swift code from my HTML content? Well the solution to this may feel a little bit "hacky" but it is a solution to achieve this.  The followi...