Saturday, September 26, 2015

ENTERPRISES CAN’T AFFORD TO BE SLOW - The Challenges of DevOps in the enterprise.

Why is DevOps suddenly so important? DevOps can be a major contributor to high performance and enterprises cant afford to be slow. So how DevOps fits into the enterprise and what release managers can do to adapt and extend DevOps to meet the challenges present in larger businesses? 

Using burn charts in scrum -Tell the story behind the numbers

Burn charts helps us tell the story behind the numbers. Let’s review what a burn chart is , what valuable information it can give us and what usages of a burn chart we may find in agile projects and other agile environments.

Wednesday, September 23, 2015

How can we really achieve our goals? One tip is to Use a Constant Heartbeat of action.

**Taken from from The Coaching Booster Book - chapter 4 : Using a rhythm of action shows you how to break down that “forever” time to get things done into smaller chunks of time.

Every change holds a “goal” or a target that we try to reach. Every goal has a duration, the time that it takes to reach the goal. Now, you may have noticed that some goals (such as ‘yes, I WILL lose 20 pounds before the summer holidays’) feel unreachable. The time we think it will take us to reach that goal is more or less ‘forever’. But it doesn’t have to be that way. The concept of taking several steps to get closer to the goal, then taking them again, creating a rhythm of action shows you how to break down that ‘forever’ into smaller chunks of time. Suddenly, even the most unachievable goals become something you can reach, not something that will always stay out of your grasp. Yes, even those that feel like they will take forever to reach.

First of all, we have to understand that things do not happen by themselves. We need to make them happen. This may seem self evident to you, but it’s surprising how often we ignore this basic rule.

So how do we make things happen? How do we get closer to our goal?
By creating a routine. A rhythm of action. And we’ll call it a heartbeat.
The heartbeat is part of the coaching Booster infrastructure. It contains exploration, action and continuity, and takes a few days to complete. Once we complete it, we immediately start another.

Just like the human heart, and hence the name. It is this constant rhythm that helps us create the change that we are reaching for.

So how exactly does this heartbeat work?

1. First of all, we start off exploring, looking for the direction of the change.

2. Once we know what direction we want to go in, we act. We get things done, but we make sure to do them in small doses. Small doses of actions as well as in small timeframes. In a routine of acting in fixed and repeating cycles of activity. Each heartbeat has a beginning and a finish which between we execute or goals, small goals.
This not only boosts our confidence, but it also enables us to cope with the big change we are trying to achieve.

3. Finally, we use the feedback that we get to start off the whole exploration process again.

This process is called the Booster heartbeat.
But how does it work in real life? 

Well, lets use a real life example. How many people do you know who enthusiastically signed up to a gym, just to stop going a week or two later? Those people probably believed the same thing that many of us do. Paying their subscription fee upfront will persuade them to stick to their schedule. 

They will go to the gym every other day, exercise like mad, and have rock hard abs in six months.
But of course they don’t.
There are plenty of other examples that we can give of goals that we all WANT, but find it hard to achieve:

• Dieting
• Getting another degree, or completing a course
• Taking your spouse out on a date
• Being a better parent and spending more time with the kids
• Getting promoted at work
• Learning to sky-dive

This is why being able to constantly change while coping with new challenges is essential. It means that we can grow and develop into who we want to be.

Yes, being able to constantly change is a challenge. We know! And that is exactly why we wrote this book :)

Maintain continuity
Even when we understand the importance of our decisions, or know what action needs to be taken, we aren’t always successful in actually following it through. We need to find a way to maintain continuity.

But how can do we do that?

Are small goals the trick?

Smaller goals are far easier to reach, it’s true. For example, instead of deciding that we will lose 20 pounds in 5 months, we change the goal to “lose 1 pound in the next week”. That certainly helps, but it isn’t the complete story, and won’t accomplish much on it’s own.

What are the factors we need to take into account?

First of all, we need to define what we want to achieve. We should know our vision, our goals and course of action. Second, we need to be able to take small steps towards our goal without giving up.

Just like toddlers who are just learning how to walk, smaller steps are easy to relate to and act upon. If the steps are too big, you can easily fall over. You won’t see the immediate success and it’s easier to give up. Don’t blame yourself – that’s just how our brain works, looking for instant gratification.
So we are looking for some way to envision our goal, take small steps, and see our success. And that is exactly what we have in the heartbeat. Using the heartbeat, we are focused when we take those small steps. It means, placing those things we want to do in a cadence of small periods of time.

So, we aren’t just dividing our goals into smaller ones. We’re also dividing our time into smaller chunks. This means that we can react much faster to the changes around us. We don’t have a plan for the next year, because who knows what changes will happen by then. We have a plan only for the period of time , or for next week. This way, we create successes continuously and create a routine where we can manage the change.

No, you can’t change overnight and no one expects you to.
If you set a lofty goal for yourself, the most effective and realistic way to achieve it is by setting short term goals that lead up to it. And those short terms goals are completed by using a constant heartbeat of short periofd of time as aroutine activity.

Why is routine good?

Many of our daily activities are a routine of sorts. For instance, brushing our teeth. We brush our teeth when we wake up, and before we go to bed. If you make sure that your kids do THAT every day, they’ll brush their teeth every morning and night on their own after a while. By the way, it is always a good idea to explain the REASON behind all this teeth brushing. Explaining helps the routine stick even more.

Routine isn’t just doing the same thing at the same time. Studies have shown¹ that routines have a positive psychological influence on children. Routines, or a heartbeat of activity, as we call it, help babies and toddlers to anticipate what will happen next. This gives them a measure of control and boosts their self-confidence. For instance, when parents say, “It is bedtime”, the child knows what’s coming next (a bath, brushing teeth and reading a book). The routine helps the child make sense of the situation and relate to it.

So routines are NOT just maintenance. Daily routines provide young children with a sense of safety and comfort. They help children cope with transition. Routines are an opportunity to learn, and are a good framework to Get Things Done easily. Routines put us on the right path towards achieving our goals.

The benefits of routines aren’t restricted to children. Studies show that² routines affect adults in much the same way. A routine enforces our feelings of safety, positive emotions, confidence, and well-being. Routines are like guidelines that we feel comfortable operating within.

You are the master of your routines.
Today, of course, our parents no longer have to create routines for us, even though
sometimes we might like them to. WE are the adults. We are the ones who need to maintain our routines and develop new ones.

Perform the heartbeat action.

When we say “heartbeat”, what we actually mean is a rhythm. It is a fixed and repeating cycle of activity. The idea is borrowed from the world of Agile, and means that our work is done in regular and repeatable cycles.

According ³ to Medilexicon’s medical dictionary⁴: Heartbeat is “A complete cardiac cycle, including spread of the electrical impulse and the consequent mechanical contraction.”
In our case, the cycle includes less electrical impulses and more actions that propel us towards our goals. Remember that to complete our goals we take baby steps? Small tasks that build up to the big one of achieving our goal? That’s the heartbeat. It includes:

• A kick off
• A daily follow-up
• Reflection

But what do they mean?
Well, the kick off defines what you want to achieve in the current cycle. The daily follow up shows you how successful you were, and if you ran into any challenges along the way. And the reflection shows you what you can improve for the next cycle.

If you look closely, you’ll see that this heartbeat is JUST like your actual heart beating. Each beat starts up, pumps certain value around, and as soon as it ends, another beat begins.

And the beat goes on…

Heartbeats are supposed to be consistent. Your cycles may be a bit faster, or slower, but you have to maintain a steady pace.

Our heartbeat forces us to break our big goals up into smaller ones. It makes us look at smaller chunks of time, which makes sure that we remain focused.

The heartbeat is very clearly defined, with a start and a finish, and real value to show for it, when it’s over. This is why making the heartbeat part of our routine helps us find solutions to the changes that happen around us, and get things done.

When was the last time you stopped to think?

Lets have a closer look at how the heartbeat works:

1. We always begin and end the cycle on the same day – for example, Tuesday.
2. Every cycle, we kick-off (stop and think) before we start actually doing.
3. We write down a small number of goals/tasks we want to accomplish.
4. We look at what we’ve achieved every day, and when the heartbeat ends, we review what we’ve achieved at the end – again, we stop to think.
5. We draw our conclusions and write down new tasks, changing where we need to.
6. And then the new heartbeat starts.

Just creating a routine isn’t enough. Ever so often, stop. Think. Is there any feedback? Does it mean you need to change what you are doing?

Avoid work for work’s sake.
Simply doing tasks for the sake of doing tasks virtually ensures that we will miss our goals. Stopping to think and make minor adjustments to correct our course is far more effective.

When, What, and How?

When we want to change, there are few questions we need to ask ourselves. When to change, What to change, and How to change.

Why do we ask ourselves these questions?

Because change is hard. Take the gym example from the beginning of this chapter. We wanted to go and exercise. We really really did. But we couldn’t. One day, there was a Parents-Teacher meeting. Another day our kid wasn’t feeling well. And Thursday, well, that’s the day we stay late at the office.
If you don’t stick to your routine, you’ll find that there’s ALWAYS something that you have to get done before you go to the gym. And at the end of the week, you realize that you haven’t even gone once. You’ll wonder how you didn’t manage to spare a few hours for doing a little physical exercise.
Of course, some people think that “going to the gym” is part of the problem. They say that you can exercise at home, and that all the effort involved in getting ready, driving to the gym, and driving back is, in fact, a waste of time. They have a point and this waste is called motion waste (But we will get to that in the chapter about “Personal waste removal”).
Let us get back to the When, What, and How questions. When you are looking for a change, those are the questions that you ask.

When does the change take place?
The change takes place at beginning and end of every heartbeat.
There isn’t a sudden magical “poof” when change occurs. Change happens gradually, over
time, as we move towards our goals with each heartbeat.

What should we change?
Keep in mind that we’ve just broken down our very big goal into smaller goals. So we don’t
have a BIG what to change, we have a lot of smaller whats instead. Just as important, but it’s much easier to answer.
We evaluate our what all the time, so that it is easier to change and adapt accordingly. And
at any given point, the ‘what’ that we answer is the one with the highest value (at the time).

How are we actually going to do things?
We’ve set ourselves small goals? Awesome. How are we going to achieve those goals? How are we going to complete each small task? Even if we don’t always succeed, we can learn from what we did, and do things differently next time.

Change gradually

The aim is to gradually improve our routine and abilities.

Get into the rhythm.
The heartbeat enables us to cope with changes, adapt and learn, in small doses. We examine our routine and refine it, based on feedback we receive.

Effective change and the ability to get things done are most effective when they occur gradually.

When you have time to understand the process. Think of a normal day for you.

Every evening, you spend a few minutes thinking about what you’ve done during the day. You might have found a new restaurant, you might have done really well at work, or you might have just written the first page in your novel. 

Thinking about the feedback you got, you decide what you’ll do tomorrow, based on that feedback. 

And that, people, is what the heartbeat is.

Get used to this routine

This is a routine, just like any other, and we have to get used to it.
It’s a bit like the first few days for children going off to daycare centers. The parents help them set up routines, which in turn, helps the kids get settled in faster. Getting up in the morning, saying “Good morning” to the staff, and so on.

Everybody needs to get used to new routines. So do we.
The coach’s role – your role – is help the coachee get used to this regular heartbeat, teaching them how to speed up or slow down.

It is your job to teach this routine to the coachee, how to operate within the boundaries and rules that enable successful action. Show your coachee how he can continue by himself.

Checklists for scrum masters

Scrum Core - Most basic terms explained

Preparing to PSM I assessment? Here's some tips collection.

The Professional Scrum Master (PSM) line of assessments tries to figure out if you understood the basic concepts (PSM I) of Scrum as described in the Scrum Guide and if you have some intermediate knowledge in being a Scrum Master (PSM II). It is not easy to pass the PSM I assessment. There are some tricky questions occurred while taking my assessment. Preparing is recommended.  Remember Scrum is based on empiricism. Your knowledge comes from your experience. So Scrum on!

Tuesday, September 22, 2015

What are the best methods for testing big data ?

When it comes to practice, software testers may not yet fully understand what Big Data is exactly.  The problem here is the lack of a clear understanding about what to test and how deep inside a tester should go. Since most Big Data lacks a traditional structure, there are some key issues that must be understood before going down this path. What does Big Data quality look like? What are the most appropriate software testing tools? What are the basic Big Data methods? What is the testing mindset required? and more...

Sunday, September 20, 2015

Data Visualization Mistakes

Finding the right chart to visualize your data is easier said than done. It should not be a jigsaw puzzle where readers are trying figure out what the data is trying to convey. When done properly, data visualization are the best and easiest way for us to understand a vast amount of information. 

"The first principle is that you must not fool yourself — and you are the easiest person to fool."  - Richard Feynman, 1974 Caltech Graduation Address

Wednesday, September 9, 2015

If a Scrum Team Wants to Respond Fast to Unexpected Tasks, it should take the fast lane

What is the relatively small step we can take to facilitate the addition of changes and surprises to a Sprint?

Each Scrum team must also deal with unexpected tasks. So it goes. In today's reality, it would be illusory to believe that it is possible to plan a one-week, two-week or longer sprint without running into surprises.

In fact, in almost every new team in which I come to implement Scrum, the obvious question arises: "But how can we handle unexpected tasks?" And indeed this is also something that does actually happen, usually when the team already has a backlog: "suddenly" a surprise appears, in the form of a manager or someone else who wants to add a new element which was not discussed in that Sprint’s planning meeting. This in itself creates confusion: how to add it? Who will add it? How will it be managed? How to ensure that the tasks outlined in the planning meeting are not compromised (or perhaps they should be)? And more.

This confusion also has a price, certainly when introducing Agile to an organization which is unfamiliar with it. The price may also be manifested in frustration and anger at the management team, who say one thing (Sprints, Agile, backlog) and do another (continue instilling chaos into the day-to-day work of the delivery teams).

** In my opinion, it is not strictly necessary to switch to Kanban (For those who have heard of it). I personally like working with Scrumban; and anyway, Scrum is currently common in many organizations, so that finding an easy and immediate solution for the Scrum team is preferable over the alternative, which requires completely replacing the entire toolset and switching to Kanban.

One important assumption to ‘calibrate’ before we start: The organization must remain able to introduce surprises, meaning to respond to the needs of the market on the spur of the moment. That is the nature of the current market: fast, quick, complex... surprises and changes are something we must learn to deal with if we are to survive. This is further complicated by the fact that we have to learn to deal with them while still staying productive, maintaining quality and keeping the pace. We, as development units, have to provide this infrastructure, this flexibility, both in the procedural level (as I will demonstrate soon) and of course in the level of the code’s quality and the ability to take a working piece of code at any given stage and change direction (but this is beyond the scope of this article, and is more in the realm of Dev Ops, CL, testing, etc.)

In this state of affairs, what is the relatively small step we can take to facilitate the addition of changes and surprises to a Sprint? Let’s solve this conundrum.
What is a surprise? In effect, a surprise is first and foremost any task which we could not have planned for, which appeared when it did because “we did not know of it in advance”. E.g., customer bugs, urgent customer needs, urgent product changes and more. It is something that cannot wait for the end of the sprint and needs the immediate attention of the team members.

So what do we do?

1. Build a fast lane – or as the team refers to as "a highway".

The concept is simple and similar to a fast lane on the highway – a lane which goes faster than the others. This is it. The fast lane's goal is to allow cars to pass faster than in the other lanes. This is exactly what happens in the Sprint. Most of our tasks often have their own pace, but there are tasks that must go through now, faster, and we must clear a route for them.

A fast lane is meant to allow cars to pass by faster during rush hours and its price often changes according to the level of traffic. The same applies to tasks coming from the outside: their price differs according to their level of organizational urgency. Passing them through the Fast Lane requires discretion, an understanding of the price and a decision regarding whether it is worth paying or not.

On the task board, indicate your Fast Lane in a clear and separate manner – to enable you to separate between the planned and unplanned elements of the Sprint.

2. Put a price tag on your Fast Lane.

Determining the price of the Fast Lane is important in order to understand our capacity to handle surprises. How many are coming in? What kind? How much do they cost? Comparing between Sprints and proper control of this information can improve the way surprises are handled and the execution of ongoing development processes in the future.
Based on past experience, as early as in the Sprint planning meeting you should ask yourself: how much have we devoted to unexpected factors so far?
Was it 20, 30 or 40 percent of our Sprint?
You do not have to be overly precise. In your first time doing so, act based on your gut instincts and just go ahead and set the price tag.
For example, 30% of the past Sprint’s capacity was invested in dealing with unexpected events and thus we should make room for them accordingly.
This means that the Sprint backlog which will be presented to the entire team will be planned at 70%, and the additional 30% of the work that could potentially be designated (but will not be accounted due to the fact that we take a fast lane budget instead) will be left aside, in order to enable the team to take on additional tasks in case no surprises appear during the Sprint (but between us, there most certainly will be).
Thus, the team does not undertake a mission which it will not be able to accomplish, but responds better to changing circumstances by undertaking a more realistic mission – namely, 70%.

3. Measure your Highway and track its effect.

We must treat the Fast Lane as we would our bank account or budget.
During the project \ version \ Sprint we allocate budgets which we would like to track. Not because we do not want to exceed them if it becomes necessary to do so, but because we want to understand what is happening, to learn and to change our conduct if necessary.

So let's handle our Fast Lane as if it was a bank account.
Each entry into the Fast Lane reduces my remaining budget, which is monitored in the course of the Sprint.
Have we exceeded our budget? This is akin to overdraft. This is the message that should be reflected to the organization.

The team is responsible to reflect everything that has come in and how much it has cost us so far, what it means and which part of our budget has been devoted to the Highway.

For example, one way to reflect the Highway "budget" is via a burn down chart.

Another way, for example, is indicating it in different colors:

Green – good utilization. Meaning, a green fast lane indicates that considering the amount of surprising tasks coming in, we estimate that the allocated budget will not be exceeded and our condition is good.
Orange – towards the end of the fast lane budget, but not at risk of exceeding it or not at a medium or higher risk of compromising the regular Sprint tasks.
Red – increased capacity utilization with a chance to compromise the Sprint's normal track and consequently also the Sprint's regular tasks.

4. Add surprises wisely and plan ahead for how to pause ongoing work in an orderly fashion.

  • Take the work currently being done into consideration: It is important to understand that the fact that we have allocated a track and time does not mean we can insert tasks into the fast lane chaotically, without adequate communication or adequate planning... After all, when a surprising task comes in the people are already working on something or another, which they have to finish before undertaking the additional task.
  •     Ensure an appropriately sized backlog and proper Sprint pace to enable a quick stop – note that the ability to insert surprises into a Sprint is also related to the organization’s ability to produce an appropriately sized backlog for the team, so that stopping work will have minimal negative impact on the work which is currently underway.
  • As with any Kanban, the smaller and better defined the task of each team member, the better their ability to finish it with minimal context switch and as a more complete and functional element.
  • The shorter our Sprints, the better our ability to postpone in case of unexpected events without compromising our ongoing tasks (have I mentioned already that this is similar to Kanban?) The shorter and more focused the Sprint tasks themselves are, the better the team’s ability to stop what they are doing at the moment and add something new – with minimal negative impact on what is currently underway.
  •          A surprising task enters through the Sprint backlog, coordinated with the PO and after the Scrum master has been informed.
  •         At this stage pace ​​estimates are made to determine the price incurred by the surprising addition in terms of the ongoing work.
  • When something comes in it becomes the responsibility of the entire team. However, before we take them off of any other task, it is important to understand just how urgent it is. When something enters the Highway, it should be clear that it is a matter which cannot wait until the end of the Sprint, must happen soon and hence it has been entered. This is the foremost consideration. But here too, it is important to understand what is being compromised, what must be finished before we start dealing with it and to what extent.
  • An extremely urgent surprise might come in, one that cannot wait at all and must be dealt with immediately; in this case, we start working on it right away and inform the rest of the team later.
  •          In all other cases, we find out when is the best opportunity to stop the ongoing tasks, and stop at a time when it is possible to introduce this surprising new element.
  •         In any case the task’s entry is orderly, without panic. Panic will not solve the problem. Stop for a moment to understand what we are facing, what is the DOD, how to test it, who will work on it, have a mini-planning session, estimate the size and then insert it .

5. The Fast Lane is discussed as part of the daily scrum meeting.

I hope it is quite clear that in the Daily meetin you will also discuss matters which are in the Fast Lane. After all, they have an impact on the team’s day-to-day and the way in which they fulfill their Sprint obligations.

6. Inspect and adapt.

How do you ensure that this whole Fast Lane thing is not put to waste? That it only contains tasks which genuinely belong there?
In the Retrospective meeting, it is very important to discuss what has gone in there. Was it a real surprise or something we could have expected?
Did something urgent come in, or could it have waited?
What happened to our budget?
Why did it happen, what is the root cause of the events which led up to the surprise’s entry?
And what steps or rules should we adopt to better handle or reduce the size of our Highway in the future?

7. Pay attention to the contents of your Fast Lane.

This lane contains only tasks that come as a surprise – which were not planned for in the Sprint and could not have been there in the first place.
This is not an obscure and empty buffer into which we can throw in all sorts of delays.
It does not contains bugs we discovered in the process of developing, as these are accounted for as part of the Sprint’s work.
It does not contain the whims of some individual or another, or side jobs of some manager or another, which become part of the Sprint in ‘shady’ ways.
Sometimes the “surprises" which come in are actually bugs originating from late QA cycles. In this case, they do not belong here, they belong in the organization's ability to change its conduct and integrate late-stage testing activities into the Sprint process itself.

8. Other important aspects to consider.

Do you have a very large amount of surprises?
I have seen companies whose Highway includes 90% of the work – not because things could not be done otherwise, but because there really was a mess and severe quality issues which created a lot of requests for changes and fixes from customers. A catastrophe that must be addressed quickly. In this state of affairs we stopped everything and underwent a Kanban, according to management’s decision that quality must be addressed first, in terms of both customer response and ongoing manufacturing, and only later should we proceed to develop – a very heavy price for the lack of quality in that project.

But it is also possible that there are a large amount of surprises because they are the reality of the organization or its market, in which case it is recommended that you take an additional step towards Scrumban, upgrade the board and improve the efficiency of the entire process. 

At the same time, you should consider shortening the Sprint duration.
It is possible that a large amount of surprises are concentrated around a particular area of the product, in which case you might want to consider having a certain team focus only on dealing with these types of problems. Is it an ongoing matter? Is it worthwhile to create a dedicated team solely for this area?

A matter which is urgently handled by several teams simultaneously and divided between several fast lanes: Yes, I have seen this as well. Not ideal. After all, the idea is to focus everything in one multi-disciplinary place, right? Right, but sometimes the organization is unable or unready to do so at the current time, due to various constraints. Hence this must also receive some kind of response in the short term. If the Fast Lanes of several different teams contains common issues, one way to handle it, beyond structural discretion, is to create inter-team focus on this urgent issue when new tasks are ‘injected’ – such as creating a specific alert or a dedicated project manager for the matter, etc.

Whatever you do, don’t forget to enjoy the road!