Tuesday, January 30, 2018

Ground Rules for Scrum Ceremonies | Supreme Agile

תמונה קשורה

In this article, I will share some basic guidelines, Tips, and suggestions that will help scrum teams to increase the efficiency of their scrum ceremonies.

The Bread and Butter of all ceremonies

  • All ceremonies should include the relevant stakeholders.
  • All ceremonies should be made in a safe environment.
  • All ceremonies should start on time and End on time.
  • The scrum master is the facilitator of all ceremonies. 
  • All ceremonies are Time-boxed.

The Preparation Phase

The preparation phase is mostly owned by the scrum master, as the facilitator of the team, the scrum master should ensure the following: 

  1. Start with the basics and ensure that the meeting time and location is agreed by the team.
  2. Ensure that the meeting room contains all resources (Connection to the team Backlog, projector Etc.) and materials that may be used throughout the meeting. 
  3. The invitation should be sent to a list of stakeholders who are required to be presented at the meeting, the invitation should be sent a few days earlier to the meeting to allow a proper preparation. 
  4. The invitation should include some basic details such as the Purpose, agenda, and goal of the meeting to remove any unnecessary questions.
  5. Ensure that the participants "Approved" or "Declined" the invitation.
  6. Depends on the type of ceremony, ensure that each team member is ready to present share is part. 

The Facilitation of the Meeting 

The facilitation phase is owned by the scrum master, as the facilitator of the team, the scrum master should ensure the following: 
  1. At the start of the meeting, the SM will present the agenda.
  2. At the start of the meeting, the SM will present the meeting goal.
  3. The SM will be present during the entire ceremony.
  4. The SM will ensure that the meeting agenda is kept without any deviations. 
  5. The SM will ensure that each team member will get the chance to share is inputs. 
  6. The SM is not allowed to get involved in team discussions. 
  7. The SM should ensure that the team will remain in focus.
  8. The SM will capture critical aspects that arise during the meeting and share them with the team.
  9. The SM will ensure that there are no external interfering that may distract the team.
  10. The SM should write down all inputs gathered by the relevant stakeholders. 

Action Items based on Output 

  1. The SM must ensure that the meeting results be clearly communicated to the team or any other relevant stakeholders. 
  2. The SM must ensure that the product backlog is updated based on feedback.
  3. The SM should update the impediments board based on items gained by the team. 

Sunday, January 28, 2018

Scrum Master - A Leader without an Authority | Supreme Agile

תוצאת תמונה עבור ‪authority‬‏

The role of the scrum master possesses some major responsibilities such as team empowerment, Scrum coach, and the process enforcer. So, once we need to choose a nominee to be the scrum master, we need to search some basic characteristics such as creative mind, Leadership, people person and more. But wait a moment, what about authority? How can it be that the person whom responsible for so many aspects of the project does not have to be authoritative?

Well, back in the old days the authority was one of the job requirements, but the reality of the scrum master day to day work taught us that this characteristic is not needed as we thought before (although it can be helpful in some occasions). The main reason for that lies in the spirit of the scrum that assumes that each person has a natural creativity, the ambition to succeed and the power to act. We need to remember that the scrum framework embraces these attributes by motivating its members to act without pushing them with authority (like we saw in traditional models), here are just a few examples that can explain why the scrum master can lead without a real authority:

  1. Scrum motivates people by allowing them to share their thoughts while creating a constructive ground that avoids criticism (We can criticize ideas, but not people).
  2. The team is responsible to decide the amount of work that can be done per sprint (There is no other authority that can decide for them).
  3. Scrum provides a solid ground for any person to do is job without using micromanagement that affects people motivation.
  4. The scrum framework uses few specific ceremonies that allow the team to work together to increase the efficiency of their work and also to present the work they did in the last iteration.
  5. In scrum, team members take an active part has decision makers that allow them to get a real understanding about the big picture that increases the natural motivations that makes them more committed to accomplishing their goals (There is no need to use any authority).
  6. The Scrum framework helps the scrum team to increase their visibility for both internal (Other teams, Senior Management Etc.) and external resources (Customers).
  7. Scrum embraces team collaboration that increases the coordination among its team members.
  8. In scrum, we use short development iterations that help the team to remain focused on a few specific tasks.
  9. Scrum motivates its employees because it's allowing them an equal chance to affect the process.

Wednesday, January 17, 2018

Scrum Master (SM): A Practical Approach | Supreme Agile

The scrum master role contains many theoretical descriptions that do not provide an  answer to the basic question of “What is the Day to Day activities of the scrum master?”

In this post, I will provide a short checklist that will try to answer that basic question while examining few of the main ceremonies and artifacts of the Scrum framework.

Retrospective meeting

The retrospective meeting allows the team to determine new ways to create continues improvement of the process, the scrum master responsibilities: 

  1. Ensure that all team members will raise any issues that they had in the last sprint.
  2. Suggest work cases/events that can contribute to the open discussion.
  3. Ensure that the meeting will not transform into “Blaming” meeting
  4. Ensure that the team understands the importance of this meeting.
  5. Search for new techniques to make the reporting more effective.
  6. Ensure that every team member will have the chance to speak.
  7. Ensure that all issues from previous meetings are fulfilled.
  8. Suggest new formats of retro. 

Review (A.K.A: Demo) meeting

The review meeting is held at the end of each iteration to review the work done by the team (according to the DoD) and to adapt the product backlog accordingly. The scrum master is responsible for the following activities:
  1. Ensure that the product backlog reviewed and adapt based on the PO requirements.
  2. Ensure that the team can answer any questions regarding the uncompleted stories.
  3. Ensure that the team is ready to present the work they accomplished.
  4. Ensure that all stakeholders presented.

Product Backlog Refinement (A.K.A: Grooming) Meeting
The product refinement meeting used to validate that the product backlog is in good condition, prioritized and ready for the next planning meeting, the SM activities are:
  1. Validate that the PO receives all answers from the team regarding technical stories.
  2. Responsible to write and follow-up all questions raised by the participants.
  3. Validate that the meeting participants are familiar with the meeting goals.
  4. Raise ant issues raised by the team regarding stories prioritization.
  5. Validate that all questions from the previous meeting are answered.
  6. Validate that the product owner is ready for the meeting.
  7. Validate that the relevant stakeholders are participating. 

Activities during iterations (A.K.A: Sprints)

The scrum master will perform some basic but critical activities that will determine if the team will run an effective iteration or not, these activities include the following:
  1. Responsible to increase the communication and knowledge sharing among the team members.
  2. Responsible to validate that all stories and tasks updated based on team progress.
  3. Ensure that the team enforces the scrum rules during the different scrum activities.
  4. If necessary, the scrum master provides technical assistance for team members.
  5. Clearing any impediments from the team that can affect the iteration goal.
  6. Sent invitations to the relevant stakeholders for scrum events.
  7. Ensure the required stakeholders will present at meetings.
  8. Lead the team by example.
  9. Build training session and any other learning activities that will increase team knowledge in scrum. 

Planning Meeting

The planning meeting used to determine the work capacity, team commitments, and the sprint goal, the scrum master activities focuses on:
  1. Help the team to understand if there any major risks that can affect their commitments.
  2. Help the team and the product owner to establish a clear goal for the upcoming sprint.
  3. Help the team to make an efficient task breakdown.
  4. Help the team to understand when they need to stop/Take commitments (Based on the team velocity, Capacity and the complexity of the user stories).
  5. Help the team to bring any technical resource (Expertise) to provide technical information that helps the team to make a more accurate estimation.
  6. Help the team with task prioritization.
  7. Prior to the team to take their next commitments, the scrum master should provide the team “Velocity” and “Capacity” metrics.
  8. The scrum master can use is technical skills to help the team with any questions raised during the task breakdown.

Daily Standup A.K.A Daily scrum) Meeting

The scrum daily meeting designed to allow the team to synchronize about the work progress and to make sure that all team members are focused on the iteration goal, the scrum master activities:
  1. Ensures that each team member provides the full and true information about its progress.
  2. Validate that the iteration burn-down chart reflecting the real work progress of the team.
  3. Validate that all open questions from the previous meeting are answered.
  4. Validate the product backlog PBI’s updated based on the team answers.
  5. Ensures that each team will speak during the time limit of 2-3 minutes.
  6. Stop any member that is not come prepared for the meeting.
  7. Remove all impediments that raised during the meeting.
  8. Ensure that the meeting conducted on a daily basis.
  9. Validate that the meeting starts and end on time.
  10. Validate that there will not be any electric devices that can affect the focus of the meeting.
  11. Ensures that team members will not use the meeting to resolve technical issues (in that case, the SM will take this issue offline).
  12. Remove interruptions from other stakeholders that arrive at the meeting (Product Owner, Managers of other teams Etc.).
  13. The SM should validate that team members will not report to him; this is not a reporting meeting! 
  14. Validate that team members are participating and share their insights based on the meeting agenda.

Thursday, January 4, 2018

Who is the worst enemy of an Agile implementation | Supreme Agile

You have selected your new scrum masters, and they are ready to do their job as key stakeholders in your scrum teams. The project starts and everything looking great, the ceremonies are happening, the team works as a single unit, the velocity increase per iteration, so we can say that the team performs at the highest level. Then, without an early notice, the impediments are starting to raise and affect the team ability to keep the same performance as they succeed to do until now. Well, what can we do...? It is the Scrum Master time to step up and help the team to remove those impediments that affecting their work; this is probably the highest priority of a scrum master that need to ensure that the team can perform at the highest level.

“A manager's most important work is helping the people doing the work. Give them a goal and let them work. Remove any impediments that get in their way. Do anything that may make them more effective or productive. Then the organization can capitalize on the fruits of their work.” KEN SCHWABER

Impediments, what does it means?

Prior to reviewing the different types of impediments that may arise during an agile project, we first need to understand what an impediment is. The dictionary value of “impediment” described as “something that makes progress, movement, or achieving something difficult or impossible:”

And if we want to see how the formal definition is related to agile, we can use these specific definitions (There are more, just run a quick search on google :) ):

  • "A hindrance or obstruction to doing something. Frequently used to describe some issue or blocker that is preventing a team or organization from performing Scrum in an effective way."
  •  “An impediment in Scrum is a factor that blocks the Development Team in its creation of a valuable piece of software in a Sprint, or that restricts the team in achieving its intrinsic level of progress.”

Knowledge is power

In scrum, impediments can come from different areas and in all shapes and sizes, therefore, there is a Huge importance that the scrum master which responsible to remove them will have the relevant knowledge and familiarity to handle them.

Let us review some of the most common impediments that arise in almost any project:

Unstable builds

The scenario goes something like this, the team created a great sprint backlog and they are ready to conquer the world, the progress is great and suddenly the build is corrupted due to 1000 reasons, what should they do now? Well, you guess it right; the scrum master should ensure that the team would get a working build by promoting it with the CI team as the highest priority. 

Process Issues

In some scenarios, the team should work when the process is not fully implemented or implemented inappropriately.  The impediments in that area related to all issues that related to the process and affect team able to do their job. Examples:
  • Integration between teams not defined, and cause bottlenecks in the day-to-day work.
  • Missing ceremonies or technical knowledge to perform them.
  • Scrum masters/Product Owners that do not know how their role.
  • Key Stakeholders are not contributing to the process as they supposed to do.
  • The team does not know how to estimate that work prior to taking their commitments. 

Blockers for a user story

User stories are planned and committed at the start of the iteration, but they cannot predict which problems may arise once they start to work on it (Risk Assessment is one way to increase the percentage to try to predict it). Blockers can arise from both external and internal locations; the scrum master responsibility is to ensure that those blockers removed to allow the team to continue their work.

Lack of technical knowledge

In some cases, the team needs to deliver stories that they just do not have neither the experience nor technical knowledge to handle them. The scrum master responsibility is to ensure that the team will get the missing knowledge that they will need to handle similar challenges. Few Examples:
  1. Ensure that an expert will attend the planning meeting to share his knowledge with the team.
  2. Add another member to the team that can balance the necessary knowledge and experience needed to handle similar stories.
  3. Provide technical training for the team in areas that they do not have the necessary knowledge.

The process is not enforced

There are just too many examples of impediments that arise from this area; the scrum master responsibility is to ensure that the organization will follow both the scrum process and its spirit.

Technical debt

I hate this one, technical debt is a situation where the team cannot take new stories until they succeed to remove the technical debt that they allocated until now. A great scrum master will analyze the reasons that led to this situation and will make the necessary actions to reduce this debt and in some cases even to remove it completely (Automation, Automation, and automation!).

Negative Approach

There is always that person who thinks he knows everything and based on his knowledge, agile is a complete waste of time, and therefore he is not willing to be committed to the process. Now, because agile based on self-Organized teams that work together to achieve a common goal, such team members that possess a negative approach may affect other team members similar to a bad apple in a basket. 

Sickness of a team member

You base the team commitments based on two major factors, the first one it the team velocity and the second one is the team capacity. Now, you know these two factors at the start of the iteration, but you cannot predict how the capacity would change once you start the sprint and one of your team members will not arrive to work for one, two or maybe an entire week.

Now, there is nothing that you can do here, sickness of a team member is not something that you can forecast, but a good scrum master will become aware of this impediment and will help the team overcome it by involving the PO and the team regarding the work that they may unable to deliver as they intend to do at the start of the sprint. 

The physical working Place

The physical working Place should allow the team to perform at the highest level, if that’s not the case, it is the scrum master responsibility to ensure that the team will get the most suitable physical working Place that will help the team to maximize their abilities.

Unstable working environment

Working environment includes impediments that arrive from the hardware, software, and tools that the team needs to use to perform their work. it’s the scrum master responsibility to ensure that such impediments will remove soon as possible due to the massive impact that they may have on team progress.

External interruptions  

The team performs a daily meeting and suddenly a manager of another team arrives and start to interfere with the meeting agenda, sounds familiar? Therefore, in that case, it is the scrum master responsibility to ensure that the team will not suffer from unwanted interruptions that come from external resources.

Common questions regarding impediments

Question: Can the team start a sprint with impediments?
Answer: Yes, as long that there are no critical impediments that entirely blocks the team. 

Question: What do the team should do in the case that there are many impediments?
Answer: Continue to work on other user stories until the impediments removed by the SM, in any case, that the team cannot show a real progress, they can set a meeting with the PO to review current progress and expected deliverables.

Question: Who should fix an impediment?
Answer:  The most suitable stakeholders (Engineer, Product Owner Etc.) that can remove the impediment as quickly as possible.

Question: Can an impediment stop the sprint
Answer: In rear cases yes it does, for example, The sprint based on an external supplier that does not available for the team and therefore the team cannot proceed. 

Question: What is the SM responsibility regarding impediments?
Answer: I already explained it, but the SM should summarize, tack and ensure that the relevant impediments removed. He can do it by using other stakeholders or do it directly (Pending is own set of skills).

Question: Who responsible to determine the prioritization?
Answer: The team has the best knowledge about which impediments are more crucial for them and therefore should have the responsibility to share it with the team SM. The SM has the responsibility to ensure that the team will do the ordering and the reporting. 

Question: What are the main factors used in the prioritization process?
Answer: The basic factors that I love to use are as follows;
  1. The Amount of risk by Removing/Not-removing the impediment
  2. Effect on the iteration goal
  3. Impact on team motivation
  4. Impact on velocity

Questions to consider prior to handling impediments

So, as the servant leader of the team, the scrum master should be responsible to remove any impediments that affecting the development team’s progress. Now that we say the obvious, let’s remember that the scrum master as another critical responsibility to create a self-organized, cross-functional and committed team, by removing impediments that the team can resolve themselves the scrum master can actually create more damage than a real benefit.

Therefore, now that we understand these two major responsibilities, we need to understand how the scrum master should react to impediments that arise from the team and what are the questions he should answer prior to automatically mitigate them.

My suggestion is to follow these set of 10 questions:
  1. Is the described impediment is the symptom of a bigger problem?
  2. Is this impediment describe the real problem? Is it contains all the relevant data?
  3. How this impediment affect team progress?
  4. Is this impediment must be removed at current sprint compared to other impediments?
  5. Do we really need to resolve this impediment?
  6. What is the Risk of not removing this impediment?
  7. Can the team resolve this impediment without the help of the SM?
  8. Can we use this impediment as a guiding example for the team?
  9. Is this impediment relevant to an internal conflict between team members?  
  10. Is it really an impediment…? 

What tactics can the SM use for removing impediments?

There are some basic tactics that the scrum master can use to handle impediments, let’s review some of the most commonly used tactics: 

Keep the Active approach

In most cases, the impediments raised during the daily scrum meetings as a key part of the meeting agenda; this is good enough in most cases, but sometimes it can be too late. An active approach of an SM can find these impediments even prior to the meeting. Remember that the scrum master is part of the team and therefore can see impediments that affect team performance without the need for the team to report it.

Ask the right questions

Not all the reported impediments indicate for a real problem; sometimes team members can raise an issue as an impediment without even trying to resolve it. Therefore, once the SM understands it, he should ask the team a set of questions that will allow them to understand what they can do to resolve this issue by their own and without waiting for him to do it for them.

Impediments as an advantage for improvement

For me, this is what differentiates great scrum master from the mediocre once; a great SM can take impediments and use them as an advantage for educating and promoting team knowledge.

Give the Tools instead of a quick solution

The scrum master should provide the team with the necessary tools to handle the same future impediments without the need to wait for him, once he succeeds; team members can resolve their own problems and reduce the bottlenecks through the sprint. 

Mitigate the Root Cause

This is similar to any other RCA process where the investigator should not resolve the symptoms but instead should drive to find the real root cause that led to this symptom. Remember that resolving a symptom without resolving the real Root Cause will most likely not prevent from the same impediment to rise again in future iterations. 

Increase transparency and continues improvement

There is a major benefit in showing what, where the impediment that affect team performance throughout the iteration, therefore the scrum master should document the number of impediments that were raised, how they affect the progress and what was done to remove them.

Prioritize first

I think that anyone that was part of a scrum team will agree that in most cases there are many impediments that arise per iteration and especially in new teams and large complex projects. Due to this reason, there is a major importance of the scrum master to prioritize the impediments prior to run and resolve them. My suggestion is to consult with the team regarding which items are more important and always compare it to the iteration goal (High priority is given for impediments that affect the team’s ability to meet it). 

My Presentations