Early stage user story estimation

There're two types of user stories at an early stage of estimation in terms of software development in Agile software development. They're "Data story" and "Function story".

Data story

It's the data user needs to manage. For example, in a staff management system, there're three business data, users, roles, permissions. Based on this, we have 3 stories respectively "Users", "Roles", "Permissions". Without looking at the further details, let's do a rough estimation.

1 story = 40 man-days = 2 man-months

The aforementioned stories will take 6 man-months. This may contradict our intuitions, you may think "I can do this in one afternoon". Well, what will be done within the 6 man-months?

  1. Business requirements analysis, design, coding, deployment. The workload for this step will likely be more than solely coding.
  2. Rework if requirement changes, bug fixes, additional tests. This step will take similar or much more as the first step.
  3. If multiple members participate, time spent on team communication, like documentation, discussion, reading each other's code would be considered.
  4. Distractions. Team members will absolutely get distracted by meetings, discussions, chitchats, urgent matters.
  5. ...

What can we do with this data?

By looking at the above data, we can tell the data isn't for development, but for the "cost", that is any effort can only be taken into account to the current project.

Function story

It's the user-facing operations. For example, in a staff management system, to manage users, there'll be CRUD operations, these are for business data. There're some ways in FPA, that can help give a bit more accurate estimation, compared with only with business data. But the number of "operations" can't be estimated at an early stage, as we can't tell what the operations will be. For example, at an early stage of a project, other than CRUD, what are the other operations to users? It's not clear to tell this at the beginning, however in actual development, we may miss out on the "batch update user", or "freeze user" these two operations. This tells us, at an early stage, to try not to estimate based on Function story, but with Data story.

Function story can be used for velocity measurement.

Velocity

As industry varies, quality requirement changes, software scales varies, it causes differences, not every "Data story" takes 2 man-months to complete.

The factors are many, according to research data from South Korea (S Korea has 1/3 FPA experts around the globe), the main factor is the industry. South Korea has very detailed statistics data for this, the coefficient is like:

  1. OA/MIS: 1.0 (Each data story = 40 x 1.0 man-day)
  2. Computational Science: 1.4 (Eg. Financial/computational software)
  3. Real-time Control System: 1.7 (Eg. Telecommunication/Production control software)
  4. Transportation Traffic Management System: 2.2 (Eg. Traffic/Nuclear/Aviation software)

These numbers are not accurate, it's based on real cases in organizations. Other factors include quality requirement, software scale. etc.