Daily Standup Vs. Daily Standup

There’s a fundamental difference between participating in daily standup meetings because you want to and attending daily standup meetings because you have to.

You want to attend Daily Standup because you believe you’ll inspect and adapt.
You have to attend Daily Standup because your organization is following Scrum or your boss has asked you.

Former helps the project and the latter does not.

When you do the former, everyone benefits. You. Your project. Your organization. Your customer. Your customer’s customer … everyone.

There’s no “have to” in Scrum. You do it or you do not.

Are you doing Scrum or are you doing Scrum because you have to?

Who Should Be The Product Owner?

Recently, I wrote an article on ScrumAlliance that says that Principle Software Engineer is not a good choice for the role of Product Owner.

In followup, I got an email from a Scrum enthusiast saying he understood the point but then who should be the Product Owner in a Scrum team?

It is a good question.

Unfortunately, it is often misunderstood by even senior management of Scrum-novice organizations.

The Product Owner is someone who builds, shares and establishes the product vision and inspires the team to self-organize and make that vision take form of the product, fast.

The Product owner operates from compass and not just following a map. And that’s why there is no specific set of “processes” that can make a good Product Owner. He is free to do all the activities that stay true to its definition.

Of course the activities that the Product Owner carries out may include collaborating, answering questions, providing answers and so on but at the end of the day, they are just that – activities. Scrum is not about the activities. Scrum is about the results!

To better understand this role, let me use life as metaphor.

Imagine that life is a Scrum Project and you’re the Product Owner of it. Your goal is to build, share and establish the vision for the difference you have dreamt to make and inspire the people on your team (your family members, relatives, friends, colleagues, community fellows and so on) to join the mission to accomplish your goal, fast.

What sort of process you should be following to be a good Product Owner in this case?

The processes that get you closer to your goal!

The same logic applies to the Product Owner role: The Product Owner should be someone who can build, share and establish the product vision and inspire the team to self-organize and make the vision take form of the product, fast!

How Much Documentation Should a Scrum Team Do?

I get this question invariably asked by almost every team that’s new to Scrum.

“Documentation that is just enough,” is the theoretical answer.

Almost always, the next question follows, “What’s just enough documentation?”

just enough documentation

Just enough documentation is what serves the sprint purpose. Imagine the following scenario:

  • Product: A Mobile iOS App in the Travel Niche
  • Pretext: Version 1.0 of the App is already in the market and people are using it. It has generated a user base of about 15000 and many people have requested  different features via App’s support a feature option.
  • Sprint Goal: Build and release version 1.1 of the already successful App. Version 1.1 should have 3 most demanded features by the end users. Out of 3 features, one feature required R&D and hence Scrum is a better choice.
  • Sprint Duration: 2 weeks
  • Team Size: 5
  • Team Details: ScrumMaster (1), Product Owner (1) and Team members (3). Out of 3 team members, one is Graphic Designer, one is Software Developer and the 3rd one is App Support Executive.

Effective documentation in this case could be as follows:

  1. User Stories for the 3 features
  2. Photoshop PSD file with explanatory layer name and optionally a readme.txt file with bullets of specific instructions if any
  3. Readable, modular, commented code that itself is self-explanatory with occasional in-code comments stating why a complex thing is done the way it is done
  4. Updates in the App Support FAQs / Other Support Docs that are affected by introduction of these features

A Scrum team’s goal is to deliver value, fast. Above might act as just enough documentation for the needs. The good thing about Scrum is a specific ceremony called Sprint Retrospective which becomes instrumental in inspecting and adapting to what turns out as the right thing.

When we talk about documentation, often a question comes about the User Manual.

Let’s consider the same in the above scenario: Given it’s an iOS App, it won’t be a good idea to develop a User Manual for the same – The App’s UX should be so natural to the user that they don’t need to refer to the manual.

It is easy to agree to develop a user manual for an iOS app but in fact, that will be a disservice to the end users and the client itself – as you’re disregarding the manual-less experience that is possible to provide to the end user.

Or even better, provide the functionality built in app that enables the user to learn the App by seeing it in action. The need to documentation turned into a functionality!

Many people will say that if client demands, carry out the documentation. However, I do not buy into the idea that if your client requires XYZ documents to be created, you should carry them out without asking questions that provoke her to think – you should explain your client the value a particular activity will bring or the value that it will negatively impact. Sure, typically it is done by the Product Owner but as team members, if you decide to do something in which you don’t believe, you cannot deliver value.

Spirit of Scrum is not to negotiate but to collaborate – when you collaborate towards ONE goal, no one is superior to the other.

Sure in typical Business situations, you might have to do what might look like “anti-scrum” or not “scrum-friendly” – if you choose to do so, do it with awareness.

Is This Your Best Code?

This is the wrong question.

The right question is, “What knowledge, skill, tool, framework or support will enable you to write better code than what you’ve written?”

So what do you mean by better code and why should you care?

Better Code does not always mean well structured, well documented, reusable code. Many a time, Better Code simply means, the code that does what is expected and does it well for most of its consumers.

In past 14 years, I’ve worked with many passionate, crazy and talented software engineers who are fanatical about producing their best code.  Some software engineers, with experiences of different kinds, get it sooner or later what better code means. Many don’t and continue working hard towards producing their best code.

They take great pain in making their code better at the cost of:

=Eval("put whatever highest cost you can pay as a developer").

Willingness to take pain is good but better is to be willing to take right kind of pain.

You write quality code not because you feel “cool” about it, you write quality code because you believe in the indirect value that it will bring in end-users life.

Much rewarding is to take great pain to understand your users world. Even if you are an innovator and you’re going to change the way users behave, take great pain in understanding and communicating how your code will help make that happen.

I have observed many Scrum team members complain that because of iterative way, they cannot produce their BEST code.

It is okay. You’re not in the team to produce “your” best code, you’re in the team to produce the code that will add value to its consumer’s life, even if it is not your best code.

When business leaders ask such question whether this is your best code, Scrum team members get confused. You don’t need to.

Your job is to produce good code, and enable your team to ship fast and ship often, gather feedback and make the whole ecosystem better in the next iteration. I’m not asking to create bad code. It has to be good enough. Shipping fast does not imply shipping crap.

Presuming that you can get better at whatever activity you pick, choose to get better at what you should be get better at. Now that’s a smart choice, not all software engineers make that!

Software Engineers who make such choices are often part of a high performing Scrum team. Perhaps that’s why it is not so easy to locate high performing Scrum teams. A problem worth solving.

Scrum Teams and The “F” Word

What’s the “F” word in Scrum?

Not [F]un. Not [F]ire. Not [F]ailure.

What is it?

Most scrum teams deal with software engineers so they are concerned more about engineering challenges than anything else in all what they do.

In Daily Scrums. In Review Meetings. In Retrospectives.

Often, they don’t pay active attention to important “F” word.

Scrum Teams and The F word

Don’t get surprised when I say that the “F” word is their “FEELINGS!”

Don’t get surprised.

Techie guys don’t tend to speak more about their feelings. Essentially, they are left brainers so they seek logic in what they do. Feelings come as a second thought to most.

But what they feel while being a part of Scrum team is important for a Scrum team to succeed.

“People who feel good about themselves produce good results”

~ Ken Blanchard, Spencer Johnson, The One Minute Manager

(Read more about my experience with The One Minute Management Learning)

Cannot agree more: People who do not feel good about their work, cannot produce good results!

And, Scrum – or any other Agile framework for that matter – exist to produce great results; not for any other objectives.

Scrum Masters need to figure out ways to understand the feelings part of their team members and create situations where the team is motivated to assume the ownership of the tasks they undertake.

So, ask your team member directly how she feels if you have a great rapport with her. If not yet, there are other ways figure that out. Some example questions:

1. What excites you to do X, Y and Z?
2. What situations make your low point?
3. What situations make your high point?
4. How did you find working with other team mates on this sprint?
…and so on.

Choose the questions that open up your team members and share their experiences.

Experiences express feelings.

Understand what makes them feel good; what makes them feel uncomfortable and create situations that are motivating for the team members to perform.

A small but important soft skill that every ScrumMaster should have.

3 Tips for Product Owners to Survive the Chicken Test

As a Product Owner, why should you even think about the Chicken Test?

For a simple reason: You are accountable for ensuring that the product you’re working on achieves its goals.

The chicken and pig metaphor suggests that the difference between ham and eggs is this: the hen is involved, but the pig is committed. While Chickens may have other priorities, pigs have only one goal – make the project successful.

When it comes to Scrum, surviving the Chicken Test means that the Product Owner is not treated as someone who is not a member of the team.

Theory says that the Product Owner is a pig, committed to the project and judged on the results. However, the role of Product Owner is the most critical one in terms of conflicting priorities.

In practical world, often the Product Owner role is assumed by someone whose primary job is to directly face customers or interact with other critical stakeholders and in such situations, the scrum team may feel that they are interacting with a Chicken when they are communicating with the Product Owner.

When the Product Owner is treated as someone outside the team, there is a high probability that not the Product Owner’s other responsibilities but his behaviors are making the team uncomfortable.

It is obvious that most people don’t like to be with people who make them uncomfortable. Scrum teams are no different.

Team being uncomfortable with Product Owner is an impediment as it can impact their ability to deliver.

The team will react using more or less predictable behavior. You will be treated like a Chicken. Your inputs won’t be appreciated in daily scrums or retrospectives and the level of comfort will be less amongst the team members when you are around.

The result? Conflict among team members. Demotivated team.  Ineffective sprints. Delayed release cycles…

No Product Owner wants that, do you?

Here are my three Tips for Product Owners to Survive the Chicken Test

1. Honor your agreements:

Product Owners often get situations where they have to obey other commitment at a cost of the commitment they have made to the team.

Particular instances could be as small as promising and not meeting daily scrum or as critical as delegating the huge part of Product Owner’s responsibilities to a team member but the point is – the agreement is dishonored.

Don’t do that. Always honor your agreements.

The team cannot trust a Product Owner who does not keep his promises.

If the team cannot trust the Product Owner, the very essence of Scrum is compromised.

Don’t make agreements that you cannot honor. Period.

2. Exhibit unconditional commitment:

Let us face it. Almost all Product Owners are committed but not unconditionally. At least not always.

They may attend all the Daily Scrums as agreed but may not always pay attention to the junior most team member’s point of view.

Even if the junior most team member is not adding much value at the very moment, she at least deserves all the team members’ attention.

That is very basic but often not practiced as it should. Now, that’s an example of lack of commitment.

So how do you deal with that? Don’t choose to be the Product Owner if you cannot offer unconditional commitment for the project.

You may be an important stakeholder or the core Project Sponsor but you cannot be the Product Owner if you have any other priorities than making the project successful.

Have unconditional commitment if you take the Product Owner Role.

3. Make yourself available:

If you are NOT available when needed, it is often perceived as lack of commitment. When it comes to be part of a team that has ONE goal, managed perceptions are much better than assumed conclusions. None other than Product Owner can own that fact.

For any clarification or insight the team might need, Product Owner has to be available for the team.

There is an another aspect of making yourself available. You make yourself available to the team when you develop a personal rapport with team members such that they don’t hesitate to ask you questions. If team members do not feel closeness, changes are very high that they won’t consider that the product owner is available.

At the end of the day, as a Product Owner, you have to deliver the results. You’re rewarded if you do, you’re fired if you don’t.  If you don’t pass the Chicken Test, you need to work on yourself. If that’s the case, don’t wait, go fix it.

The Problem With Preparing User Stories In Advance

is that it lacks the “ownership” part.

Some Product Owners invest a lot of time creating user stories and provide them to the team in the sprint planning meeting.

It is an opportunity lost to explore team’s point of views and knowledge.

Stories created through such activities often serve as meaningless piece of document in the greater whole.

A good user story is complemented by the team talk. It is more on target when it is written collaboratively. A user story should be able to convey the essence of the story, not every single detail that can be imagined around the story.

The lean concept, “just enough” applies while creating user stories as well.

When it comes to grooming your backlog and envisioning the future of your product and organization at large, user story, when done as a team activity, has potential to produce wonderful results.

Don’t engage in an Agile activity just because it is a ceremony. Get the essence of it and practice it in the right way.

Great user stories are user stories that are owned by the team. If your user story has not got 100% ownership, something is wrong that needs to be fixed sooner than later.