2

I'm a full stack software engineer. I have worked at many companies ranging from fortune 100 companies to startups and this issue is something i have heard different points of view on. This is the situation.

In a software project where there is a need to ingest data from 1 system, implement some business logic on that data and then output the data to another system so it is consumable by the business.

In the above situation is it the product owner's responsibility to understand what the data is that is being ingested and also provide requirements around how to transform/map that data so that it can be output to a system consumable by the business?

If it is not the product owner's responsibility then how can a developer be expected to accurately give a time estimate when he/she must do the research to understand the data, determine if the mapping is possible and then engage the business to see how the mapping should be done in a way that provides value and then do the work?... Given that this would entail a lot of discovery it seems impossible to give accurate time estimations.

Thanks in advance

6
  • 1
    "accurate time estimations" is an oxymoron. Are you asking about how to estimate when you were not provided with full requirements? Also... what's the scope of the estimate you need to build? Is it to plan a Sprint or to plan the whole project?
    – Bogdan
    Sep 14 at 20:05
  • This is for a sprint planning. So basically the situation is a devs get a ticket that does not have the above requirements and the devs are asked to point it. Points are a combination of complexity and time. How can a dev have a good idea of how many points if they have dont know the above mentioned details? ... This is the situation.
    – Dan
    Sep 14 at 20:56
  • @Dan Are you including risk and uncertainty in your complexity? (There seems to be a subtext here that the product owner will be able to figure out the requirements for this data better or faster than you will be able to, but IME the fastest/most accurate way to figure out this kind of thing is with technical people doing the heavy lifting with support from the business side. So from a business perspective it wouldn't make sense to make this the responsibility of the product owner, any more than the product owner would decide what programming language you use, etc.) Sep 15 at 21:16
  • @user3067860 risk and uncertainty are not part of the estimate but complexity is.
    – Dan
    Sep 15 at 23:35
  • 1
    @Dan Some Scrum guides include risk/uncertainty in "complexity". But I guess you could include them in time instead. It has to go in here somewhere, though, since the average of stories with a lot of unknowns is that they're going to take a lot longer than an otherwise similar story that is well known beforehand--not simply for research, but because there's a high chance of finding something which adds more stuff to do. Sep 16 at 9:45
4

There's a lot of grey area, but the direct answer to you question according to the Scrum Guide is no - it is not the Product Owner's responsibility to provide data mappings. https://scrumguides.org/scrum-guide.html#product-owner

So... in your situation, the PO has a backlog item that says something like "As a sales exec, I want to see a graph of sales correlated to X demographics." or something like that. Now, either the teams know how that data works (at least well enough to do a rough estimate and start the work) or they don't. If they don't, you might need other types of backlog items, like spikes. A spike is a means to reduce uncertainty and risk.

Now, could you make a spike for every single user story that comes through? Yes... but... this is a very inefficient way of working. A good scrum master is going to encourage the team to explore what they can do to either simplify their data systems or build knowledge in commonly-tapped areas so that this isn't always happening.

4
  • Thanks. But I dont see the question I asked as being answered in that link.
    – Dan
    Sep 15 at 20:54
  • I would also post a followup question. Say for example this is correct and the PO is not responsible for mappings. Are they responsible for understanding the input data and output data well enough to be able to tell if a mapping the devs make is correct?
    – Dan
    Sep 15 at 21:00
  • The PO does not have to, no. The developers (dev, QA, etc) are responsible for building a product that works. The PO is more responsible for stakeholder engagement, prioritizing the backlog, etc. PO is "what", Dev is "how". That said, it is incredibly helpful to have a PO who has that knowledge - just not required.
    – Daniel
    Sep 16 at 16:37
  • Put another way, I'd rather have a PO who understands the business need, can bring the right stakeholders to the table, has their decisions respected, and trusts the team to do good work but has no technical knowledge than have a PO who really knows the technical side and can't do the other, because then no one on the team can do the other stuff. But having both is awesome.
    – Daniel
    Sep 16 at 16:47
2

Trust is agility's foundation. Lack of trust is painted all over the way the question is framed.

The Product Owner is indeed responsible for driving the creation of the user stories. The PO, however, is not the sole responsible for that. Specially on Stories that have a considerable amount of technical background, development team should play a critical, active role on understanding the requirements and identifying possible gaps.

It's not PO responsibility to write down the requirements to the last detail. It's Development responsibility to engage and be willing to construct, collaborate with the PO on how the requirements can be delivered in a evolutive fashion.

In a nutshell, the PO is responsible to tell you a story about what is needed and answer all what is needed questions. It's up to the development team to ask the right questions to agree within the development team how the solution will be implemented. The PO is not concerned about how the solution will be implemented. It's development team responsibility to make sure how the code is built adheres to the standards expected by the team.

As the question is framed, there's no agile team. There's a functional analyst passing requirements to development team in a very waterfall-ish approach.

7
  • Thanks for your response. However the core of the question is not about delivering every requirement in the ticket it is about understanding the business logic/process around the data. Are you' saying that it is not the POs responsibility to understand the business logic/processes of the incoming/outgoing data and how the data is processed?
    – Dan
    Sep 14 at 21:06
  • @Dan You are a team. He does not need to know the plumbing.
    – paulj
    Sep 15 at 13:46
  • 1
    @Dan, it's PO role to understand the business requirement. Chances are, this interface will demand an API so data can be exchanged. How the API will be implemented will require technical background. The PO is likely to say "you need to consume XYZ info.". "You'll ask how?". He'll answer "help me figure it out".
    – Tiago Cardoso
    Sep 15 at 20:17
  • 1
    Remember, the PO says what needs to be done. Your question is much more focused on how (because your underlying concern is not on the requirement, but on the estimate).
    – Tiago Cardoso
    Sep 15 at 20:18
  • @TiagoCardoso The question of how is with regards to how can I give a good time estimate for completion of this work if we don't know those details and the PO has not provided them.
    – Dan
    Sep 15 at 20:44
1

If a company needs to deal with these kinds of technical stories a lot, they hire/have technical product owners. If such stories come up from time to time, then the product owners groom the stories with the support of the software developers in the team.

So, my answer is; this is entirely in the scope of the product owner role.

2
  • 3
    Welcome to PMSE. Your last sentence seems in opposition to the previous one. The team as a whole contribute to backlog refinement (refinement is the preferred term rather than grooming)
    – nvogel
    Sep 15 at 6:20
  • I like your response the best because of my bias but I wont pollute the upvoting because of that. haha. Im going to let this sit for a week or so and accept the one with the most votes mine not included.
    – Dan
    Sep 15 at 20:46
1

The team as a whole is responsible for requirements and specifications. Backlog Refinement - preparing backlog items so that they are ready to take into future sprints - is a continuous process. Some teams formally allocate a certain amount of time each sprint to backlog refinement or alternatively just do it as a background task.

The point of backlog refinement however is that the story is ready to start, not that it is comprehensively specified in every detail. Regarding estimation, the team just needs enough information to judge whether a story is small enough to do in a single sprint or whether it needs breaking down further. In the case of a transformation it may be sufficient to know the number and type of sources, the number of attributes and maybe the kind of calculations that might be needed but perhaps it's not necessary to know every element of the mapping for the story to be ready.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.