What proven practices are there for managing your Power Platform
Speaker:or Dynamics 3 65 product backlog in Azure DevOps? How
Speaker:much detail should your user stories contain, and how do
Speaker:you ensure that what you're doing enhances your user's experience?
Speaker:If you use an agile approach like Scrum to build Power Platform or
Speaker:Dynamics 3 65 applications, you won't wanna miss
Speaker:The insights that Danica Hill shares in this episode of
Speaker:Amazing Apps, the podcast for Dynamics 3 65 and Power Platform
Speaker:professionals that wanna build amazing Agile business apps. I'm
Speaker:your host, Neil Benson. I'm a Microsoft MVP,
Speaker:and I've coached and trained Thousands of business apps
Speaker:builders to use scrum since I first used it myself in
Speaker:2008, and I'm on a mission to help you use
Speaker:agile practices to build amazing business apps for your
Speaker:users as well. This is episode 152. If you're
Speaker:listening to the audio podcast, you'll find show notes with links to resources
Speaker:and a transcript at amazingapps.show/one52.
Speaker:And if you're watching on YouTube, You'll find them in the description, down
Speaker:below. Here's Danny Cahill. Danny, welcome
Speaker:back to Amazing Applications. I was just looking to see how many times
Speaker:you'd been on this show before, and I thought it was 2,
Speaker:3, maybe 4. It's actually 6th. This is your 6th appearance. Welcome back, my
Speaker:friend. Thank you. Yeah. That's my favorite show.
Speaker:Right? It's everybody's favorite show, Danny.
Speaker:Absolutely. Yeah. Yeah. Thank you. Yeah. Yeah. Absolutely. And it's always a
Speaker:pleasure to, you know, discuss with you and bounce ideas,
Speaker:and And you have been actually well, that's why I'm 6 times, right, because you
Speaker:have been kind enough to kind of host some of my
Speaker:conversation with other guests. Right. Yeah. Absolutely. So that counts too.
Speaker:I noticed you've been doing a lot of work with Hamish recently. So if you
Speaker:and Hamish wanna do a takeover episode, you're more than welcome. We'd love to to
Speaker:have you. But today, we're gonna focus on managing
Speaker:the product backlog, which is something a lot of teams struggle with. A lot of
Speaker:teams could do very, very differently From 1 organization to the next, what do
Speaker:you think the biggest challenge is that business apps teams have managing their
Speaker:product backlogs? What have you seen out there in the wild in your experience? Yeah.
Speaker:So the number 1 challenge, really, what I what I see, Radey, is kind of
Speaker:structuring almost what is the best or what is the the right
Speaker:structure for The the project that you are in. And there is no
Speaker:I found that there there are tapes or there is way you can structure
Speaker:your backlog, but Every project will be different, and every project will have
Speaker:to kind of adapt slightly to how the
Speaker:client works, where they are in the journey on managing for the
Speaker:backlogs and so forth. Right? So it's always a bit of a tweaking. I
Speaker:found myself, Like, how I use to structure the the
Speaker:backlog and in my head as well, and how I would recommend my clients to
Speaker:do if they don't know it, they just want our recommendations is I
Speaker:always try to follow a bit of a high level process. Right? So
Speaker:even if you have your kind of story map, I do I don't do
Speaker:often, Like, real story mapping, but I cannot follow the
Speaker:same process where I decompose the high level phases
Speaker:Yeah. Of a of a user, of a client
Speaker:throughout the journey. Right? And those will be my big building
Speaker:blocks. It's easy for me to understand, And then I go
Speaker:to the level of so that would be my epics, and then I have my
Speaker:features, and then I go down to the level. But that's how I structure it,
Speaker:But it's a bit of a challenge I see, and if there is an
Speaker:existing backlog already, like everyone is doing it differently, like
Speaker:sometimes by apps, by technology Yep.
Speaker:By and, you know, it sometimes it makes sense. Right? And I was not there
Speaker:at the beginning with the person. I cannot really judge. But if I would start
Speaker:from from scratch, I would strive to structure it that way. I'm not really
Speaker:fine. Responded directly to your question and maybe responded way more. But yep. Okay.
Speaker:So let let's let's tackle some of those ideas 1 by 1. Imagine
Speaker:Mhmm. You're in a greenfield scenario, so there's no backlog management
Speaker:tool there Mhmm. Today. First of all, Who
Speaker:do you think should manage the backlog? Do you, as a expert in
Speaker:managing requirements, do you take that responsibility on? Or do you like
Speaker:your product owner? Who's typically, you know, somebody from the customer side? Do
Speaker:you coach them in how to get to grips with, you
Speaker:know, Jira, Azure DevOps or some other tool. Who do you think should do
Speaker:most of the work? Yeah. Oh,
Speaker:look. Very early. I I would start if I can start
Speaker:from from an ideal project. Right? Very early on, you
Speaker:wanna you wanna coach your product owner and make him
Speaker:responsible that they are the owner of the product backlog. Like, this
Speaker:there is no there is no question about that. Right? They need to
Speaker:know that they own the product backlog and what is in there.
Speaker:What it means owning? They're making decision on prioritization,
Speaker:They make decision on namings and how we
Speaker:want to structure this. The challenge we often have is A lot
Speaker:of them don't have a clue on how to do that.
Speaker:They know their business pretty well, right? They know the business, They're
Speaker:pretty, you know, high stake, but I hire in the in the
Speaker:management layer and everything, but they have never done
Speaker:of have never done product ownership, They don't know exactly what is a
Speaker:product backlog. How do we who how do I even name that thing? So we
Speaker:it's a bit of a guidance where most of the time Look. Ideal
Speaker:scenario, the product owners have done that in the past. They know the product their
Speaker:product backlog. We can just guide them maybe on restructuring a bit,
Speaker:What makes sense to do before another epic because, otherwise, it
Speaker:does it breaks the system or something. That's ideal. But most of the time,
Speaker:they are they are new. And then in this case, we would
Speaker:often come up with a a structure of the product
Speaker:backlog based on the language and that High level
Speaker:journey that we have discussed. So we have those workshops maybe with, you know, with
Speaker:the client and stakeholders. We map those high level,
Speaker:steps in the journey, which then leads to
Speaker:epics. And we do that together in consultation with the client, and we
Speaker:would most of the time, One of us or myself, I would
Speaker:create the epics because they don't know the tool. So it's almost like a
Speaker:guidance throughout the beginning, But throughout the 1st few
Speaker:weeks, 1st few months, that is slowly transitioning.
Speaker:Right? Yeah. They start, taking over DevOps, and
Speaker:then we Tag them in in in user stories. We tag them in
Speaker:features. We tag the metrics. And then gradually,
Speaker:Ideal scenario is that you have a very senior BA or even the product
Speaker:owner going in, and then we'll Groom the
Speaker:product backlog. We change split the epics into epics or
Speaker:kind of group some features together or, You know,
Speaker:cancel them completely or rename them. Right? But that is kind of a
Speaker:bit of a journey that I've seen, but Yeah.
Speaker:That is kind of an ideal scenario I would I would see. Yeah. I I've
Speaker:my my experience mirrors yours exactly, Danny. So I'm working with
Speaker:1st time product owners, people who understand their business very well. They're in operations. They're
Speaker:in sales. They're marketing. They're some kind of leadership position. They know the business
Speaker:processes. They know existing systems. They know the business challenges they wanna try and solve
Speaker:and the outcomes they're looking for. They don't know how to use Azure DevOps. They
Speaker:don't know an epic from a feature. And so we drive the tool
Speaker:at the beginning, with their blessing and their oversight. And then gradually,
Speaker:they get more hands on with it. I still quite often have one of the
Speaker:developers who's got a background as a business analyst, still doing most of the day
Speaker:to day work in Azure DevOps. Yeah. The accountability for what's in
Speaker:scope, what's next, what's high priority, what's not is always with the
Speaker:customer's product owner. So my experience is very similar to yours.
Speaker:Yeah. Yeah. Yeah. Absolutely. Yeah. Glad to hear. Yeah. If,
Speaker:if you have a choice of which backlog management tool to use,
Speaker:Jira is very popular here in Australia. As you as you know, Atlassian is a
Speaker:big Australian tech company. Microsoft Azure DevOps is
Speaker:very popular, of course, amongst the Microsoft community, And there are there are dozens or
Speaker:hundreds of others. Do you have a preference if given
Speaker:the choice? I have a strong preference for DevOps. Yeah. Good. And
Speaker:Good. It's a it's a preference. I've used it for many
Speaker:years. I just use very, I think
Speaker:a few years ago, I used Jira on another project, but that's it. Like,
Speaker:I think it's a personal preference in term of just a project that
Speaker:was involved with is plan ahead DevOps
Speaker:already, or they let us make the choice and we went with DevOps? So very
Speaker:strong preference for DevOps. Yeah. Yeah. What about yourself? Yeah. I I
Speaker:mostly, I've been using Jira for the past few years, but when we get a
Speaker:chance, we'll use Azure DevOps. And I don't know what it is about
Speaker:Jira, but it's quite often just badly configured or it's It's an
Speaker:enterprise tool that's being configured for lots of different teams. And then I can
Speaker:say, hey. Look. I wanna run a scrum team following these principles and these
Speaker:practices. Jira hasn't been configured for that kind of approach.
Speaker:And Yeah. So it's just there's there's just some weird things like
Speaker:You have to finish the sprint, and then you have to manually
Speaker:start the next sprint. Like, one sprint should follow another naturally. I don't know. There's
Speaker:Yeah. Just some things I don't like about Jira. Yeah. Right. Okay. But it's very
Speaker:popular. Azure DevOps just seems to be a bit more natural. And, of
Speaker:course, it's where most of my developers do, You know, pipelines
Speaker:and source control, everything's been driven from there. I
Speaker:haven't seen I haven't seen many of my teams use
Speaker:GitHub. And I know that that is you know, there's a lot of overlap these
Speaker:days between GitHub and Azure DevOps from a technical perspective.
Speaker:I'd say DevOps is still stronger from a boards and backlog perspective.
Speaker:I haven't seen I haven't seen anybody drive us towards using GitHub.
Speaker:Yep. Yep. That makes sense. You you talked a little bit about the
Speaker:hierarchy of Items that are in a backlog. Are you
Speaker:always using user stories, and is that the smallest, you know,
Speaker:type of item in your backlog? How do you How do you structure the hierarchy
Speaker:of items? Yeah. It really, again, depends the size of the of the whole
Speaker:project. Right? If it's very simple, Maybe we have features and
Speaker:user stories. Right? And that's it. If it's a bit bigger, you go
Speaker:to the level of epics. If it's quite large, I would sometimes so
Speaker:I I had a project where I created something above epics because I had I
Speaker:needed, like, 5 levels almost to structure. It's just from a structuring
Speaker:perspective, right, where, it could have been
Speaker:different projects too. Right? So it's kind of, you know, but basically yeah.
Speaker:Usually, epics feature user stories And then
Speaker:sometimes, and I have been introduced again to the concept of
Speaker:task by a product owner on on one of for one of my client, and
Speaker:it start It starts to yeah. And it's
Speaker:it helps sometimes where you have a user story and it's
Speaker:more a few guys need to do something specific, then we can
Speaker:create task for us. And it's almost like reminders
Speaker:to kind of you know, I need to Investigate this
Speaker:for that specific feature or I need to do a bit of design for
Speaker:that. This is how I would use task. It's not linked to so we
Speaker:don't really track tasks in, you know, in boards as well
Speaker:because I think you can track them as well in boards. Yes. I we used
Speaker:to do that in the past a years ago with another product owner, but that's
Speaker:not what I'm I'm talking about. It's more task where you can just manage
Speaker:your own workload within and everybody sees where you are.
Speaker:So it's used pretty loosely, to be fair. But,
Speaker:yeah, those are my 3 levels. Just on on the task thing,
Speaker:Yeah. When teams are using tasks and they've got a Kanban
Speaker:board style, visualization for tracking their
Speaker:work, The user story or the the product backlog item would remain
Speaker:on the left hand side, and the tasks would move through the columns until they're
Speaker:all done. Whereas if you don't wanna use tasks,
Speaker:generally, the whole story or the whole product backlog item moves
Speaker:through the columns towards done.
Speaker:Sounds like you're occasionally using tasks where that's helpful, but you're
Speaker:still you're not, you know, tracking the progress of individual tasks across the
Speaker:board. Working at a product backlog item level? Yeah. We
Speaker:we're really using user story as you mentioned, and we move user stories
Speaker:from one phase another. You know, analysis dev. We can talk about that a bit
Speaker:later. The task you can even see them on the board. Right? In DevOps, you
Speaker:can see, Like a little number
Speaker:and and indication how many task are open underneath just as an
Speaker:indication. It doesn't force anything. It's just there and as an indication,
Speaker:it's used loosely. We haven't really structured it, so
Speaker:that helps on it's that 1 project where I I'm using task. Otherwise,
Speaker:No. Okay. So for those of you not, not watching the YouTube
Speaker:version of this, discussion, I I kinda threw my head into my hands
Speaker:when Danny talks about tasks because there there are a couple of anti patterns I've
Speaker:seen, and and Danny doesn't sound like he's falling into these anti
Speaker:patterns. But I used to see teams With a product backlog item,
Speaker:and then they they would create tasks underneath or subtasks, sometimes they're called.
Speaker:And those subtasks would look like analysis, design,
Speaker:development, testing, deployment. And so it's a series of waterfall
Speaker:steps for each product backlog item. And so we
Speaker:just had a 100 tasks all called analysis and a 100. Yeah. Just
Speaker:Very repetitive, not very helpful. But, if you don't
Speaker:use tasks like that and you do use them occasionally as really important stuff that
Speaker:needs to get done, needs to get tracked, And the other people might be interested
Speaker:in, then I think that's a very fair, fair use of some tasks. So,
Speaker:I applaud you, Danny, in in, you know, figuring out what works for your team
Speaker:because that's what it's all about. Right? Yeah. Yeah. Absolutely. Yeah. I'll be
Speaker:keen to to understand as well how you, yeah, How you manage your
Speaker:analysis task in user story or your analysis activities and user
Speaker:story, but we can Yeah. We can, yeah, Talk about
Speaker:that in a sec. Well, let's let's go to the next because that's that's where
Speaker:that's where user stories start. Right? We Yeah.
Speaker:I would typically have, similar to you, at the outset of
Speaker:the project, a series of epics, maybe 12, 15, or 20
Speaker:epics, You know, from small and mid sized project, and that
Speaker:defines the scope of the project. Mhmm. And then we we start to refine
Speaker:those epics, which is the most important epic. Oh, it's Contact management. Contact management's
Speaker:always a good one because it's kind of the foundation for a lot of the
Speaker:other features that are gonna come later. So we start with contacts. We'll
Speaker:refine that epic down into creating a contact, updating a
Speaker:contact, duplicate detection and emerging contacts,
Speaker:importing contacts, and so on. And so we're splitting. That's the 1st shot.
Speaker:Split the epic down Yep. Into something smaller, maybe a feature, maybe
Speaker:a user story. And then we start to enrich that
Speaker:Product backlog item with a decent user story title
Speaker:or description, and then some acceptance criteria and and the estimates
Speaker:get, created and and off we go. Is that similar or completely
Speaker:different to your process? So
Speaker:most of the tasks that we could define, I guess, From a feature perspective and
Speaker:in breaking them down when we have our workshop or grooming
Speaker:session, and then we decompose them in those user
Speaker:stories. But I've So I would follow the same in in most
Speaker:scenarios. Now where I'm finding some challenges,
Speaker:and maybe your your input might help me here, is Sometimes
Speaker:a task might require a decent amount of analysis
Speaker:sorry, the user story might require this amount of analysis. And we
Speaker:kind of it's because we we we thought about as a user story
Speaker:when we discussed that feature, and then we we now it's time to implement
Speaker:that feature, and then we that that user story, and we realize it's
Speaker:actually a lot of analysis. I I need to talk to integration team. I need
Speaker:to talk to this, And then we need to figure out how we got so
Speaker:it's a lot of kind of analysis. And then, basically, that
Speaker:user story, which is big,
Speaker:then it's becoming this is where sometimes I don't know I don't
Speaker:have a process in my head what best to follow where I would then
Speaker:say, okay. That is my analysis user story,
Speaker:and I will I will spend some time I will spend some time
Speaker:Or doing the sprint analyzing and kind of making
Speaker:a bit of a design and then decomposing that in maybe other
Speaker:user stories. Sure. This is
Speaker:typically what I would follow because then it's assigned to me. It is always assigned
Speaker:to one of my team member for the the print, and it fits
Speaker:within the sprint, and we can finish it within the sprint. But I'm
Speaker:not sure if that's the best way. I feel there is better way to to
Speaker:do it. What What would you recommend? I think my my
Speaker:approach is probably fairly similar, and it's not the same approach. Like you said, it's
Speaker:not the same approach every time. Different customers Yeah. Want us to work slightly
Speaker:differently. Generally, there'll be a developer in the, in
Speaker:the team. Who's got a business analysis background. That developer
Speaker:is working closely with a product owner and the subject matter experts, and they
Speaker:have a, an epic broken down into features or user stories,
Speaker:And they have a status that says either in analysis
Speaker:or not ready. Quite often, we just call it not ready. And that's
Speaker:where a Product backlog item is being enhanced
Speaker:with better descriptions or, maybe a wireframe of how
Speaker:the user interface might look or some sample data Or, you know, whatever it
Speaker:is that that the an analyst needs to gather. Like you said,
Speaker:integration requirements. And and so once it's We'll see. Analyst
Speaker:feels it's ready. They'll bring it up in the next
Speaker:product backlog refinement meeting. We used to call it grooming, but the
Speaker:the scrum guide updated that language a couple years ago. So now we call it
Speaker:refinement. Sometimes we call it elaboration. And that's where the developers roll
Speaker:there with the analyst and the prop owner and saying, okay. This one's we think
Speaker:it's ready. Okay. Well, let's take a look at it. So the developers will
Speaker:discuss it, ask some questions, try and Dive a little bit
Speaker:deeper to this. Once they feel it is ready, then they'll estimate it, and
Speaker:that's where we hope the estimate's pretty low. 1, 2, 3, 5
Speaker:points. Anything bigger than that, and it's still a feature. It
Speaker:probably needs to get split again. So we try and, you know,
Speaker:figure out what what kind of size it is. And once everybody's happy, all
Speaker:the developers are comfortable. They know enough about it to estimate it. Doesn't have to
Speaker:be 100% perfect. You might not have every answer to every question to
Speaker:that stage, but we know enough to estimate it. Yep. And it's ready to take
Speaker:into a sprint. So we update the status. And When
Speaker:we're doing sprint planning, we can look at all the product backlog items that are
Speaker:in that ready status, and we can consider bringing those into into the sprint
Speaker:backlog. Something similar, I think. Yeah. Yeah. Something
Speaker:similar. I think is that true yeah. Yeah. Okay. And
Speaker:you don't estimate the analysis time. You don't estimate? No. Because this
Speaker:is what sometimes we do here I mean, I'm doing
Speaker:is okay. For the sprint, because maybe it's a big
Speaker:analysis task. Right? A lot of it's for the screen. We
Speaker:kind of put a u some user stories against
Speaker:the analysis. Sorry. We put the story points against
Speaker:the analysis time, which helps us a bit
Speaker:estimating the capacity for Okay.
Speaker:That's that's where so this is where I have my user story
Speaker:with a lot of details in there, but I still need
Speaker:to do quite some analysis. Is not ready for dev, then we would kind
Speaker:of consider this as the analysis user story, put some story points
Speaker:so that we can kind of, You know, estimate the capacity, and then
Speaker:from there, we would probably create additional user stories. I don't know
Speaker:if that's the best way to do it. But Yeah. I I
Speaker:I encourage my teams only to estimate the work that's gonna
Speaker:generate a product that the product owner has asked for. So,
Speaker:Yep. Typically, it's it's some working software. Right? I want I need this this button
Speaker:or this feature or this workflow, whatever it is. Or it could be, I need
Speaker:this document. I need to use a guide or I need a, yeah, as
Speaker:is system description, you know, whatever the, the artifact is.
Speaker:So we estimate all of that work There then there's work that the dev
Speaker:team needs to do to get things done. Right? I need to stand up a
Speaker:new environment. I need to do some analysis on a user story. I need to,
Speaker:spend some time upskilling Danny. He's gonna I'm gonna train him in
Speaker:all the data migration, jobs that we've got running. Yeah.
Speaker:That work, we don't estimate because it doesn't drive
Speaker:functionality for the end users. It's not something they care about. And so,
Speaker:yeah, if we have to do a lot of that work, the team will just
Speaker:say, Hey, look, we normally get, you know, 50 story points per sprint
Speaker:done, but we've got all these chores to do. Gonna reduce our
Speaker:capacity to 40 because we have more chores than usual. There's always
Speaker:Yeah. There's always, work the team needs to do that the product
Speaker:might not necessarily consider valuable, and so we we call those chores,
Speaker:and everything else is a is a story. Yeah. Okay.
Speaker:Cool. Yeah. So it's, sounds pretty similar.
Speaker:Tell me about the type of acceptance criteria that you're writing
Speaker:On a product backlog, I'm gonna use your story. Yeah.
Speaker:So look, I wouldn't draw I mean, I would encourage
Speaker:BA to help me write or write the the acceptance criteria
Speaker:most of the time. But then
Speaker:because I would prefer them to be written from kind of a business lens more,
Speaker:you know, so and and I strive to follow the
Speaker:best I can, some some exam
Speaker:I mean, a consistent way of writing those acceptance criteria that I've learned from
Speaker:other good BAs before I've worked. Right? So I'm not Claiming it's mine,
Speaker:but, you know, kind of giving the scenarios, like, even that
Speaker:scenarios, if this happened then and it kind of And
Speaker:it's kind of a nice way if I have a few scenarios even as a
Speaker:as a dev or an architect when I go through this. It's kind of
Speaker:Making me empathize with the scenario I need to think about
Speaker:when I'm designing the system. It helps me even kind of writing
Speaker:scenarios later. And even if I'm doing my own unit testing, it tells me go
Speaker:through this. Am I meeting the acceptance criteria? So this is what I
Speaker:would strongly recommend doing, And I would
Speaker:have to write them. Sometimes I'm I'm writing them because, well, for whatever reason, I'm
Speaker:the only one on the project or The b there isn't a really a a
Speaker:real BA on the project helping me, but, otherwise, I would strongly recommend
Speaker:the business or the BA to really write them that way.
Speaker:Yep. Makes sense. Are you reading the same? Yeah. Same. So we
Speaker:call it behavior driven development, BDD, given, when, then,
Speaker:And we we use that that structure, and that's how we write the
Speaker:acceptance, acceptance criteria.
Speaker:Our testers can really easily turn those into test cases.
Speaker:What we find though, is, You know, as you begin to
Speaker:enrich your user story with those acceptance criteria, if you
Speaker:uncover quite a lot of them, that could really
Speaker:Highlight that this story is way more complicated than we initially thought. Yeah. We might
Speaker:need to revise the estimate. Normally, we've done all the acceptance criteria before
Speaker:estimation. But if you see a a user's degree with
Speaker:2 or 3 acceptance criteria, well, that's okay. If you see 1 with 7 or
Speaker:8, 10 acceptance criteria, like, oh, wow. You know, I need to create a contact.
Speaker:If the contact is this type or that type or the other type or if
Speaker:it's Tuesday or if it if it's every other Thursday or if the weather is
Speaker:wet, you know, all these Strange scenarios that come up
Speaker:whenever you wanna just create a contact. That shows you you might need to split
Speaker:your user story. So really really good way of, iterating
Speaker:to get to the, you know, this this is ready.
Speaker:Yep. Yep. Yep. Yep. Yep. Absolutely. Do you document anything? So that's
Speaker:maybe another question I'll have for you. So where would
Speaker:you document some of your design ideas? Do you document them
Speaker:In the user story somewhere or in separate documents and you link it
Speaker:or somewhere else completely, where do you have that? We try and keep
Speaker:it Really lightweight. So quite often, it'll just be a comment
Speaker:in Azure DevOps. So Yeah. When we're when we're estimating, the
Speaker:developers will say, well, we're estimating this on the basis that We think,
Speaker:we can solve this with a custom table, 2 flows
Speaker:and, a form. Right? And
Speaker:so it that's the that's the kind of design idea.
Speaker:Yep. That's good enough for estimating. Then
Speaker:once the sprint starts, we
Speaker:have normally 3 people, working in a team on a user
Speaker:story, at least 3 people. There's the analyst who's maybe done the refinement who knows
Speaker:it best. That could be the product owner. It could be a subject matter expert
Speaker:or one of the developers who's a business analyst. Plus
Speaker:The developer who's gonna build most of the functionality, and
Speaker:it might be a couple because it might be a professional developer and a maker.
Speaker:Yep. So there might be a couple of developer developers. And then
Speaker:we have another developer, because in scrum, everybody's a developer. But
Speaker:this is a, a tester. Right? Somebody with a professional
Speaker:qual quality assurance background, and they are gonna test it. So the we call
Speaker:it the 3 amigos, and they have a quick meeting,
Speaker:when they're ready to pick up this product backlog or sprint backlog
Speaker:item, and they say, right, have we confirmed we got everything? We still think it's
Speaker:ready. That design, it still looks appropriate. Yes. Have we learned anything new? No. It's
Speaker:all good. Let's let's get started. And then they come up with a little plan
Speaker:that says, alright. It's Tuesday. The sprint ends,
Speaker:at 2 weeks from today. So I'm going to try and have it built.
Speaker:I'm gonna do a quick demo with a product owner on Friday, then it's gonna
Speaker:be ready for testing. When do you think that, how long are you gonna be
Speaker:take to test all that? I can get the test done on Monday evening. Okay.
Speaker:What's gonna be done By Tuesday, halfway through the sprint. Great.
Speaker:And so, yeah, the the 3 of them in those 3 amigos session, well, just
Speaker:a good a good sanity check everybody's ready to start work. Yeah. Off
Speaker:we go. Yeah. Yeah. Yeah. Yeah. Yeah. Cool. Yep. Perfect. Thank you for
Speaker:that. Yeah. Are you are you doing it differently whenever Whenever you're ready to go
Speaker:and start work on it or or capturing your design ideas, how much design are
Speaker:you doing up front? No. It's it's very, actually, very similar, I
Speaker:think, to what to what you do, I think, in your team is just some
Speaker:high level concepts. Right? So, basically, I would if I
Speaker:have Access to making changes to DevOps or ask the client to make
Speaker:changes to DevOps. I would recommend I myself try to have
Speaker:an additional box with design ideas in there
Speaker:Where instead of having and and then having them probably to the
Speaker:same level as as you at the beginning is, what
Speaker:Kind of automation or workflow do you wanna use? Flow, this,
Speaker:that. What kind of tables do we thinking? Just because when we
Speaker:discussing, we have some ideas. We We just want to capture them so that it's
Speaker:not forgotten when we start working on this. Right? So we capture them then,
Speaker:and then as we go through The user
Speaker:story, if I would work on the user story, I would
Speaker:often have maybe a small diagram Next
Speaker:to it or a small presentation or as an empty
Speaker:diagram or whatever, then I would document. I will store them as
Speaker:attach not in the box. Don't know that that at the touchpoint in DevOps
Speaker:in a specific SharePoint location that we have linked to Azure
Speaker:DevOps, and then we link Document will link URL,
Speaker:so we point to those URLs. So, basically, I would say, you
Speaker:know, design ideas would be this, this, that table, and then that
Speaker:portal to me and this and that, and then entity diagram, and
Speaker:then no hyperlink to Perfect. An entity
Speaker:diagram or or a conceptual diagram or something. Right? And
Speaker:this is stored then in a linked SharePoint folder to that users
Speaker:to that user story effectively in that case. So this is basically how,
Speaker:you and then that folder in SharePoint, I'm actually
Speaker:working with another with another client where they have a bit
Speaker:more structure in those folders as well. So for example, if,
Speaker:documentation is stored there as well. So for you a user story feed, a
Speaker:documentation is required. We would store that documentation there with a specific
Speaker:subfolder of that folder of that DevOps
Speaker:item. Yeah. Good. Okay. Yeah. Yeah. Do do
Speaker:you have to do much of a design document before the project
Speaker:gets started? Do you find, maybe a enterprise architecture
Speaker:team or solution architecture team requires you to do some kind of upfront
Speaker:design documentation that they have to approve Before you get
Speaker:started, I know Microsoft Fast Track, for example, is pretty
Speaker:keen for Microsoft partners to create the solution
Speaker:blueprint document Yeah. Which is It's not even a it's
Speaker:not even a solution architecture, but it's, covers all the big topics, like how
Speaker:we're gonna do data migration, how we're gonna do integration, and addresses,
Speaker:Probably the top 12, 15 things you need to consider.
Speaker:Those are really good documents, I think, to create. Long as they're reasonably
Speaker:lightweight, And we're not bound by them, or we can negotiate them
Speaker:later. Do you find yourself doing a lot of that with bigger customers?
Speaker:Yeah. Actually, I'm doing quite quite a lot of this kind of work, right, which
Speaker:is kind of kind of between discovery and,
Speaker:envisioning and and kind of one of the output that I that I
Speaker:use is is a solution blueprint, which has very similar,
Speaker:you know, subsections as what is in the Fast Track,
Speaker:right, which is effectively it's kind of the the
Speaker:question you need to ask. You you need you need a high
Speaker:level approach for each of those topics before you you start.
Speaker:Right? The Yeah. It's essential question you wanna ask that you wanna have documented
Speaker:in a high level way kind of And kind of have
Speaker:your I use often like those
Speaker:conceptual diagrams, a bit of an high level architecture diagram,
Speaker:And then integration with maybe an integration diagram high
Speaker:level, what are the concept or the system,
Speaker:What what what are the direction of the integration or so
Speaker:that we at least have a had a discussion doing that, you know,
Speaker:discovery or project envisioning, whatever you call it. We had a discussion
Speaker:about those topics, and we have an idea
Speaker:To also kind of provide a bit of an estimate when you're going to do
Speaker:the roadmap on the whole thing, but an idea of how we're going to approach
Speaker:So that there is no big surprises halfway through the project
Speaker:that we suddenly cannot integrate with the system, and that
Speaker:integration is effectively deal breaker or whatever. Right? We
Speaker:don't wanna have we wanna limit the number of surprises.
Speaker:That's that's really the key of that, I think, that that solution blueprint that that
Speaker:project is that you wanna limit the risk and the surprises down the project. You
Speaker:will always have some, but you wanna limit them and at least
Speaker:address the biggest one. Alright. That sounds very similar to what I'm doing. I I
Speaker:know I've had to take it a step further when I'm working with
Speaker:regulated organizations where there's a very mature enterprise architecture.
Speaker:And I try not to do it all upfront, but I give them the high
Speaker:level picture just to begin with. And as the project proceeds, we'll go deeper
Speaker:into a topic. Like, we're gonna do an integration with this
Speaker:Existing system. Here's our design pattern for for that
Speaker:integration. We're gonna use Boomi or we're gonna use MuleSoft or
Speaker:use, Azure functions and and logic apps, get that kind of
Speaker:approval. And I think that they like to have some oversight of those
Speaker:patterns because, You know, they want us to reuse existing patterns where we
Speaker:can or, at least stick within the bonds of what they can support
Speaker:later. So Yeah. Yeah. A little bit of upfront design. Never
Speaker:heard anybody. I just try not to get everything, you know, set in concrete before
Speaker:we start. Absolutely. Yeah. Because things change so fast and quickly that
Speaker:yeah. What are some of the challenges your your you or your customers
Speaker:have faced recently when it comes to managing a backlog? Anything that that's really
Speaker:You know, people are grinding their teeth about that, you
Speaker:can you can help us solve and avoid.
Speaker:Look. I have seen so I think a structure
Speaker:like I said, a structure and and and
Speaker:Managing a product backlog itself requires a
Speaker:bit of, I think, of experience and and kind of you had you had
Speaker:to done it in in the past to kind of be familiar with it. Right?
Speaker:And I and clients that haven't done it using a tool like
Speaker:DevOps or Jira Would manage your product backlog, you know, in
Speaker:Excel, I've seen those scenario whose where,
Speaker:you know, you you you jump into or you start a project And
Speaker:then the client opens, you know, a spreadsheet
Speaker:full of requirements and columns with statuses and
Speaker:Yeah. And the filters stop broking, and then, you know, the next day,
Speaker:they open the spreadsheet and it doesn't load because there's so many things. I have
Speaker:seen those scenarios. Right? And I've I've been in those meetings where it's
Speaker:challenging even to go through the requirements and follow the statuses.
Speaker:Right? So I think the 2 here and and how you manage it
Speaker:also plays a big role. And when I see that, I I strongly
Speaker:recommend my client to take a look at that
Speaker:other tool that is made for that, right, and Kind of
Speaker:help them converting whatever they have somewhere else, whether
Speaker:it's spreadsheets or word document or Yep.
Speaker:Into a tool like DevOps. So that's one of the challenge I have
Speaker:seen. When you are in DevOps, I guess, Like we
Speaker:discussed at the beginning, right, is that adoption of the tool that will take a
Speaker:bit of time. Yep. I think I think the
Speaker:advice would be is just you you you just need to allow
Speaker:your client time to To
Speaker:onboard and get familiar with it. Right? It just takes
Speaker:time, but it happens. Like, if you actively engage them, if you everyday
Speaker:open DevOps or if you Work in DevOps. You tag them in
Speaker:DevOps, in comments. They kind of forced after
Speaker:some time to kind of capture their thoughts and the details there.
Speaker:And after a bit of time, everybody's using it. And then 2 months from now,
Speaker:suddenly the plan is using it and and really driving it as well.
Speaker:Yes. And that's kind of a a success. Right? So I think this this is
Speaker:also a challenge. Just give time for
Speaker:the organization to adopt it and And use it because
Speaker:maybe at the beginning, they won't like it or they don't wanna use it and
Speaker:so step by step. And then after a few weeks, a few months,
Speaker:I've seen that they really start using it. Yeah.
Speaker:Those would be the 2 ones, to be fair. Yeah. Okay. One
Speaker:1 1 final question for you, Danny. And then Yeah. If you've got a few
Speaker:minutes, I'd love to do a little bit of a retrospective with you. We can
Speaker:get to know you a bit better, what you've been up to recently. Where do
Speaker:you stand on deleting product backlog items?
Speaker:Like, I don't delete. Okay. Sorry. Go ahead.
Speaker:So Ryan Ripley, he's a professional scrum trainer from Agile for Humans. He
Speaker:is big on deleting, pruning Yeah. Your product
Speaker:backlog item to be as small as Really realistically possible, and
Speaker:that includes hard deleting, you know, tearing up Yeah. Getting
Speaker:rid of items that are never gonna get delivered. He, I don't know, wanted he
Speaker:tells a story about he was at a conference, and he had to stay standing
Speaker:until he called out the you know, how old is your product? Oldest product backlog
Speaker:item. Yeah. And the 1 guy remains standing the longest. Had a 9 year
Speaker:old product backlog item, you know, had been at the bottom of the
Speaker:product backlog for 9 years. And Ryan said, just delete it. It's
Speaker:never gonna get delivered. If it has hasn't been important to anybody in the last
Speaker:9 years, it's never gonna get done. So Yeah. I don't
Speaker:know. You don't like deleting? Well, if I make a mistake,
Speaker:yeah, if I make a mistake, I create, you know, I, of course, I will
Speaker:delete it, but otherwise Well, you have the removed state, so I
Speaker:usually don't if someone had an idea somewhere at some point, maybe
Speaker:it made sense. So I would I would change the status to removed
Speaker:from the product backup, which is that soft delete. Yep. Inactive in
Speaker:Dynamics with the reason, We try to always try to add a reason in
Speaker:the comment removed because it has been merged with this one or Right.
Speaker:Whatever whatever the reason, it goes out of of the
Speaker:listing. It goes out. You can but you can always find it and find the
Speaker:reasoning why. Yeah. I don't know.
Speaker:I agree. Maybe I yeah. And maybe after, yeah, maybe after
Speaker:5 years, if you look at your history and But why would you?
Speaker:I mean, it's there. It's invisible. Yeah. It doesn't
Speaker:it doesn't bother me. I think it could be really nice if, you know, if
Speaker:you come up to me 3 years into the project or after we're going live
Speaker:and tell me, whatever happened to my idea, I had suggested this thing, or my
Speaker:boss suggested this thing, and we can go and trace it back and say, yes.
Speaker:Look. It was in here. It was discussed by the product owner. Yeah. She
Speaker:she deprioritized it. She she conferred with your boss, and they agreed it
Speaker:wasn't, worth spending a lot of time and money on.
Speaker:And that saves us creating a new item to to go with
Speaker:do the same kind of evaluation all over again, If we can go and
Speaker:find that old old item. So I, I really like it. Yeah. And yeah, I
Speaker:wouldn't, I wouldn't encourage people to delete stuff if there's an convenient way
Speaker:of hiding things And keeping the mode of, out of harm's
Speaker:way. Yeah. Cool. Yeah. Yeah. Yeah. I have 1 question for you, though,
Speaker:if possible. So I know and then you I think you commented on
Speaker:on someone's LinkedIn post somewhere, mine or maybe someone
Speaker:else, That and you you had a a way of writing
Speaker:user stories in a reverse
Speaker:Yeah. Format, not starting with as a actor. I do. You were
Speaker:writing it differently. Can you can you tell me
Speaker:remind me how you do it and why? Yeah. So the A very
Speaker:common user story template is, as a
Speaker:actor, I can Yep. Do something so that I get some value.
Speaker:First of all, I don't think having the actor, enumerated in the
Speaker:user story is helpful. Quite often, we have lots of different
Speaker:types of users who can use a feature. Right? I don't wanna say Yeah. As
Speaker:a customer services user or as a sales user or as a marketing user or
Speaker:as an operations manager, I can so that. It's just
Speaker:Hard to read. Yep. Instead, I just dropped that bit off. I
Speaker:dropped the actor and say, so that So
Speaker:I start with the value statement at the at the beginning so that we can
Speaker:enhance our customer experience. I can merge
Speaker:customer records together. And then what I do
Speaker:is I use the tagging feature in Azure DevOps to
Speaker:tag which roles can use this feature, right? Or you'll be targeting
Speaker:really with it. And so if I ever wanna say, should we all these features
Speaker:we built for sales analysts or finance,
Speaker:analysts. I can quickly search your filter on the
Speaker:tag and all the user stories that we're building for the those people
Speaker:show up on the list. Yeah. And it's a much easier way of
Speaker:organizing, by by persona or stakeholder or user
Speaker:role, what we're building for. And the value statement at
Speaker:the start just reinforces the fact that we
Speaker:need to focus on creating valuable Functionality.
Speaker:And if you can't describe the value, then is it
Speaker:really worth doing the work? Sometimes you just have to do the work. Yeah. Focus
Speaker:on the Yeah. Yeah. Yeah. Yeah. Yeah.
Speaker:Yeah. If I may just ask then on this one. So
Speaker:This assume that you deliver that user story in kind of the
Speaker:same time frame more or less. Right? Or
Speaker:What would you do if the sales team needs that user
Speaker:story right now or did that feature right now and then the customer
Speaker:service needed in In 2 months' time, like, would you split the user
Speaker:story, or what would you No. I'd I'd try not to.
Speaker:So, yeah, it's always a good a good analysis question to ask is,
Speaker:Who's gonna use this feature? And the product owner says, oh, the the sales team.
Speaker:Great. Okay. We're good. Yeah. As a sales user, I can.
Speaker:But a good question to ask is anybody else?
Speaker:Yeah. Are there other teams who could Yeah. Get value from
Speaker:this functionality if we delivered it? And oh, yeah. Well, the customer service
Speaker:team might occasionally need to do it, but not as often. Yep. So The real
Speaker:priority is for the sales team. Okay. Well, I'll just tag customer service,
Speaker:as a persona on this user story. So I'll try and build it once.
Speaker:You might need to have a 2nd user story Mhmm.
Speaker:Because we forgot. We forgot the customer service needed this functionality as well. Mhmm.
Speaker:And the way that we built it 1st time was we only
Speaker:enable this, you know, through security rules. We only enabled it for the
Speaker:sales users. And so we have a 2nd user story
Speaker:Just focused on customer service because we need to add the security privileges
Speaker:to their security role. So Yep. I try not to do it
Speaker:twice. Yeah. Yeah. Yeah. Cool. So it's a it's a more of case by
Speaker:case, again, scenario that yeah. Yeah. I would
Speaker:have 2 user stories only if I forgot to ask Upfront the
Speaker:first time. Who who else could benefit from this functionality? Yeah. Yeah.
Speaker:Well, it's often the case, like, I'm having a situation now where kind of
Speaker:very similar requirements or feature being delivered,
Speaker:but so the product owner is liaising us with business with different
Speaker:business areas. Mhmm. And then 1 business area is very
Speaker:keen on having it. So we we have all the requirements for them, and we're
Speaker:ready, and then we deliver that now. Right. The other
Speaker:business area is a bit more busy or they there are requirements for
Speaker:them and tell. Basically, they take a bit more time to
Speaker:providing us the details. So That feature for them with the
Speaker:details for them, maybe what kind of let's
Speaker:say connection roles. Add connection roles, that kind of roles they wanna have or
Speaker:something comes a few sprints later. In that case, I would have
Speaker:2 user stories Because one, I wanna push
Speaker:the first one I wanna push Yes. Through the cycle and deliver, and then the
Speaker:other one which is very similar for another user
Speaker:Group, I would push it later. Yeah. Oh, absolutely. You're
Speaker:all yes. You're always gonna have, Those
Speaker:enhancement user stories that enhance an earlier released feature. For
Speaker:whatever reason, great idea. You wanna get the Yep. You wanna get the value out
Speaker:there as quickly as you can and as earlier releases you can. And if
Speaker:somebody else wants to increment or iterate on that functionality later,
Speaker:some kind of enhancement, maybe maybe just roll it out to a different group of
Speaker:users or a different business unit. Yeah. It's fine. Up yeah. Do that
Speaker:all the time. Cool. Have you got a couple of seconds you can stay on
Speaker:and and let me know How to how to reach you, how to find you,
Speaker:and what you're up to recently. So, I like to call this the retrospective,
Speaker:segment in the in the podcast. So for those who don't know
Speaker:Danny, Danny and I, you know, live reasonably close together. You're just down in the
Speaker:Gold Coast, which is, what, 50 k's from Brisbane, and we
Speaker:catch up occasionally. You've missed, You missed a very fun
Speaker:presentation I did last night at the, Queensland business apps user
Speaker:group. I was in costume doing my how to How to
Speaker:solve the Elon Musk problem in in Dataverse.
Speaker:But, what what kind of events have you got coming up soon, Danny?
Speaker:Yeah. That was an that that was an interesting topic that you presented
Speaker:yesterday. Yeah. Look.
Speaker:I'm hoping to go at the, Nordings
Speaker:Nordic Summit while I'm traveling in Europe end of
Speaker:September. Great. So Copenhagen this year?
Speaker:Yep. Yeah. Correct. Hoping to get that one. I have a bit of
Speaker:traveling and then for, yeah, for
Speaker:leisure Europe happening, so try to cause us you know,
Speaker:we don't travel to Europe that often for me. It's like a 24 hours
Speaker:plane ride. Right? So but, yes. So that's
Speaker:planned. Nothing really other from
Speaker:a Professional perspectives, where to
Speaker:find me on LinkedIn? You're always pretty active on LinkedIn. I love
Speaker:following your content there. Thank you. Yeah. You you're
Speaker:pretty active too. Mhmm. Yeah. I I I'll just try and keep up with you
Speaker:and Hamish, really. You're always publishing these really
Speaker:colorful series of conceptual diagrams diving deep into
Speaker:industry accelerators or different applications. Have you got any more of those
Speaker:planned? What kind of content are you brewing for us at the
Speaker:moment. Yeah. So I'm in a series which takes a
Speaker:lot of time, but it's in a series of of kind of concepts
Speaker:where I explore kind of the major components of
Speaker:the poor platform. So I started with the high level, You
Speaker:know, Microsoft Biz Apps. What is in Biz Apps? It's a bit of diagramming,
Speaker:right, which to be fair, what was was got a
Speaker:lot of attraction, like, comments, and so that was so that kind
Speaker:of encouraged me to continue, and then I went 1 level down to the poor
Speaker:platform, and then, again, decomposing this. Then I I'm doing
Speaker:now data so Dataverse, I had a diagram plus an
Speaker:explanation to you to a YouTube video. Then I had poor apps,
Speaker:And I had Scott Duro jumping me on a call, depicting the
Speaker:whole thing. I just did Power BI with Greg
Speaker:Nash, is a poor VI MVP. He also went in kind of
Speaker:and it is it it is I like doing those
Speaker:diagram, but it's really helps me understand. Like, I've learned so
Speaker:much from I knew I think I knew poor apps, like, even model driven
Speaker:apps and stuff, but having a conversation with another
Speaker:Expert, like, telling the stories and how to use specific things. It's
Speaker:just enriching you so much. Right? So it's it's a big it's
Speaker:how I learn, Basically. Right? So I have those planned for the other
Speaker:parts. I'm hoping to get Nick done when I think he already asked
Speaker:if he wanted to do with me the pages one. So
Speaker:he he he was keen to do that. I'll do 1 on automate
Speaker:for Vultr agents. So but it really takes a bit of time, so it's
Speaker:it's It's a few weeks, months sometimes work.
Speaker:So this I I have. And then, occasionally, whatever
Speaker:I have, What I like doing right now is sometimes some
Speaker:small post on design ideas. You know, I
Speaker:stumbled lately on this new sub grids That you can you
Speaker:click on a sub grade and that opens up in a model view. Yeah. Like
Speaker:so one of my plan, I had a strong requirements around that, and it's really
Speaker:kind of, You know, they were very hap so I kind of posted. So when
Speaker:I have some ideas like that during my work, I try to quickly, you
Speaker:know, Share it to the community. But other than that, nothing
Speaker:else, really. Apart from all these videos and
Speaker:blogs and YouTube posts and everything else you do, Not
Speaker:much. I love it. Well, you also
Speaker:have, of course, your functional consulting course. We talk a lot today about
Speaker:Managing requirements. Your course is super helpful. If anybody who wants
Speaker:to dive much deeper into the kind of topics Danny and I have discussed today,
Speaker:he has The best course on it. I've I've taken it. I've loved
Speaker:it. It complements Hamish's work really well too, but you go deep
Speaker:into the stages of, Product backlog items
Speaker:and Azure DevOps and other topics, that we've discussed today, and I find it really
Speaker:useful. So encourage my teams to go through it. I encourage all of you
Speaker:listening watching today to go through that as well. I'll I'll include a link to
Speaker:that in the show notes as well as Danny's YouTube channel and your blog and
Speaker:everything else, Danny. Thanks so much for joining. Amazing.
Speaker:Thank you, Neil. So, 7th time next time, or was that
Speaker:that's the 6th time now? This is the 6th. Yeah. I think the next time
Speaker:will be the 7th. We'll have to we'll have to find another topic, we'll have
Speaker:you back on as soon as we can. Amazing. Thank you.
Speaker:Thanks, Danny. Bye. See you. My biggest takeaway
Speaker:from my conversation with Danny was the Practical use of
Speaker:documentation in addition to whatever is written in your user story,
Speaker:a solution blueprint, a user interface, wireframe,
Speaker:or example data in a spreadsheet. I'm generally a fan
Speaker:of minimalist user stories that encourage conversations
Speaker:between developers and users, But Danny shared with us some great reasons
Speaker:to enrich our user stories without going to the extreme of writing
Speaker:an old fashioned upfront requirement specification. What was
Speaker:your biggest takeaway from this episode? Visit the customer company page
Speaker:on LinkedIn or the amazing apps LinkedIn group, and let Donnie know.
Speaker:Until next time, Keep experimenting.