Prioritizing Features using Kano Model

The Product Backlog provides a collection of features that the Product should ideally implement. But not every feature has the same priority. Some of the features are more important than others and of course, the Product Owner doesn’t go around picking random features while prioriterzing the features.

There are various models and in this example, we will explore the Kano Model.

The Kano Model

As per Nariako Kano’s model, the features could be broadly categorized into 3 categories.

  • Thresholds/Must Have Features These represent the minimum set of features that should be present to meet User expectations. Improving the must have features beyond a limit would have little impact on the customer satisfaction. For example, for accommodation, a minimum requirement of User would be a clean room with basic ammenities.
  • Linear Features Features which increases customer satisfaction as it increases is known as Linear Features. This includes the size of the room or bed, freebies in the room etc.
  • Delighters Delighters on other hand are features which adds to the premium quality of product, often adding greatly to customer satisfaction. These could include private pools. These are features which the Customer might not quite miss if not present, but would be delighted if present.

Now that we have understood how we would like to group the features, the process of actually grouping them begins. As per Kano, this could be done by asking two questions per feature to the user group.

  • Assuming the feature is present, also known as Functional question
  • Assuming the feature is not present, also known as Dysfunctional Question.

The answers are questions are typically collected as

  1. I like it that way
  2. I expected it that way
  3. I am neutral
  4. I can live with it that way
  5. I dislike it that way

The answers could be mapped to 3 feature groups using the following table.

The answers from the user groups (typically 20-30 users) are aggregated and their distribution could be observed to determine the priority group.

The responses with high values are considered.

This was one approach for User Story Prioritization. In the next post, we will explore Relative Weighting approach.

Technical Debt Quadrant

In a practical corporate software development scenario, there are times when you have (willingly or otherwise) to give up to trade-offs and compromises  especially when the deadlines looms over you or, in worst case, you are LAZY !!. You might be prompted to choose a less than optimal solution due to situational constraints, which might lead to technical debts. But how would one convince the stakeholders (or may be himself) that you are not entirely wrong in opting for the selected solution ? How do you categorize technical debts

Martin Fowler had suggested a Technical Debt Quadrant which comes pretty useful in vindicating the trade offs by categorizing the situations or the intention with which we opt for debt.


The technical debt quadrant is quite easy to use and is especially useful when addressing a non-technical audience (stakeholders) about the trade-offs chosen. It can also act as guidelines for team (and product owner) when the deadlines are looming and trade-offs are required.

A Prudent-Deliberate Quadrant is a ideal situation wherein the team/developer has evaluated the alternatives and picked the choice completely conscious of the implications to achieve a specific business goal.They are aware that they would need to repay the debt at some point and has a plan of action for the same. This is where the team would ideally like to be when encountered with a technical debt. At the opposite end of the spectrum is a Reckless-Deliberate quadrant, which should be avoided at all cost. It implies that the developer/team understands the implications of the actions, but choose to opt for same citing avoidable reasons/excuses.

The Prudent-Inadvertent quadrant belongs to the class of hard working team who had the best intentions, but choose a different solution when a better one was available. Considering their keen interest for improvement and intention, these men represent a team who will improve over time. The last of the quadrant, the Reckless-Inadvertent group usually consists of who are inexperienced and doesn’t know the best practices. It was their ignorance which caused the debt, which is, to an extend acceptable.

On any day, a Prudent-Deliberate Quadrant is a scenario that the stake holders might not mind. However, all other types of scenarios needs to avoided.

StarFish Retrospective

“At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly”

– 12th Principle, Agile Manifesto

It doesn’t need any explanation why Retrospectives are important in any scrum team. Question is, how can we make Retrospective Sessions more effective.

I was in conversation with a friend recently and one of the things he said he is running into trouble with is that the team members attempt to blame each other rather than getting to root of issues during retrospective.

To start with, key lies in making it more transparent. That doesn’t mean you need to document and publish it to anyone outside the team to view it. That is effectively an anti-pattern that plagues the success of retrospective. Unless the team members believes that what happens during the retrospective lies within the team, they wouldn’t be open with their opinions. This is the same reason why Line-Managers should be kept away from such meetings.

Care should also be taken to ensure the meeting doesn’t end up as a blame game, which is why the role of Scrum Master becomes critical, in the way he facilitates the meeting. The idea should be generate positive energy and responsibility, rather than a blame game that ends up depressing and energy draining.

Sprint Retrospective

Sprint Retrospective’s are usually revolved around 3 key questions

  • What went well ?
  • What did not go well ?
  • What can be improved ?

StarFish Retrospective

If the Scrum Master feels the questions are too broader for team to answer, he could employ exercises like the StarFish in the retrospective. The Starfish focuses on 5 Questions, instead of 3.

  • Stop Doing : Focus on things which are not doing any benefits for the team, and rather is getting on the way
  • Start Doing : Focus on new things which can add value to team
  • Continue Doing : Recognize things which is working well, and team should continue doing.
  • Do more often : Recognize things which is working well for team and could do team more good if done more frequently
  • Reduce Doing : Recognize things which is working well, but could reduce the frequency a bit.

The key however lies on finding the root cause, for example for things that you have chosen to stop doing completely. The team need to understand why it is not working. For this the Scrum Master could employ methods like the 5 Whys.

5 Why’s

5 Why’s is a root cause analysis technique that focuses on getting to the root of any problem by repeatedly asking “Why”. Each answer would form the basis of next question. You could read more on the 5 Whys in Wikipedia.

Scrum Vs Kanban

Agile and Scrum has been ruling the Software Development industry for quite a time now, at same time, slowly, but surely, Kanban is finding itself a strong foothold in the industry. So what is Kanban and how is it different from Scrum ?

Much like Scrum, Kanban is a tool for process improvement that provides you rules and constrains to effectively improve your process in the long run. Agile Methods such as Scrum and Kanban tend to be more adaptive (less rules to follow) than being prescriptive (more rules to follow). Relatively, Kanban is more adaptive than Scrum.


One of the key requirement of using any Process Tool is to ensure you adhere to the constraints associated with the tool.  Tools such as Scrum are minimalistic enough and if you were attempting to compromise on features such as Time-bound iterations and Daily Stand-ups, then it is better not to use the tool at all. These are the features/constrains which directly or indirectly makes the tool efficient.

Quite often, teams across the world end up adopting one Process Tool and adding features of others to it, while retaining the constraints of the original.

My attempt in this post would be to compare some of these constrains and it’s implementation in both Scrum and Kanban.

1. Prescribed Roles

Scrum prescribes 3 basic roles –

a) Product Owner – Responsible for setting priorities of tasks in the Product backlog

b) Team – Responsible for implementation

c) Scrum Master – Responsible for removing impediments and provide process leadership.

Kanban, on other hand doesn’t subscribe any roles. Teams can however, adopt roles, but only if they see any value to it.

2. Time Bound Iterations

Scrum roots for time-bound iterations with each sprint comprising of 3 basic phases – Planning, Implementation and Retrospective.


Planning Phase – During this phase, the forthcoming iteration is planned. Teams pulls out specific number of tasks from the product backlog based on the priority set by the product owner.

Implementation – Having defined the scope of iteration in the previous stage, the team gets cracking on the tasks in hand.

Retrospective – Team provides a demo of the work products of the sprint to the relevant stake-holders. The Product owner may choose to ship the work product to the business client. They also discusses the pros and cons of the concluded sprint and seek ways to improve.

Kanban, on other hand, doesn’t evolve around time bound iterations. The team choses its own feedback loop on when to plan, improve process and release. For example, Team could decide to release a work product every Tuesday or could very well say, we would release it only when we have something useful.

Scrum also focuses on having Daily Stand-up meetings where in, team would come together and provide an update of the tasks they are working on ( What they did previous day, What they intend to do on the day ).

Getting a feel that Kanban is more or less Ad-hoc ? Don’t worry, things are about to change.

Work Flow Task Items

Let’s have a look at the work flow of Scrum and Kanban through the representation of Progress Board – Called Scrum Board in Scrum and Kanban Board in Kanban.



The first impression on both board would give you is “they are exactly the same !!”. Well, Almost !! The difference is the number in the braces near the TODO and BUSY headers in the Kanban Board.

Scrum uses Velocity to measure the efficiency of sprint. It controls the WIP (Work in Progress) using a time based model by limiting the number of items in each sprint based on the velocity agreed by the team. On other hand, Kanban chooses to limit the WIP by limiting the number of items in each work flow state. In the example board shown, the maximum task items that can be in the busy state is 3.

Kanban uses “lead time” as a metrics for measuring and improving efficiency of the system. Lead Time is the average time taken for a task to move across the kanban board. For the purpose, teams using Kanban, tends to break down tasks to similar sizes. The feedback loop would help team in identifying and improving the lead time.

While estimation is not a forte required in Kanban System, “Lead Time” can be an efficient resource to depend on if the team is asked to estimate. Scrum uses a more formal method, called Planning Poker, for estimation.

Changes during Iterations

Scrum resists changes to spring log once team has committed to a sprint, even if the Product Owner holds a task of high value. Once the iteration has started, the only thing Product Owner can do is change the priority of the task and ensure it gets listed in the next sprint.

Since Kanban isn’t based on time bound iteration, it allows Product Owner or Customer to change the priorities at any time. The limitation comes in the form of WIP limit in the TODO list. The customer would have to take one item down to add another.

Other Differences

Other noticeable features which differentiate Scrum and Kanban includes Scrum’s emphasis on cross-functional teams, though one doesn’t always find it a developer testing. But the idea is, if at any time, testing becomes a bottle-neck, the developer should be able to lend a hand. This isn’t the case with Kanban, which doesn’t lay emphasis on team composition. The teams could be cross-functional or specialists for the jobs.

Another significant difference between the two tools is the way the task board is handled. Scrum resets the board after every sprint. After every sprint, all the task items are removed from the scrum board and fresh items are added to the extreme left column. Kanban, on other hand is an on-going process and doesn’t bother to reset the board at any point of time.


As one can notice, there isn’t much of the difference between Scrum and Kanban tools, though Kanban is slightly more adaptive than Scrum. It is more suitable to teams where the task priority could change frequently allowing the team to respond to customer requests within minimum time. With minimum constrains imposed, Kanban tends to become ad-hoc if not properly maintained. Scrum, on other hand, is more suitable for teams where Customer could commit to a sprint. A sudden change in priority could derail the entire sprint or would require the customer to wait for the sprint to complete. Both process tools has its own pros/cons and it is up to the teams to implement the basic rules to ensure the purpose of tool is served.

Both Scrum and Kanban is empirical in the sense, both expect the team to experiment with the process and customize it. If the scrum team has to experiment with velocity and sprint duration, the kanban team has to experiment with lead time and WIP Limits. Both tools provides the teams with the basic rules to govern the process and expects the team to improve their development process using continuous and empirical process optimization.


(1) Case Study by Mattias Skarin.