Tag: Scrum

5 Unique Qualities That Make Up a Great Scrum Master

The role of SM (Scrum Master) is challenging. It takes a certain type of person to succeed. As per the Scrum Guide, the SM serves the product owner, development team and the organization. The SM is a servant leader. Nobody reports to the SM.

Without formal authority, the SM relies on their natural abilities to provide leadership. People who shine as SM’s, tend to be those with high levels of social and emotional intelligence. In short, they are great with people. They build meaningful relationships and promote trust.

In no particular order, here are five unique qualities that make up a great Scrum Master:

  1. Empathy – Empathy is one of the competencies that make up emotional intelligence. It is the ability to feel the emotions of others. It creates a sense of rapport which is necessary for servant leadership. Empathy gives SM’s the ability to hone in on team members who may be frustrated or having difficulties, and help them. With empathy, the SM can see and feel someone’s struggles, without having to hear it. Great SM’s use empathy every day to gauge how the team is doing.
  2. Courage – There are two key reasons why SM’s need courage. The first is having the courage to admit mistakes. When the SM admits to a mistake and takes accountability, it sets the right example for the team. In Scrum, the team needs to understand that it’s okay to try new things and make mistakes. This promotes trust and helps to improve team performance and innovation. The second reason SM’s need courage is to protect the team. When someone interferes with the Scrum team, the SM has to confront that person. Often this can be challenging for the SM, because it could be someone with position power who is affecting the Scrum team. An example would be a manager who requests the Scrum team to do something outside of their Sprint goals. The SM needs to have the courage to confront the manager and shield the team.
  3. Coaching – The SM is a coach, and coaching is an art form. In Scrum, coaching is about asking the right questions and helping people learn. It is not about telling people what to do. Great SM’s are passionate about helping people to unlock their potential through coaching. The SM coaches the team on self-organization, cross-functionality and any areas in which Scrum is not understood. For a great book on coaching, see Coaching for Performance by John Whitmore.
  4. Discipline – Scrum is a straightforward framework. The practice of Scrum and the Scrum events are easy to understand, but difficult to master. The SM must ensure the team stays disciplined to the Scrum events. For example, great SM’s don’t blow off Sprint retrospectives or any other Scrum event. SM’s need to ensure that team members are showing up and contributing to all the Scrum events. It all starts with the SM. Great SMs lead by example, and they show up early and prepared to all the Scrum events. They never cancel events unless there’s a good reason.
  5. Facilitation – The importance of facilitation is often over looked or minimized. Have you ever attended a meeting that completely went off course due to poor facilitation? Or you had to wait 15 minutes for the meeting to start because the facilitator couldn’t get the conference bridge to work? We all have. A great SM is polished in their facilitation skills. They ensure that all Scrum events and meetings take place without a hitch. They do this by being well prepared in advance. They also use their social and communication skills to keep meetings on track, and on time. Crisp facilitation is crucial for SM’s.

Conclusion

Some people are fit to be a Scrum Master, and some are not. When managers are looking to fill a Scrum Master role, I tell them to not try and fit a person to the role. Instead, fit the role to the person. What I mean is, try to place someone who you already know is good with people. If you know someone is terrible with people, they’re not cut out to be a Scrum Master. It doesn’t matter how many certifications someone has, the SM must have emotional and social intelligence. If you can identify someone who has the five qualities I listed in this post, rest assured they have potential to be a great Scrum Master.

 

About the Author: Mike MacIsaac is the owner and principal consultant for MacIsaac Consulting. Mike provides leadership as an Agile Delivery Consultant and IT Project/Program Manager. Follow Mike on Twitter@MikeMacIsaac or subscribe to Mike’s blog.

 

Kanban vs Scrum – What You Need To Know

Kanban vs Scrum

If you are familiar with Agile you know about Scrum and Kanban. While these two Agile frameworks have similarities, they are also very different. Their differences go way beyond stickies on boards. In this post I’ll describe the two frameworks and their history, as well as their benefits and differences.

Scrum OverviewScrum is by far the most used Agile framework. Credit for the framework goes to Jeff Sutherland and Ken Schwaber. Scrum got under way back in 2001 after the creation of the Agile manifesto.

Scrum is great for complex software delivery projects. In Scrum, there are defined team roles which are Product Owner, Scrum Master, and development team. The Product Owner creates a backlog of user stories that define the scope of a project. The team then completes the stories in short iterations called “sprints”. Sprints usually last 2-4 weeks. Sutherland was influenced by his days as an Air Force pilot. He relates the team sprints process to coming back from short missions and landing the plane on time.

The goal is to have working software, approved by the Product Owner, at the end of each sprint. The stories worked on in the Sprint should be done (all testing completed..etc). The key metric used in Scrum is Velocity. Velocity is the average amount of points a team can complete in a Sprint. Within Sprints, change to work is discouraged.

The stories completed in each sprint represent part of the total project scope. The team repeats this cycle of sprints until all stories in the backlog are done, in which case the project ends.

Kanban Overview  – “Kanban” get’s its origins from the Toyota Production System. Back in the 1950s, Taiichi Ohno created a pull system for Toyota. The idea was first sparked by his experience in American supermarkets. He was fascinated by how shoppers would walk down the ails pulling only what they needed from the shelves and putting it into their shopping carts. Shoppers usually had a list they carried which told them what they needed.

In Toyota plants, “Kanban” are instructions in clear plastic that communicate information needed at work stations. In a sense, a Kanban is like a grocery list. When an order comes in, a Kanban would be used to pull the whole car creation process together. Each item needed for the Kanban is ready just in time (JIT). This enables minimal build up of inventory. In a lean system, the goal is to reduce waste. The build up of inventory is the worst form of waste according to Taiichi Ohno.

The principles of the Toyota Production system were emulated in lean software development when Kent Beck created XP (Extreme Programming). The goal was to use the JIT principles and limit work in progress to the teams capacity. Beck also implemented a test driven development (TDD) process that improved quality. XP can be considered a different Agile framework from Scrum and Kanban. In my view, XP has more of relation to Kanban, since Beck based most of the practice off of Ohno’s Kanban method.

Unlike Scrum, Kanban is usually not the framework of choice for software delivery projects. Projects have a clear beginning and end, as well as a defined scope. Kanban works well for support teams, where work will be ongoing.

Teams will use a Kanban board, like the board a Scrum team would use for their Sprint. There are no Sprints in Kanban, the work is a continuous flow. There are also no defined roles in Kanban, like there is in Scrum. Cycle time is the key metric used and unlike the Sprints in Scrum, in Kanban change can happen at anytime.

Some of the benefits of Kanban include flexibility in planning, increased throughput, fewer bottlenecks and visual metrics. Kanban also compliments continuous delivery.

Below is a grid that Dan Radigan from Atlasssian put together, which displays the differences between Kanban and Scrum.

                                          Scrum                                                             Kanban

Cadence Regular fixed length sprints (ie, 2 weeks) Continuous flow
Release methodology At the end of each sprint if approved by the product owner Continuous delivery or at the team’s discretion
Roles Product owner, scrum master, development team No existing roles. Some teams enlist the help of an agile coach.
Key metrics Velocity Cycle time
Change philosophy Teams should strive to not make changes to the sprint forecast during the sprint. Doing so compromises learnings around estimation. Change can happen at any time

Summary

Scrum and Kanban are two different Agile frameworks, but both have many benefits. In my view, Kanban is more aligned with lean development than Scrum. The area where Scrum gets into trouble with lean is the idea of having a team create and work on a large backlog. Lean experts, like Mary Poppendieck, cringe when they hear the word backlog. This is because it goes against the principles of JIT and low inventory. At Toyota, I’m sure the plant manager would freak if they had a large backlog of orders piling up. They want to have low inventory and good throughput. While Kanban works great for a repeatable process, my view is that Scrum is the best framework for complex software delivery projects.

If you enjoyed this post, check out The Top 10 Influencers of Agile.

About the Author: Mike MacIsaac is the owner and principal consultant for MacIsaac Consulting. Mike provides leadership as an IT Project and Program Manager as well as an Agile Scrum Master. Follow Mike on Twitter @MikeMacIsaac or subscribe to Mike’s blog.

 

The art of being an Agile project manager

Agile Project Manager

The Agile project manager role has become quite common. As more organizations adopt Agile, the traditional project manager role has morphed into a hybrid Scrum Master. For those of us working as Agile project managers, we have the challenge of blending two different, even opposing, roles into one. It begs us to question, can one even be an Agile project manager? Ken Schwaber seems to think so. The co-founder of Scrum wrote a book called “Agile project management with Scrum”.

Let’s back up and take a look at the differences between a Scrum Master and a project manager.

  • The Project Manager – If you have your PMP, you know that project management is all about planning, control, and communication. The traditional project manager role is big on command and control. The PM has authority over the team. The PM manages the team, assigns work, and is accountable for the success of the project. The PM is responsible to create a detailed Gantt chart project schedule and all planning happens at the start of the project.
  • The Scrum Master – If you have your CSM, you know that a Scrum Master is not a project manager. Whereas the project manager is about command and control, the Scrum Master is about servant leadership. The Scrum Master does not have authority over the team, he is more of a guide and coach. The Scrum Master shields the team from interference’s. He removes impediments, and ensures Scrum the team understands processes and values.

Knowing the differences between the two roles, we can now see how working as an “Agile Project Manager” is an art form.

Below are some tips to help you be an effective Agile project manager:

  1. Let go of the idea that Agile or traditional project management has to be one way, all or nothing. Organizations are complex and tackling a change like Agile adoption is difficult. This is especially true for large organizations used to rigid structure and control.
  2. Don’t be afraid to switch hats, between PM and Scrum Master, when necessary. For example, I try to empower the team and not tell people what to do (with my Scrum Master hat on). Yet, when the team starts running into trouble, I create a sense of urgency and give direction (putting my PM hat on).
  3. Help to educate the leadership team on the difference’s between Agile and Waterfall. The real value in Agile is in the core values, not the practices. In fact, most Agile projects that fail are a result of company culture not aligning with Agile core values.
  4. Make the Agile ceremonies mandatory. Agile teams may be self empowered, but you have to at least follow the key ceremonies. If you’re not having daily standups, sprint reviews and retrospectives, don’t call yourself Agile. These Agile practices are low hanging fruit. They are the easiest things for teams to adopt. The hard stuff is getting the core principles right.
  5. Perform the Agile PM role to the best of your ability, and do it with a smile. Whether you are an employee or a consultant, your job is to fulfill the need of the organization. Try to improve processes, but as Dale Carnegie says “don’t criticize, condemn, or complain”.

The art of being an Agile project manager means being flexible and willing to lead. It means accepting that some roles won’t always be by the book.  It means understanding the value in both the Scrum Master and PM roles, and finding a way to make them work together.

For more content like this, subscribe to the MacIsaac Consulting Blog.

To contact us about our services, click here.

 

 

 

 

 

 

Root cause analysis – Why toddlers are better at it than us

root cause analysis

If you’ve ever talked to a toddler, you’ve been hit with an endless amounts of whys…

Dad, why do you go to work? So I can make money. Why do you need to make money? So we can eat. Why do we need to eat? And on and on it goes.

Well, it turns out we need to learn from toddlers. Their relentless, and annoying, asking of why is what we should be doing for root cause analysis.  Working in technology, we deal with problems all the time. When we’re confronted with problems, the majority of us don’t take the time to do a good root cause analysis. This results in problems coming back to haunt us.

For example, say an application stops working. The team begins to triage the issue, and discovers a service stopped running. The service gets restarted, application relaunched and all is well. Or so the team thought. The next day the application stops working again. After inspection, the team finds again the agent needed to be restarted.

The agent stopping was only a symptom, and not the root cause. This is why we need to use “the 5 whys” when confronted with a problem. By asking why 5 times, you’ll dig deep enough to get to the core of the problem.

Repeating why five times is a process that was first used by Taiichi Ohno in the Toyota Production System. It is now a common practice in Lean software development.

In the example I gave above, the 5 why scenario might look like this:

  1. Why did the application stop working? Because the service stopped.
  2. Whey did the service stop? Joe performed an install and forgot to restart all the agents.
  3. Why did Joe forget to restart all the agents? Because there is no documented process about restarting agents.
  4. Why is there no documented process? Nobody took the time to do it.
  5. Why didn’t anyone take the time to do it. Everyone is busy fighting fires, nobody has the time.

In the above scenario, by asking why 5 times you get to the root of the problem.

Creator of XP Kent Beck writes: “After Five Whys, you find the people problem lying at the heart of the defect (and it’s almost always a people problem).

For more content like this, subscribe to the MacIsaac Consulting Blog.

To contact us about our services, click here.

References: Beck, K (With Gamma, E.). (2005) Extreme Programming Explained, Upper Saddle River, NJ, Pearson Education, Inc

 

 

 

 

The powerful benefits of value stream mapping – improving your software development process

projmgt

Value stream mapping is a powerful tool. It’s used to identify and remove bottlenecks in your organizations value stream.  Before going further about the mapping, let me first touch on what a value stream is. I’ll also describe the theory of constraints.

Your organizations value stream is the end to end process used to deliver a product to the customer. For example, it may begin as a request from a customer, and end once the customer has the finished product. The stream contains all the activities it takes to get the customer the finished product. Each activity contains a work time, and a wait time.

The theory of constraints says that the best way to optimize an organization is to focus on throughput. Throughput is the key to generating profitable revenue. The way to increase throughput is to look for the current bottleneck that is slowing things down and fix it. Once removed, find the next bottleneck and fix that. Keep this up and you will have a fast-moving value stream (Goldratt, E 1984).

Creating a value stream map – “Mapping your value stream is a good way to start discovering waste in your software development process. In industry after industry, the process of mapping the value stream has invariably led to deeper insights about how internal processes work or don’t work to meet customer needs” (Poppendieck, 2003).

An easy way to create a value stream map is to have a project team gather around the whiteboard. The process shouldn’t take long. You should be able to do this in an hour or less. Write out all key activities in your value stream. For each activity, write down how much work time it takes, and how much wait time there is.

For example, you may find it takes on average 2 weeks to code for a project, but it takes an extra 3 weeks to move the code to test. This extra 3 weeks is wait time that doesn’t provide any value to the customer. It is waste.

After creating the value stream, identify the biggest bottlenecks in your process. The goal is to increase flow and value added time in the system. Focus on the fixing the biggest bottleneck, then continue to fix the next bottleneck.

In software development, it is common to find that the biggest bottlenecks occur after development and testing are complete. This is why it’s so important for organizations to be moving towards a lean software development model.

Below is a picture of a value stream map from the book Lean Thinking, by James Womack and Daniel Jones.

 

lean-and-kanbanbased-software-development-14-638

For more content like this, subscribe to the MacIsaac Consulting Blog.

To contact us about our services, click here.

References:

Mary and Tom Poppendieck, Lean Software Devleopment

Eliyahu M. Goldratt, The Goal

Top 10 influencers of the Agile software development movement

As a practitioner and student of Agile software development, I am fascinated by those who have influenced the Agile movement.

For fun, I have decided to put together my personal top 10 list of those who I believe have influenced what we refer to as Agile software development. Not only have they influenced Agile, most of them have put out bodies of work that will continue to educate future generations.

For all you Agile gurus out there, don’t freak out about who’s not on my list. You may have your own list which looks completely different. I know every time the the NFL puts out a top ten players list,  I’m usually in disagreement 🙂

Here we go…

10 -Kent Beck

 Kent Beck

Currently working for Facebook, Beck is the creator of Extreme Programming. He was one of the original contributors to the Agile Manifesto in 2001. He is a leading advocate for test driven development (TDD). Beck has published over 8 books on software development.

9 – Mary and Tom Poppendieck

Mary and Tom P

Mary and Tom are a package deal. I was fortunate enough to attend one of their workshops several years ago. Minnesota locals, the two have written together several books on lean software delivery. They helped bring lean production techniques to software development. Together they have had a big influence on the Agile movement.

8 – Jeff Sutherland

jeff_sutherland

One of my personal favorites, Sutherland is the co-creator of Scrum. A West Point graduate and pilot,  Jeff flew over a hundred missions in Vietnam. After his military carrer, Jeff got into software development. He was a doctor at the University of Colorodo school of medicine, and he helped write the Agile manifesto in 2001.

7 – Eliyahu Goldratt

Eliyahu Goldratt

Although his name may not be synonymous with software development, Goldratt has influenced the way we think about systems. Goldratt’s book “The Goal” is a required reading in almost every business school. He’s is known for his teachings on the theory of constraints (TOC) and the critical chain method.

6 – Ken Schwaber

ken_schwaber

The co-inventor of Scrum along with Sutherland, Schwaber is a prominent leader of the Agile movement. Ken has authored many books on Agile and Scrum. Ken founded Agile Alliance and Scrum Alliance, which created the Scrum master certification programs. Ken helped write the Agile manifesto in 2001.

5 – Jim Highsmith

Jim Highsmith

Jim has authored books on software development and Agile project management. He created the adaptive software development model. Jim is respected as a leader in the Agile software development movement. Jim won the Jolt award in 2000, and the Stevens award in 2005.

4 – Frederick Brooks

Frederick Brooks

Brooks is an American computer scientists widely known for his book “The Mythical Man-Month”. In his book he describes the lessons he learned while managing the development of IBMs System/360 family of computers. Brooks law states: “adding manpower to a late software project makes it later”.

3 – Taiichi Ohno

Taiichi

The father of the Toyota production system, Taiichi Ohno was the originator what we now refer to as lean. The processes and principles he put in place at Toyota had a huge influence on lean software development and Agile. Ohno claimed that he modeled the Toyota Production system after Ford, only he removed the waste.

2 – Henry Ford

Henry Ford

Ford is a fascinating American icon. He founded the ford motor company and helped create the assembly line production process. Not only did his assembly line process change the auto industry, it changed the world. Manufacturing would never be the same. What I admire the most about Ford was that he accomplished so much, and he did it all  through sheer determination.  Ford had little formal education, he didn’t graduate from High School.

1 – Edwards Deming

deming

My favorite quality guru, W. Edwards Deming. What I like the most about Deming was that he cared for the line worker. He championed pride in workmanship. He put the responsiblity on management to focus on the system. Along with a 14 point process for quality improvement, he created the PDCA (Plan, Do, Check, Act) method. The PDCA method is exactly what takes place during Scrum sprints (iterations). His processes and statistical control methods also revolutionized the Japanese auto industry.

For more content like this, subscribe to the MacIsaac Consulting Blog.

To contact us about our services, click here.

Quality and the consumer – The 3 corners of quality

quality

Defining what quality means is difficult. On this subject, the great statistician Walter Stewart stated: “The difficulty in defining quality is to translate future needs of the user into measurable characteriscts, so that a product can be designed and turned out to give satisfaction at a price that the suer will pay” (Shewhart, 1931).

In software development, we tend to focus on a series of defined tests. If all our tests pass, we have developed a quality product ready to be shipped. If the product is shipped and the result is a high volume of production defects, the product was not of good quality.

The challenge with the old way of Waterfall software delivery, and only relying on our tests,  is that the consumer of the product is involved too late in the product development process. The consumer is perhaps the most important aspect of developing quality software.

For this reason, we need to involve the consumer all throughout the development process. This way, we build quality up front.

The below figure shows the three corners of quality model put forth by Edwards Deming.

drawit-diagram-4

What we have learned with the application of Agile, is the importance of learning from the customer. Deming talked about this back in the 1970s, but it wasn’t until the early 1990s that it was applied for software development.

On learning from the consumer, Deming writes: “The main use of consumer research should be to feed consumer reactions back into the design of the product, so that management can anticipate changing demands and requirements and set economical production levels. Consumer research takes the pulse of the consumer’s reactions and demands, and seeks explanations for the findings” (Deming, 1982).

What Deming describes is exactly what takes place during the Scrum sprint reviews. During the sprint review, we show production ready software to the consumer. The consumer can then give immediate feedback. This allows us to make changes to the design of the product.

The old way of delivering software looked like this:

drawit-diagram-5

The new way of delivering software using Agile ensures we build quality into the product up front. We build production ready software in short iterations, then review it with the customer. The new way of delivering software looks like this:

drawit-diagram-6

For more content like this, subscribe to the MacIsaac Consulting Blog.

To contact us about our services, click here.

 

 

 

 

 

You may be Agile, but you still need documentation

writing

One of the principles of Agile is “working software over comprehensive documentation”.

I’ve seen many project teams misinterpret this principle. In Agile, working software is valued more than comprehensive documentation. This doesn’t mean documentation is not required. If you start a software project without documentation, you are in for trouble.

Even in Agile, a small set of critical documents are required.

Below are the 4 critical documents needed for software projects:

1) Why (objectives): The Project Charter – All projects need a written document that explains why the project is needed. What problem is going to be solved? What benefits will be had by delivering the project?

This doesn’t need to be a large detailed document. The point is that the team and organization have taken the time to document clear objectives. I’ve seen teams document the MVP (Minimal Viable Product) in the charter. This helps give the team focus on the end goal.

2) What (requirements/user stories) – After creating the charter, the scope of the work needs to be captured. In Agile, the scope is documented in the form of user stories. In Waterfall, the scope is documented as requirements.

3) When (schedule):All projects need to have some form of a schedule. Whoever is paying for the project deserves this. Imagine you are considering paying a builder a large sum of money to build you a new deck. You’re about to sign the contract and the builder tells you he has no idea how long it will take to build the deck. I think the chances of hiring that contractor are slim.

4) How much (budget): The cost of the project has to be estimated, approved, and documented. Through the project, the cost needs to be monitored to ensure you stay on budget.

The act of creating these four documents will force the team to make clear decisions. The documents will also provide direction for the project.

For more content like this, subscribe to the MacIsaac Consulting Blog.

To contact us about our services, click here.

The Power of Scrum – Adapting to Change

Scrum

“The Only Thing That Is Constant is Change” – Heraclitus

Unlike Scrum, in a traditional waterfall methodology all planning is done up front. For example, say the objective of your project is to get from Block A to Block B

drawit-diagram

In Waterfall, all steps will be planned out and base lined up front. Once planning is complete, the team will set off on their voyage to get from Block A to Block B.

Using Waterfall, your up front project plan might look something like this:

drawit-diagram-1

Here’s the problem, delivering complex software is a lot like finding your way through the dark. You have to take small steps and feel your way through. You have to adapt and make changes as you find your way.

This is why project teams run into trouble using a Waterfall methodology. They are not ready to adapt to changes when needed, and changes will be needed.

To make things more challenging, using Waterfall customers are only engaged during the start and end of the project. This means all throughout design, build and test the customer is in the dark. This leaves a risk of a system built that is completely different than what the customer actually wanted.

In Scrum, the software teams builds workable chunks of software in short iterations. The team is feeling their way through the dark and adapting to changes as needed. These iterations are called Sprints, and they usually last around 2 weeks. At the end of each sprint, the customer gets to see the built functionality. The below picture represents Scrum iterations:

drawit-diagram-2

By building software in short iterations and keeping the customer engaged, you can adapt to change. The final outcome of the project might look completely different than original expected.

The customer may have realized they actually need to get to Block D, not Block B. Maybe they realized Block D provides much more value than Block B.

See example below:

                                                       Original Plan

drawit-diagram

 

                                          Actual results using Scrum

drawit-diagram-3

For more content like this, subscribe to the MacIsaac Consulting Blog.

To contact us about our services, click here.

 

Powered by WordPress & Theme by Anders Norén