Showing posts with label Product Management. Show all posts
Showing posts with label Product Management. Show all posts

Tuesday, November 11, 2025

Agile on the Fly! Mastering Real-Time Sprint Operations with MS Project Agile (2)


In the first part of this article (read here), we understood the following:

  • Our Current Sprint State
  • Performing Activate/Inactivate Operation
  • Performing Delete Operation
  • Performing Add Operation

In this part, we will check certain additional operations, which are crucial as you manage your Sprint hands-on. There are many other operations, which you - the Scrum Master or Product Owner - have to perform in your Scrum project. Detailed, hands-on videos are part of the Mastering MS Project Agile course. See here.

We will start with the modify operation

Performing Modify Operation

As you proceed with your Sprint, you are also likely to perform several edit or modify operations, such as duration, resources, start date, and end date, among others. This can be done by simply double-clicking on the Card (work item) in the Current Sprint Planning Board view and changing the necessary fields. 

As shown for the featured item of Create a new user, I first double-clicked on the corresponding card, and then I can change the resources in the popped-up Task Information dialog box. You can change multiple fields with this option. 

You can also select the card, right-click and choose the Information option from the drop-down list to see the Task Information dialog box. 

Performing Move Operation

Not every work item included in the Current Sprint will be completed. It’s highly possible that some of the items are not started or are partially complete. In such a case, the items are to be moved into the next Sprint. This is one of the rules in the Scrum framework (see here). Note that the incomplete feature items don’t count toward velocity (see here). 

To move a work item into the next Sprint, again you can use the Current Sprint Board view. Select the work item (Card) and use the Move to Next Sprint command from the list. 

When you use this command, the item will be moved into the immediate next Sprint, not any other! To be sure, you can verify it in the Sprint Planning Sheet view, which is for all the Sprints in the project. Keep in mind that once a work item is complete, it won’t be visible in the Current Sprint Board or Current Sprint Sheet view. This is because of the Sprint Planning Filter (see here).  

As shown in the above figure, the feature Edit an existing user is now part of Sprint 2. Earlier, it was part of Sprint 1.

As it’s moved into the next immediate Sprint, the board status is maintained as Next up. The % Complete value for this work item will also be preserved. Your team can work on this item in the next Sprint. 

Performing % Complete Change Operation

While the % Complete mapping is done for the various workflow states in the Board, it’s not written on stone. For example, in our case the % Complete Mapping is %, 10%, 50%, and 100% for Sprint Backlog, Next up, In progress and Done, respectively. 

It’s possible that you may want to change this % Complete for a particular work item. This can be done by opening the Task Information dialog box and changing the % Complete value in the General tab. This is shown below. 

As shown, for the work item, I’ve changed the % Complete to 20%, in place of the default 10%. You can cross-check this % complete update in the Current Sprint Sheet view.  

While you changed the % Complete value to 20%, notice that the Board Status is not changed, and it still remains in the Next up workflow state.

Demonstration and Key Points

Now, let’s demonstrate what we have learned so far, along with some key points to remember while adjusting a Sprint in progress. I’ve prepared the below video [duration: 5m: 29s] for this purpose. For the best experience, you may want to go full screen in HD mode and plug in your earphones.



Conclusion

In some of the cases, it’s possible that while performing these operations, resources may be overallocated. You can quickly solve overallocation using the Team Planner view available with MS Project Online Desktop client, which has the Agile features.

Projects, like human beings, are living entities. Just as every human being changes, so does a project. If the environment is high-churn, then humans must rapidly adapt and adopt, and so does a Sprint project.

This article outlines certain key operations to adjust a Sprint project. I hope it gives you the understanding to perform various operations within a Sprint, the confidence to conduct any operation in a Scrum project, and brings value to your work.

--

This article was first published by MPUG on March 14, 2023. This an updated version. 


Sunday, November 09, 2025

Agile on the Fly! Mastering Real-Time Sprint Operations with MS Project Agile (1)


A Sprint is a mini-project within a larger Scrum project, and it's usually timeboxed for two to four weeks. Though timeboxed, a number of things can change within these weeks. In fact, adjustment of a Sprint in progress is the norm, not the exception. 

In an environment with rapid changes (see here) in requirements and technological uncertainties, a number of areas such as scope, resources, risk, and even business priorities may change. Agile/Scrum, after all, is all about change. In fact, one of the principles in the Agile manifesto states: Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.

Note: The content of this article has been taken from Mastering MS Project Agile course. See here. It's world's only hands-on, in-depth course to master MS Project Agile.

For a project executed in Agile mode, one can have the following:

  • Addition, removal, or modification of work items within a Sprint, i.e., changes to the Sprint Backlog.
  • Refinement of Release Plan (see here for release planning), i.e., change in features for the Sprints within a Release.
  • Refinement of the (Product) Backlog (see here), i.e., addition, removal, movement, or replacement of backlog items, which can be features or stories.
  • Rolling-wave planning (see here) for upcoming Sprints, as the current Sprint draws to a closure, among others.

In this article, we will specifically learn how to adjust a Sprint which is in progress. We will see the following real-time Sprint operations:

  • Activate/Inactive Operation
  • Delete Operation
  • Add Operation
  • Modify Operation
  • Move Operation
  • % Complete Change Operation

If you’re working hands-on with MS Project to manage your Scrum project, these operations are vital to know. So, let's start with our Current Sprint State.

Current Sprint State – Timeline View

The current situation for our Sprint is shown in the Timeline view of MS Project Agile. Our Sprint is of two weeks duration from September 11, 2023 to September 24, 2023.

As shown in the above figure:

  • There are 3 items to be delivered: Login to the online trading system, Create a new user, and Edit an existing user, which are 50%, 50%, and 10% complete, respectively.
  • The Sprint event of Sprint 1 Planning is 100% complete, along with four Daily Scrums. These are indicated with a tick mark for the events.
  • Our status date is September 18, 2023, which is one week after the Sprint begins on September 11, 2023.

As we proceed, we will perform several operations. These are important to know if you are really working in a Project with multiple Sprints. As any real-world Agile practitioner would tell you, all these operations may happen.  

However, before you proceed, there are important instructions you need to know before starting, which are mentioned in the below video [duration: 2m:38s].


Next, let's us see our current Sprint board to understand the status date and various workflow items available in respective workflow states.

Current Sprint State – Current Sprint Board 

The current situation for our Sprint is shown in the Current Sprint Board view. 


As shown, several items are either complete (shown with a tick mark on the Cards) or progressed as on the status date, i.e., one week into the Sprint. 

The % Complete of features and Scrum events for the entire Sprint can be seen in the below Current Sprint Sheet view. You have to add this column.

As shown above:

  • The features Login to the online trading system and Create a new user are 50% complete, whereas the feature Edit an existing user is 10% complete. 
  • A number of Daily Scrums are complete.
  • The Sprint Planning event is also complete.

Now, we will proceed with various operations.

Performing Activate/Inactivate Operation

When you try to inactivate a task in any column state, except in the Sprint Backlog state, MS Project software won’t allow it to function! The reason is simple – you can’t inactivate a work item, which is activated and in progress.  

A work item (or task) can be inactivated by going to the Task tab, then Schedule group, and using the Inactivate command. It’s highlighted in the below figure. 

Now you may be wondering how to inactive such a work item. You have to take it back to the Sprint Backlog state to inactivate. This can be done either in the Current Sprint Planning Board or the Current Sprint Planning Sheet view. 

As you can see, the work item is inactivated because of the column state (Sprint Backlog), and the % completion. 

Performing Delete Operation

While you can’t inactivate an in-progress task, you are allowed to delete it. You can do so by selecting the work item in the column (workflow) state, right-clicking and using the Delete Task command. This is shown below. 

But then the MS Project software will pop up a soft message for you, unlike the hard message shown for inactivation we saw earlier.   


As shown for the selected feature item of Edit an existing user, when the delete command is pressed, a message pops up. This message wants you to confirm that you really want to delete it. 

If you proceed, the work item will be fully removed from all the views. In other words, the backend database completely removes the work item. Hence, be careful! 

Performing Add Operation

This is another operation that MS Project Agile practitioners use. While scope addition during the Sprint is not encouraged, it’s very likely to happen in the real world. Even though you may not want your scope to expand, new tasks related to a feature might come up anyway, and those must be added. 

You can add a new task by going to the Current Sprint Sheet view, right-clicking, and using the Insert Task command. Notice that as you add a new work item, the default Board Status used will be Sprint Backlog. 

You can also add the new work items using the Gantt Chart view or the using the New Task command of the Current Sprint Board view. After you add a new work item and associate the resources (see here) to it, it can be properly visualized in the Current Sprint Board view with the needed fields. This is depicted below.


This article continues into part 2. See here.

In the next part, we have additional operations for a Sprint in progress. 

Tuesday, March 12, 2024

Sprints at Scale: Working with 10, 100, 1000, or More Sprints in A Scrum Project


A Sprint is a mini-project and usually has a length of 2 weeks, though it can vary from 1 to 4 weeks. While running Sprints for a big project using Scrum framework, one can run 10, 100, 1000, or more Sprints. The number of Sprints goes-up when the Sprint length is shorter – say 1 week. This scenario highly possible.

Do not confuse Sprints at Scale with Agile at Scale, where multiple teams can work on multiple Sprints.

Now, questions can be:

  • How do you manage so many Sprints?
  • If you are using a software tool, how do you manage them?
  • Is it possible to have the current Sprint being shown first in the tool?
    (with all other Sprints)
  • Is it possible to show the work items for the current Sprint first?
    (a view showing all the Sprints)

These questions are very pertinent for any Scrum Master, Product Owner or an Agile Project Manager. In fact, recently I received such questions from Agile practitioners, who have been using my courses.

Let’s see how to manage a large number of Sprints and the answers to the above questions. 

Our Plan with Epics and Features

Our current plan is shown below and at a high-level:

  • There are 5 epics, from Epic 1 to Epic 5.
  • Each epic is broken into 10 features. In total, there are 50 features.
  • These features will be associated with the respective Sprints. 
  • One feature will be completed in one Sprint. For example, feature 50 will be done in Sprint 50. 

This is shown below in the Gantt Chart view of MS Project. 

These you can add in the Gantt Chart view or you can use the Sprint Planning Board or Sprint Planning Sheet views. 

As shown, we have features numbering up-to Feature 50. When you switch to the Sprint Planning Sheet, you will get the following view. 


Plan for the Sprints

To associate with Sprints, we need to create the Sprints first. These can be done using Project tab > Properties group > Manage Sprints command. 

As you can see, we have 50 Sprints planned now. 

Associate with the Sprints

One can use various possible views to associate the feature items with Sprint, but the most used ones (and recommended by my courses) are the Sprint Planning Board and Sprint Planning Sheet views of MS Project Agile software tool.

Using the Sprint Planning Board, for example, I’ve associated a number of features items as shown.

You have to simply drag and drop the items from the No Sprint column to the respective Sprint column. But then we have some constraints here!

  • When it reaches Sprint 5, then the board view on the left does not show the feature items. If you have to associate with Sprint 50, then you have to drag it all the way up-to Sprint 50, which is on the extreme right.
  • If you want to see only the last 3 Sprint items, i.e., Sprint 48, Sprint 49 and Sprint 50, then we also have to use the horizontal scrollbar to the end.

Hence, the better view to use in this case of having a large number of Sprints will be the Sprint Planning Sheet view. This is shown below. 

As shown, you have to just scroll down and associate the Sprint in the popped-up, drop-down or show-up list. Isn’t is very easy this way?

Show the Latest 3 Sprint Items first

Another issue is to show the last 3 Sprint items first. This cannot be done using the Sprint Planning Board view as the filters, groups are disabled in this view.

But you can circumvent it using the Sprint Planning Sheet view and applying the built-in Sprint group.  

Do note the change in order from from Ascending to Descending. That way, the latter Sprints will be shown on top. 

Sprint Grouped View

As you apply the above modified Sprint group, you will have the latter Sprints and the associate work items shown on top. The initial Sprints such as Sprint 1, Sprint 3 or Sprint 5, will be shown towards the bottom.  

Another Way to Show

Some of you may not want to apply to the Sprint group, but just want to see the latter Sprint items on top for quick usage. In that case, you have to change the sorting and sort it by Sprint ID as shown below. 

The Sort command dialog box can be seen by going to View tab > Data group > Sort > Sort By... command. 

Do note the change the order of sorting to Descending. That way, the latter Sprints and associated work items will come on top. 

When you apply this sorting, the Sprint Planning Sheet will come as shown below. 

As shown:

  • The work items for Sprint 50, Sprint 49 and Sprint 48 are shown on top.
  • The work items for Sprint 1, Sprint 2 etc. are towards the bottom.
In this case, we didn't apply any group, but just sorted items with Sprint ID field.

References

[1] Video Course: Mastering MS Project Agile, by Satya Narayan Dash 

[2] Certification Course: Certified Hybrid-Agile Master Professional (CHAMP), by Satya Narayan Dash 



Monday, March 21, 2022

The Big Picture with Story Map in Agile Development


“I keep six honest serving-men,

They taught me all I knew,

Their names are What and Why and When,

And How and Where and Who.

I send them over land and sea,

I send them east and west,

But after they have worked for me,

I give them all a rest.”

– From the poem, “The Elephant’s Child,” by Rudyard Kipling

Long ago, in my childhood days, I was introduced to the fascinating world of poetry by my father, who brought a variety of poems and stories from writers and authors around the world to me. “The Elephant’s Child” was one of them.

This poem in particular has been used as a method. That is, the Kipling method. One of communication management, risk identification, charter preparation, and also, product development. With this method, one gets various ideas considering multiple aspects: What, Why, When, Where, Who, and How. It’s also known as the 5W1H method. In this article, we will learn about a technique called Story Mapping, where this method can be employed as an initiation point.

With the 5W1H method, when starting product development or creating a service or solution, one asks questions such as the following:

  • What needs to be built?
  • Why are we building it?
  • For whom are we building?
  • When will it be needed?
  • Where does this fit in?
  • How are the customers going to use it?

Jeff Patton, the creator of the User Story Mapping technique, explains the building of the map in six simple steps. They are:

  • Frame the idea or problem
  • Map the big picture
  • Explore
  • Slice out a release strategy
  • Slice out a learning strategy
  • Slice out a development strategy

The above 5W1H questions address the initial steps. It is important to remember that these questions get the conversations rolling. Shared conversations and shared understanding can then occur, as those aspects are what stories are mainly about.

Story Map Definition

As you may have noticed, this article is about Story Mapping, not User Story Mapping. There can be varieties of stories: spike stories, analysis stories, risk stories, and architectural stories, among others. I’ve seen all such stories being part of the map, and hence, will be using the term, Story Map.

Let’s begin with the definition of a story map. I'll define it as follows:

Story map is a grid-like graphical representation of epics and stories in a sequenced order based on their business value and the order in which the stakeholders will execute them. When read from left-to-right of the map, it tells a big story in a sequence of steps, whereas when read from top-to-bottom, it gives more details about each step.

After you have framed the idea or problem with the 5W1H questions, you can begin to build a story map at a very high level with the help of above definition.

The customer, user, or subject matter expert may tell the story of the product being built in a sequence of steps. Each step is written on a sticky note, index card, or electronic card horizontally (from left to right). Then, under each step, the details are written on another set of cards, and this time, placed vertically from top to bottom. This forms a grid-like structure as shown below. This is a story map.

In his book, Jeff Patton calls the steps from left to right, “Activities”. Under each activity, you have a set of “tasks”, which you get when you break-down or decompose the activities.

As shown, the story is told by a user from left-to-right in a sequence of steps—each step being an activity. This sets the narrative flow. Under each activity, we have a set of tasks decomposed from the respective activity, and they are placed vertically from top-to-bottom.

With this basic understanding, let’s go a bit deeper and understand the various components of a Story Map.

Going forward, I’ll be using terms such as Epics (in place of Activities) and Stories (in place of Tasks), to maintain consistency with an earlier article on Agile development. In the real world, it doesn’t matter which terminologies you use, if you understand the concept and can apply it while building your product or solution. 

Building Blocks in a Story Map

Personas

The story telling for a story map starts with the persona. Persona is usually taken for a user, but in this case, I’ve extended it to stakeholders. The persona is an imaginary representation of the stakeholder role used while describing a story. You may express this element as the needs of an imaginary stakeholder. The persona can have likes, dislikes, a job, and goals, among other aspects. A persona plays a role in the organization—the role is real, but the persona is not.

The epics are considered from the persona’s perspective. For example, the story explains how the stakeholder is going to use the product or solution. Comparing a story map to a human being, you can say the persona will act as the head of the story map. The first thinking part starts here.

For story mapping, there can be many personas – not just one. This is similar to a human being who grows with input from many. When working with personas, a variety of stakeholders in various roles should be considered, who will interact with the product being built.

Backbone

Without a spine, a human can’t function, and similarly, without a backbone, a story map can’t function. The backbone provides the minimum set of capabilities needed to deliver the product or solution or service. This can also be called the minimum viable product (MVP). The backbone usually consists of features and epics.

Walking Skeleton

Just below the backbone, we have the map’s body part. The body consists of the walking skeleton. Again, making a comparison to the human body, you can say the walking skeleton is the story map’s skeleton, too. Just like the human body’s skeleton, without the walking skeleton, the product would be non-functional.

The walking skeleton is the complete set of end-to-end functionalities that make the product or solution acceptable. This part of the story map’s body usually consists of stories, including the user stories. This set of stories make the product minimally functional, and hence, can be called the minimum marketable features (MMF).

Under each story of the walking skeleton, you can have more stories arranged vertically. Higher priority stories will be at the top, whereas lower priority ones will be at the bottom.

When you combine the personas, the backbone, the walking skeleton, and the additional stories below the walking skeleton, you get the Story Map, as represented in the below figure.

The stakeholder starts telling the big story in a sequence of steps, which are represented as epics. This constitutes the backbone. While building the backbone, the principle of “mile wide, inch deep” or “kilometer wide, centimeter deep”, as Jeff beautifully puts it, is followed. It means we get to the end of the big story, before diving deep into the details.

The walking skeleton is below the backbone. When you decompose the epics in the backbone, you get the stories in the skeleton—ones that make the product minimally functional. Below the walking skeleton you have more stories, which are ordered.

Release Planning with a Story Map

After you have placed the epics, stories, and features in the story map based on the team’s capacity to deliver, releases can be determined. This is where the release strategy is sliced out from the story map.

As we already know, the backbone includes all the absolute essential parts of the product. These are items that you just can’t prioritize because they have to be in the product. Next to the backbone, we have the walking skeleton, which has the minimum marketable set of features. Hence, our first slice for the release consists of these two, and possibly some more stories, below. In the next slice (for another release), we can take more stories and create another release, and so on. This is shown in the figure. 

As you can see, in the first release we have the backbone and stories from the walking skeleton, along with one story below the backbone. In our second release, we have more stories taken, which are from below the backbone. Remember that these stories are ordered based on their business value.

Story Map vs Product Backlog

At this stage, you may be wondering why one should go for a Story Map rather than a Product Backlog?

After all, the product backlog also has all the epics, features, and stories in a single file. It can also have release slices. There are quite a few differences between the two, but I’ll note the most significant ones:

  • While working with the product backlog, it’s easy to get lost in the details. Team members will be working on tasks, but they don’t see the big picture. You can literally miss the forest for the trees! With a story map, all members of the team see the big picture. This, in my view, is the most significant benefit of a story map over a product backlog.
  • The story map is a two-dimensional visual structure, whereas the product backlog is a one-dimensional flat structure. Story mapping, on its own is also a prioritization technique—it’s just that it is done in a visual way.
  • Dependencies can’t be easily shown in a product backlog as long as it’s a flat one, whereas dependencies can be represented visually and more clearly with a story map.

So, which should one use?

Note: You can learn the various differences between Story Map and Product Backlog in the below detailed post.

Agile Asanas: Story Map Vs. Product Backlog - The Differences 

The primary idea behind telling stories is communication. As noted earlier, it’s about shared conversations and shared understanding. You may think of using both the story map and product backlog in a single map, which is shown in the below figure.


The product backlog is just below the story map with a set of index cards or sticky notes, which are the backlog items. When needed, you can pull the prioritized ones into the story map. Don’t just go by the lumped-up cards in the backlog. Remember, you can order them as well.

It’s up to you as the Product Manager or Product Owner in consultation with your Project Manager and team members to decide which one best works for the team.

At this stage, it’s pertinent to note that like a Product Backlog which is never complete, a Story Map is also never complete. When new feature requests come up or enhancement requests are made, you can add, arrange, and order them within the story map.

A Practical Story Map

Let’s look at a real-world example to understand story mapping further. I’ll use my previous example of a flight ticket reservation portal, where I had explained various types of stories.

We will first start with the possible stakeholders (personas) who will be using this portal:

  • Normal Traveler
  • Business traveler
  • Frequent Flier
  • Booking Agent
  • Vacation Traveler
  • … you can add more.

You need not work on all of them, but can take just one to build the MVP consisting of the backbone and walking skeleton. For our example, let’s take the “Business Traveler.”

Considering the business traveler, we need to determine the big story in a sequence of steps. These steps will form the backbone or set of epics. These epics, when broken down, will provide the stories, which are listed next to them.

The epics are noted in the below table. Can you think of the associated possible stories?

Go ahead and try it.

The associated stories for the epics are noted in the below table. Your answer may vary, but you’re right if you tried to break-down and get to the related stories.


The above stories can be put in the usual story format. For example, you can say: “As a business traveler, I want to register via e-mail, so that I can sign-up for the portal.”

I’ve also noted the epics in the above table in single words. Search for a flight is simplified to “SEARCH,” select a flight becomes “SELECT,” and so on. This is for simplicity and to keep our high-level goals focused. When we take these epics and put them as a sequence of steps for the business traveler, we will get the following figure.

As shown, the story of a business traveler using the portal listed horizontally in a sequence of steps. The traveler will first sign-up, then search for a flight, and then select the flight. The traveler will pay for the tickets, and finally, close-out his/her interaction with the portal. These steps form our backbone.

Next, we will take the first big activity or epic, “SIGN-UP,” and arrange the stories associated with it vertically, as shown below. If you created your own stories, go ahead and put them below the respective epics within the structure of the backbone. This results in the walking skeleton and more stories below it.

Next, we slice out the releases from the map.

  • For the backbone, we will have SIGN-UP, SEARCH, SELECT, PAY, and CLOSE.
  • For the walking skeleton, we will have “new user registration” and “log-in” from “Sign-up,” “search by journey start/end dates” from “Search,” “Choose by shortest flight duration” from “Select,” “pay via credit card” from “Pay,” and “logout” from “Close.”

Your first release slice may look differently depending on the epics and stories you have chosen to start with. If your team has the capacity, take more. If this is the case, when you slice out the first release, it will result as shown below.


For subsequent releases, you and your team can decide which other stories are to be taken up.

That’s it! If you have understood so far and are able to slice out your first few releases in the map, you have understood the concept of story mapping well. It’s a long-read. But, I believe, if you have read it, worked on it, and gone through it honestly, it’s time to take a rest, as the poem I opened with says.

If you have comments, new views, or suggestions, do share them below.

This article is dedicated to the memory of my father, the late Harendra Nath Dash, who passed away last year on June 11. I miss him every day and feel his absence. He first introduced me to the world of poetry, stories, and books, so this is a tribute to him and his teachings.

--

This article was first published by MPUG.com on 23rd June, 2020. 


References:

[1] User Story Mapping – Discover the Whole Story, Build the Right Product, by Jeff Patton with Peter Economy

[2] I Want To Be An ACP: The Plain and Simple Way To Be A PMI-ACP, 2nd Edition, by Satya Narayan Dash

[3] The PMI Guide to Business Analysis, by Project Management Institute (PMI)



Tuesday, February 01, 2022

Troubleshooting in Lean-Agile Development


Many project managers utilize a Lean-Agile approach when there is high change or churn in project requirements, significant lack of clarity in scope, high complexity to their projects, and/or a larger number of risks associated with such. As these approaches have gained wide acceptance in a number of industry verticals, there has also been an increase in the problems being reported.

In this article, we will explore some of the practical problems faced by Lean-Agile practitioners during development of a new product or service and/or the building of a solution. When facing these challenges, Lean-Agile approaches have certain inherent or built-in mechanisms and execution best practices.

At this stage, I want to inform that problems and subsequent troubleshooting challenges the occur in a Lean-Agile approach can be divided into two broad categories:

  • Iteration-based
  • Flow-based

Two Lean-Agile Types

Earlier, in one of my articles, I had mentioned that Agile is both iterative and incremental in nature. We also previously explored the differences between iterative and incremental development with an example. I’m using the Lean-Agile approach here because many aspects of Lean are becoming increasingly a part of Agile (i.e., pull system, just-in-time planning, flow, visualization, waste elimination, error-proofing, and small batch-size, among others).

When I referred to the two Lean-Agile types, the categorization is based on an incremental delivery aspect. Let’s understand these two types a bit more.

Iteration-based Lean-Agile

In this type, the iterations are prescribed. Each iteration is timeboxed to the same size. Each timebox results in a working a set of tested features. The team pulls the item from a backlog of features, decides which can be delivered at the end of an iteration and usually provides an increment at the end.

An example of this type can be the Scrum framework. 

As shown in the above diagram, we have a number of iterations, and each iteration length is timeboxed to the same duration. 

Flow-based Lean-Agile

In this case, the iterations are not prescribed. Rather, the emphasis is on flow while having incremental delivery. The team pulls item from a backlog of features based on their capacity, and it’s not based on an iteration timeline. When the feature is complete, it can be delivered. It’s usually based on a cadence.

The number of features that can be taken on is based on a work-in-progress (WIP) limit. An example is the Kanban method, which has its original roots in Lean manufacturing.

As shown in the above figure, there is no regular timeboxed iteration, but incremental delivery can happen in cadence.

With these fundamentals in mind, let’s now explore the problems faced by Lean-Agile teams. In some cases, I’ll be using the terms Agile and Lean-Agile interchangeably. 

When the Product Owner is not Available Full-Time for the Team

This problem is predominantly seen in geographically distributed teams, where developers are working in one continent, but the product owner (PO) is operating from another. The product owner, while closer to the market, manages multiple products. This results in constraints because the PO is not fully dedicated to one team or present with them.

Any Lean-Agile team needs strong product ownership. This is crucial for success of the team and the product being built. The PO needs to be committed to the long-term objective(s) of the product (Product Goal or Vision) and continuously participating in the team’s project activities.

To resolve the problem of a PO being only partially available for the team, ensure that the PO is full-time, irrespective of the size of project or his/her location. An absence of this can lead to handicapped team performance and may even little value delivery.


To reaffirm, one of the principles of the Agile Manifesto is:

Business people and developers must work together daily throughout the project.

The PO can be the business owner or in some other structure, the PO can be paired with the business owner directly or via the Agile Project Management Office (PMO).

Nevertheless, the PO should be involved daily with the team members, not on a part-time basis. The PO is the team member who is responsible for the business success of the product. He/she is also accountable to the business. 

When There is too Much Complexity in Product Architecture

As noted in the beginning, Agile approaches are designed to tackle complexity, but sometimes project complexity can be too high and one may not know where to begin.

In such a case, one can use:

  • The concept of Sashimi, or
  • Take a tracer bullet approach

Sashimi is a Japanese word particularly used within the context of food. In Japan, a delicacy is thin slices of raw fish and sometimes served with rice—it’s called Sashimi. Each slice of fish is complete in itself, as well as tastes similar to other slices. This concept can be applied in Agile.

When using Lean-Agile approaches, we develop functionality that cuts across all the layers of a product, which has multiple layers – say front end, middleware, and backend. We are not developing the backend first, or the middle part or frontend. Rather, we deliver functionalities by cutting across all the layers.

The tracer bullet concept is based on the idea of firing in the dark! When you fire a gun in the dark, it’s difficult to aim due to the lack of light. However, when the path of a bullet is lit up (tracer bullet), you can see the trail and use it to inform your next aim. In other words, the tracer bullet helps to improve your aim for subsequent firing.

You can say, a tracer bullet of functionality is very similar to a Sashimi approach. We see the path of a bullet passing through all the layers or a functionality consisting of all the layers of a product. We are shown the path to build other functionalities. 

When Inaccurate Estimation Results in Delayed Delivery

This is another problem frequently seen irrespective of industry verticals. Developers, with all due respect to them, are generally optimistic people. The trouble is that when there are high uncertainties or complexities in a project, optimism may not be your best friend.

Estimates are often inaccurate because they are made in absolute numbers. For example, it will take five days to complete a feature/backlogged item or six hours to complete an activity.

One way to resolve this challenge is to use story points for estimation. Story points are relative estimation techniques and have unitless measure. Story points are relative estimates because they compare size, complexity, difficulty, and risks among other items being estimated.

To utilize story points, estimate the tasks (i.e., stories decomposed into tasks) into ideal hours. While the usual time unit used is eight hours a working day, it’s not always the case because of other activities such as meetings, unforeseen customer escalations, and interruptions, among others. When estimating using ideal hours, the time consumed for all non-productive, but necessary work is not considered.

This is depicted in the below figure. Ideal hours are considered here to be four/day. 


When Backlog Items are Insufficiently or Improperly Refined

Backlog refinement is a common practice and widely used in both iteration- and flow-based Lean-Agile types. The team starts off on the iteration or can take the item to the flow of work.

Let’s consider an example of an unrefined backlogged item: As a user, I can manage my settings, so that I’ll have the setting related information.

This is not exactly a small user story, but a very big one. In fact, this story can be decomposed further into three:

  • As a user, I can manage my address details.
  • As a user, I can set or reset my password.
  • As a user, I can set my email preferences.

The address part alone comes with multiple parts, and a user has to utilize multiple operations to manage it. For example, add, edit, and delete. For this purpose, the product owner or product manager needs to have a good understanding of (user) stories, as well as refinement techniques.

To address this issue of improperly refined backlogged items, one can use the Definition of Ready (DoR) skill. Definition of ready is a checklist, which needs to be checked off step by step to see if the team has all the needed information before working on the item. DoR can be used before the beginning of the iteration or before taking a work-item into the flow of work. 


When a Deluge of Defects Occurs

There are many scenarios in which this can happen:

  • Team is new to development
  • The team has a lack of strong engineering practices, among others.

When the team is new to Lean-Agile development, it’s always a good idea to have training to understand the values and principles of Agile. The most difficult part, however, is the internalization of these values and principles (i.e., applying them daily during the project work). With a correct Agile/Lean coach, this understanding will be needed to sustain the project.

In addition, good engineering practices are not only necessities, but vital to stop deluge of defects and provide good-quality products. Some are noted below.

High test coverage and testing at all levels: You can implement high test coverage both at the system level, as well as unit test level, with automated test cases. The team should have testing at various levels, such as:

  • Unit testing: Testing done at the lowest level.
  • System testing: End-to-end testing of the full system or product.
  • Smoke testing: Lightweight testing to ensure workability of the most important parts, and others such as black-box testing and regression testing.

Refactoring: Many associated refactoring is done within the context of software, but it can very well be applied to any product work. In fact, it’s a product quality technique with which you improve the design of the product through maintainability, but without changing the external behavior.

Simply put, with refactoring, you can change the internals of a product without changing the external behavior. With continuous refactoring, technical debt (i.e., legacy debt due to deficiencies in design, documentation, code (or product work), associated third party tools) is gradually reduced and defects are kept in check.

Continuous Integration: Any (product) increment given at the end of the iteration or continuously as in flow-based Lean-Agile, should be incorporated into the whole product. Post integration, the product still should work as intended.

Test first, develop next: In XP lingo, it’s called test first programming and in common Agile parlance, one can call it test-driven-development (TDD). Automated tests are written before doing the product work or creating the product. Next, work (or coding is software) is done to meet this test. This results in a built product with lesser defects.

Collective Ownership: In XP parlance, it’s usually referred to as share code. This concept says that the product work is owned by everyone in the team. You can also say, product quality is everyone’s responsibility. 

When Rework or Incomplete Work Happens

While working with an iteration-based Lean-Agile approach, an increment can be achieved on a cadence or on-demand. One the principles of the Agile Manifesto tells us this:

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software (or product).

If increments are not being delivered early and frequently, then the main purpose of going with a Lean-Agile approach is lost.

When the team delivers an increment, it must be fully “done” or complete. For this purpose, Definition of Done (DoD), an Agile artifact is used. Definition of done is primarily a checklist of items, which needs to be crossed-off, before a backlogged item or a story is considered finished.

To have proper work completion, the DoD should be exhaustive and clear. A sample DoD is shown in the below table. Only when a backlogged item has cleared the checklist of items listed in the DoD, is the work considered to be complete. Within this context, the issue of rework and/or incomplete work is addressed.


When Product Demonstrations or Reviews are Dysfunctional

While retrospectives are considered to be the most important practice in a Lean-Agile approaches, a close cousin is the practice of product demonstration or reviews. This is a very important event because Lean-Agile is fundamentally about value delivery to customers early and frequently, getting feedback, and customer collaboration – all of which happens in a demonstration or review collection.

While new teams can have failures during demonstrations, it’s also seen for experienced teams. Here are some situations that may occur:

  • The (product) increment is not behaving as expected
  • Features promised have been missing the demo
  • The product crashes, or
  • Worst of all – the PO and key stakeholders don’t accept the increment

Multiple dysfunctional product reviews can have a serious impact on the trust customers have in the team and equally, the self-confidence of the team who is delivering. To resolve this challenge, several things can be done.

Prepare early before the actual meeting: You should have a set of items or checklist of items prepared prior to the review or presentation. Not only should the team should take some time preparing for the meeting, but for an iteration-based type, they should use a checklist similar to the sample template below. 

Next, while running the meeting, document the decisions being made. This event, as noted before, also involves getting feedback from the customer/stakeholders and incorporating that feedback subsequently. With an eager clientele, a number of enhancements, new stories, or workflows will come up and it’s important that you note them.

Towards the end of the meeting, ask for acceptance on the increment. The acceptance may be conditional or there may be a time lag, before formally being accepted, but do ask for this, as it allows the increment to be released. This also tells the team that the increment delivered has met the definition of done (DoD).

Above all, never cancel the meeting. Sometimes it’s possible that you have very little to show or even that you know your product increment may crash. Still, go ahead with this event, as you will get feedback, and can make course corrections, if needed.

There are a number of problems or issues that can come-up while implementing a Lean-Agile development approach. In this article, I’ve outlined some of the challenges along with possible solutions.

What are the problems that you face? What approaches do you take to meet these challenges? Let me know in the comment section below.

--

This article was first published by MPUG.com on 9th March, 2021. 

 

References:

[1] Course: ACP Live Lessons – Guaranteed Pass, by Satya Narayan Dash

[2] Book: I Want To Be An ACP, The Plain and Simple Way, by Satya Narayan Dash

[3] Agile Practice Guide, by Project Management Institute (PMI)