Sherpa Sessions video

My answers are segmented into topics like “What questions about Agile do you always hear from your clients?”, “How can team overcome enterprise resistance to Agile?”. All of them can be watched in this Vimeo album.

Agile Testing Day Netherlands 2014

Agile Testing Day Netherlands 2014The well-established Agile Testing Days will reach Den Haag on February 13, 2014 for a one-day conference and we’re very happy to be sponsor of this great meeting of Agile-minded software testers. Our founder and strategic coach Andrea Tomasini will deliver a keynote presentation controversially titled Agile Testing is nonsense, because Agile is Testing.

The friends at Agile Testing Day Netherlands 2014 have prepared a Christmas special until December 23rd, you can get the ticket for 375 € instead of 500 €. Seats and tickets are limited to 150 people. As a passionate software craftsman make yourself a merry little Christmas and grab a ticket for you or a friend or employee who was not naughty, but nice during the whole year to send them your season’s greetings! For further details please visit www.agiletestingday.nl.

One, No One, One Hundred Thousand Projects

I have presented this talk to two of the main conferences in Italy this November, Italian Agile Days in Reggio Emilia and Better Software in Florence. Although the presentations have been in Italian the slides and notes are mostly in English.

The presentation was titled One, No One, One Hundred Thousand Projects, or Uno, Nessuno, Centomila Progetti in Italian, with a nod to the work of Nobel laureate writer Luigi Pirandello. A key aspect is that often problems and solutions are common between companies because independent from the the context.

The Cynefin Framework

What does the word ”Cynefin” mean?

The word “Cynefin”, pronounced ki-neh-vin, is a Welsh word that cannot be directly translated into English. However, it is commonly translated as ‘habitat’ or ‘place’ and means a place of multiple belongings. We are all rooted in many different pasts which profoundly influence who we are, but of which we are only partially aware. i.e. geographic, tribal, religious, cultural, etc.

Origins of Cynefin

Cynefin was first developed by Dave Snowden in 1999 in the context of knowledge management and organisational strategy. By 2002, it had developed to include complex adaptive systems theory. It was further developed and elaborated with Cynthia Kurtz as part of their work with the IBM Institute of Knowledge Management, and by Mary Boone to extend the model to Leadership. It appeared as the cover feature in the Harvard Business Review in 2007 in the context of leadership.

What is Cynefin?

Cynefin_framework_Feb_2011

Cynefin is a decision framework that recognises the causal differences that exist between different types of systems, proposing new approaches to decision making in complex social environments. Cynefin is also a sense-making model, not a categorisation model. In a categorisation model, the framework precedes the data. This is good for exploitation but not exploration. In a sense-making model the data precedes the framework, making it good for exploration.

The 3 basic types of systems involved in Cynefin are; ordered, complex and chaotic. Ordered systems are divided into 2; simple and complicated. There are 5 domains in total; Simple, Complicated, Complex, Chaotic and Disorder (in the middle of the image above).

Before we move on to describe the various domains, I hope that the two sentences below will help you understand why Cynefin can be so beneficial for us:-
We need to think differently about different problems. There is no one size fits all approach and the actions you take depend on which domain you are in.

 

1. The Simple Domain

In the simple domain we are in an ordered system where the relationship between cause and effect exists, is predictable in advance and is self evident or obvious to any reasonable person.

We apply best practises and the approach is to:-
SENSE — CATEGORISE — RESPOND
Sense           – See what’s coming in
Categorise  – Make it fit predetermined categories
Respond     – Decide what to do

Eg. A clerk in a banking institution calculating compound interest. Best practise is applied in terms of predefined formulae and given an input the results are always the same.

 

2. The Complicated Domain

In the complicated domain we have an ordered system where there is a right answer and where a relationship does exist between cause and effect, however, the answer is not self-evident and requires analysis and/or the application of expert knowledge. There can be several different ways of doing things in this domain, with the right expertise.

We apply good practise and the approach is to:-
SENSE — ANALYSE — RESPOND
Sense      – See what’s coming in
Analyse  – Investigate or analyse, using expert knowledge
Respond – Decide what to do

Eg. Anything that can be solved with professional training or external consulting services, like the need to develop software in a specific language (ie. C# or Java).

 

3. The Complex Domain

In the complex domain we have unorder where the relationship between cause and effect can only be perceived in retrospect and the results are unpredictable. Complex systems are therefore dispositional and not causal. Here, we need to create safe to fail experiments and not attempt to create fail safe design. We cannot solve complex problems with best or good practices alone. While conducting safe to fail experiments, we must dampen the parts that fail and amplify the parts that succeed. In this domain we get emergent order and practice that is often unique.

Emergent practice, behaviour or order results and the approach is to:-
PROBE — SENSE — RESPOND
Probe      – Experimental input
Sense      – Failures or successes
Respond – Decide what to do ie. amplify or dampen

Eg. Most types of innovation. Professional training or best practices are replaced with probing different approaches and ideas, sensing the results/feedback to see what works and what doesn’t, and responding appropriately (by amplifying and dampening our probes).

 

4. The Chaotic Domain

In the chaotic domain no cause and effect relationship can be determined. We have to stabilise the position very quickly!

We discover novel practice and the approach is to:-
ACT — SENSE — RESPOND
Act           – Attempt to stabilise
Sense      – Failures or successes
Respond – Decide what to do next

Eg. A medical emergency situation.

Note: It is possible for a problem to fall into more than one domain simultaneously. I will show an example of this at the end of the post.

 

5. The Domain of Disorder

This domain includes the state of not knowing what type of causality exists or what space you are in. The problem here is that we interpret and assess the situation we are in based on our personal preference for action, reverting to our own comfort zones.

For the sake of completeness

Transitions can occur from the Simple to the Chaotic domains. Here you ‘fall over the edge’ and any recovery is extremely expensive. For this reason, we should attempt to manage things in the complicated and complex domains.

Using Cynefin

Cynefin has been used for analysing policymaking within the George W Bush administration and the impact of religion in that process, the nature of response to bioterrorism, as well as aspects of measurement in the British National Health Services. It’s also been used for the retrospective study of emergency situations and to study the interaction between civilians and the military during disaster control.

That’s all great – you might be thinking – but how can I use it?
Consider this: – if you spend 2-3 years in a process based bureaucratic role, you’ll tend to see all problems as failure of process. If you’re an expert in a particular field, you’ll tend to see any problem as a failure to give you the necessary time or resources to do your expert analysis. We therefore have a natural tendency to categorise problems based on our own knowledge, skills and previous experiences.

Let’s take the subject of software quality as an example.

You might be forgiven for thinking that by applying best practice techniques such as BDD, TDD, Pair Programming, Code Analysis (cyclomatic complexity, etc), Automated Integration Testing, Automated Regression Testing, that you will be able to build a near bug free software product. However, what if for example, your business logic is contained in your database layer’s code in stored procedures? If you could unit test the stored procedures would you still need your 90+% unit test coverage in your application code? Would you still need as many automated integration tests? Or would you even perhaps decide to put even more effort into the automated integration testing and not unit testing? Software quality has elements in all the Cynefin domains. There are best practices and good practices that we should make use of. However, in context of the discussion here; in my opinion, the complex parts require us to create safe to fail experiments, trying different approaches, observing their results, and then dampening or amplifying elements of your experiments along the way to see what works best in your context.

Conclusions

When you’re next faced with a problem, question your immediate problem solving approach. See if the problem can indeed be tackled with best or good practice or whether you need to do a little probing, sensing and responding. Finally, we probably all agree that the incremental delivery of software with frequent short feedback loops is the approach we should use; releasing small bits of high value software, receiving feedback, reflecting, adapting, and repeating. Does this not sound complex to you?

Written by: Mark Nilsen of Derivco

AgilePalooza Conference in Austin

Last week saw me try out a short talk on the art of agile portfolio management for the first time. Sharing the stage with a very strong line up, including Mike McLaughlin (), Jan Thomas, @DavidHussman, Russ Fletcher (@davisbase) and @DamonPoole. With two tracks – a planning and a practicing track – the talks were entertaining and informative. It was a pleasure to sit in on a number of speakers and catch some interesting and thought-provoking talks.

We started with a warm-up at Dell, which to be fair was much more than a warm-up. Over 250 people on site, and a further 150+ people worldwide plugging in remotely, the day was busy with full rooms, plenty of insightful questions, and lots of feedback. 
Creating Powerful Teams
I started with my Building Powerful Teams talk (http://www.slideshare.net/davesharrock/great-agile-teams-sdec13-winnipeg) which was followed by some great questions. The premise of the talk is really about revisiting the Scrum definition of the Development Team. We first considered three characteristics of great agile teams: cross-functionality, size and collocation. A brief overview of the difference between self-organization and cross-functionality; only great sports teams show self-organization, while every sports team has a cross-functional teams with loosely transferable skills. A more in-depth discussion on size – including sharing the Ringelmann Effect which maps the impact of coordination losses and, a significant concern many people are hesitant to draw attention to, the impact of social loafing. While I suggest in the talk that there is a perfect team-size (6), at least according to several studies, the critical piece is testing the impact of different team sizes on the outcomes the teams produce. 
Finally, I ended the talk with a review of the Harvard Business Review Six Common Misperceptions about Teamwork: article http://blogs.hbr.org/2011/06/six-common-misperceptions-abou/. A favourite article with a number of very salient points.
In closing, there were some excellent questions around tools used for enabling better communication and collaboration between distributed teams. While anything but an exhaustive list, the following are a number of tools several clients we work with have found to be useful. Note they are generally free (at least to start with) with all that that implies for corporate usage. And I’m not talking about the agile project management tools, but rather tools that enable better collaboration and communication between team members
  • www.linoit.com: a great sticky note tool used very successfully for any sticky note exercise requiring input from a virtual team (e.g. Retrospectives)
  • www.cardboardit.com: great for story mapping or any sort of product visualization exercise. As the marketing says, if Google Docs and Post-it Notes had a kid, it would look like cardboardit.com
  • www.planningpoker.com: the free tool for handling relative estimation using the classic Planning Poker approach across distributed teams
  • Skype, Google Hangouts – for keeping everyone in touch, having a permanent chat window open for the team, or even better, a permanent video call open, allows for much higher bandwidth communication
  • Yammer – a tool for those conversations that require a little more permanence than those conversations offered by Skype or other IM tools
Agile Portfolio Management
On to the main event – while there are plenty of conversations around building teams and standing up agile teams to solve immediate problems, the challenge of coordinating activities across multiple projects, products or programs is fraught with opinion, advice and ‘best’ practices. This is a difficult problem, and not one that can be simply addressed through the mindless application of someone else’s successful practices. Like the American auto manufacturer executives trying to replicate the success seen at a Toyota manufacturing plant by copying process, agile at scale is a principle driven change, not a practice driven change. (For those who aren’t aware, the American auto manufacturers were never successful in achieving the same productivity and quality gains Toyota was famous for by replicating practices alone. They had to dig in and understand the culture, which was a much tougher problem to solve.)
The challenges the scale of an enterprise inflict on an agile organization can be summarized as difficulties in creating transparency, maintaining focus, and increasing communication. All three are simple on a small scale, but quickly become difficult and are negatively reinforcing (getting harder and harder to address, the larger an organization gets) as we scale an organization.
I gave examples of three principles taken directly from the Lean and Agile principles underlying any Agile change. While they are not the only ones that have an influence, they certainly help address the three costs of scale, communication, focus and transparency.
#1: Focus On The Whole
#2: Deliver As Fast As Possible
#3: Make Progress Visible

Finally, in closing, I touched on the influence of the PMO. Although definitely passing remarks, an interesting metaphor I uncovered was that of a pilot. While we definitely want a pilot to get us out of trouble when things go wrong, our expectation is that the pilot will rely on the autopilot for most of the time, letting the plane literally fly itself. While doing so there is plenty to do: Watching that the plane is on course, acting within its design parameters, and heading in the right direction, at the right speed, while avoiding any turbulence on the journey. However, the pilot only takes the controls in extreme circumstances, leaving the autopilot to do its job most of the time. A great metaphor for the PMO – rather than a process policing or controlling function, the PMO is there to monitor progress and add their expertise in extreme circumstances.

For more thoughts, notes and commentary, check out my Storify report from the day.

The truth about collective responsibility

A statement I hear regularly about collective responsibility, is; “When everyone is responsible, no one is responsible”. These statements usually come from managers, who prefer to have a single person who takes the full responsibility so they can hold one person accountable.

The Gallop organization performed a meta-study of employee engagement and found that high employee engagement results in measurably better profitability, productivity, customer loyalty and quality.

So let’s look at what motivates people in their professional environment, as described by author Dan Pink:

  • Autonomy
  • Purpose
  • Mastery

Autonomy

Boss or Leader

Autonomy is the desire of people to be self-directed. Traditional ways of management leave little room for autonomy. Managing people means directing them, giving instructions and assigning units of work to individuals. This is great if you want compliance, but if you want engagement, self-direction is better. 

To create an autonomous environment where people can self-direct, you need to inspire people, and help them to discover their talents, sometimes talents they were not aware they had. To do this you need leaders, not just managers, who will lead by example and show them the way first, but with the goal of allowing to think about the best way they can do their job. 

Purpose

Purpose means being part of something that serves something larger than ourselves. When profit motives exceed purpose motives, things can go downhill fast. Dan Pink describes this is his book Drive: The Surprising Truth About What Motivates Us that rewarding activities can extinguish motivation, diminish performance, crush creativity, crowd out good behavior, encourage cheating, shortcuts and unethical behavior, become addictive, and foster short-term thinking.

When people have a purpose, it inspires them to take action. When people are really feeling they are part of the bigger goal, they are more likely to be creative and come up with innovative solutions. Leaders should inspire people to achieve long term goals, not financial ones, but by painting a vision of a goal to work towards, a greater goal of which they want to be part of.

Mastery

Mastery is the urge to get better at things that matter. Whether it’s learning a new language or being part of a project that challenges or inspires, people want to get better at what they do. Leaders should inspire and encourage people to learn and provide an environment where they can learn.

A side effect of learning is that it stimulates your intelligence and creativity. There are studies that show that taxi drivers in London have more developed brains than ordinary Londoners. Having to learn new routes and react to unforeseen situations is stimulating their brain to develop.

It seems to make a lot of sense for organisations to have people working for them who are willing to learn and get more intelligent by doing so, doesn’t it? 

But how does this fit in Scrum?

There’s a lot of talk about self-organising teams in Scrum. To properly understand how that works, we need to involve the team in the larger picture. A good user story defines a problem in such a way that the solution can be implemented end-to-end, cutting through all layers of the architectural cake. This requires that different team members can bring different experiences and expertise. In Scrum we give teams autonomy, by enabling teams to self-organise. People who are closer to the problem are more likely to make the right decisions, and cross-functional Scrum teams (should) have all the knowledge they need to come up with solutions together.

We define the boundaries to the problem definition by defining acceptance criteria to User Stories. The team can then come up with the most optimal solution within these boundaries, sometimes referred to as thinking inside the box.

But setting these restrictions on User Stories alone is not enough. How can we expect people to come up with the best possible solution when they don’t have a clear understanding of the long term product direction? By defining a engaging Product Vision which sets this clear direction, teams can understand the User Story priority in the Product Backlog and see how each User Story contributes to achieve the vision. Better yet, they can use their combined technical expertise to suggest alternatives which are easier to implement and deliver almost the same value, resulting in a higher return on investment. They can even suggest to add User Stories to the Product Backlog which are quick win from a technical perspective.

When I worked with a mobile messaging provider, the company wanted to add a feature to show the people with whom you exchanged messages most, at the top of your contact list. The team immediately saw all kinds of technical complexities: during what period? should this be stored on the server? is the length of the conversation a factor, etc. They then realised that listing the last five people you exchanged messages with would bring almost the same user value at 1/10th of the cost. The team was able to propose this idea because they understood the user needs and felt that they were also responsible for the return on investment. 

When people are trusted to come up with solutions autonomously, they will begin to feel more responsible for their work, inspiring them to be creative, do research, and have a need to master the skills needed to do their job. When teams are really taking ownership to achieve their Sprint goal and product vision together, this will mean that they will put the team’s purpose before their individual targets. This requires them to look outside of their own areas of expertise and see where they can contribute best, and will, step by step, acquire mastery in other fields beside their own expertise.

To get back to the original statement; “When everyone is responsible, no one is responsible”. I want to turn this around; “When only one person is responsible, everyone else is not responsible!”

Change… what is change?

Almost exactly one year ago I stood in the kitchen waiting for the coffee water to come to the boil. Watching water coming to the boil is somewhat boring and my idle eyes dropped onto a towel someone had brought in, which said “Happiness is not a goal, it’s a way of life.” Still waiting for the hot water I digested this piece of information, and it dawned on me that, although I myself of course have no misconceptions about agility whatsoever, so many people have got agile wrong. They think agility is a goal, but it’s really a way of life. Hmm, I thought, I must write this down! As if waiting for this moment the boiler clicked off, and my insight was pushed aside by the imperative of making coffee.

What you are reading now is the first part of a series of blog posts on change, long in the making. I am writing this from the perspective of agile software development. Change is the core of agility, and you can’t be agile if you are not prepared to change and benefit from change. Being agile is to live with change, for change, and to be able to continuously create change. Not only change in the product, but in the processes and work agreements, and in the organization itself. Change needs to be embedded in the organizational culture — yes, even organizational change, even though it may sound like an oxymoron.

Naturally then, understanding change is very important if you want to work effectively as a servant leader, perhaps a ScrumMaster. Leadership is much about paying attention, observing and listening, making sense of situations and helping others understand what is going on, then letting people try out their own solutions. Through positive experiences the new methods will eventually stick and become culture.

I haven’t planned out the rest of the blog posts in detail yet, but the idea is to gradually progress from understanding change in theory and in practice towards understanding how to introduce change, apply change and perhaps guide it when it happens. We will also look at a number of larger agile frameworks from the perspective of change. There is enough material here for at least three semilong posts, so bear with me.

By the way, the models and ideas that I describe here are not my own. I have picked up a number of concepts from various sources over the years and retained those that I feel are useful. They help me make sense of what change is, how it propagates and how you even might be able to gently guide it sometimes.

Buy-in: Internal vs. external change

When the millenium was still pretty new, I worked as a process engineer in a medium-sized software consulting and subcontracting company. Starting from a very slim ISO 9000 -certified process, we worked in a group of three to develop our subcontracting processes towards CMMI level 3 (and also achieved the target in 16 process areas, but that is a different story). We worked on a small number of elements at a time and tried to finish each process element and deploy the results as quickly as possible.

Predictably, our project managers were not too thrilled by the changes. On the other side of the corridor sat a couple of trusted go-to guys that I knew would help me out in a pinch, but piloting the new changes with them was always a hard sell. It took months to talk them around to the new ways of doing things. But sometimes they would surprise me by developing their own tools and templates. Why was that?

One way to describe this is through buy-in. If a person doesn’t understand the new methods or think that they are better than the old ones, nothing will change. However if the person can participate in exploring and generating ideas, it is easier for him or her to buy into the idea, and the threshold to picking it up is much lower. And sometimes you find that somebody gets all excited over a new method, and wants to deploy it directly.

In general local knowledge is seen as more reliable than remote knowledge, and opinions more reliable than empirical data (Rainer et al., 2003). In plain language, the work done by the Process Development Unit and knowledge presented in academic research reports is perceived as less credible than the opinions and experiences of a teammate. Internally driven change meets less resistance than externally driven change. (If you don’t trust the article by Rainer et al., just take my word for it!)

In my case I was able to impose myself as a teammate to the project managers. But because I did not do the same work as they did, I was not really a project manager. My experiences and opinions did not carry enough weight and I resorted to the less credible and thereby slower method of presenting theories and models, many times using actual live project data to exemplify the concept.

How do you internalize change? We’ll discuss that later in this blog post, and will return to the topic in future posts. But for now, lets look at… FEAR!

Reactions to change: the lizard brain

The second lesson I want to bring up here is that all humans have a hard-wired notion that change is dangerous. In the jungle or on the veldt, those who spot telltale changes and avoid them are the ones who survive.

It pays off to over-react, to have a slightly lower panic threshold than one would think necessary. This is because those who scram off immediately use up more energy, but may live to see another day. But those who hang around to check that the waving grass really conceals a man-eating saber-tooth tiger don’t always get the chance to scram off. And so we have evolved an instinct for getting out of dangerous situations. Change and fear are connected on a quite deep level in our brains.

Some years ago I picked up a concept from a marketing guy named Peter Schneider. It’s simply called “the lizard brain”, and like all models it is wrong: it’s a simplification of reality and thereby full of holes and errors. However, I have found it very useful. It explains some of the reasons why people fear change, and also helps make sense of why people react as they do in the face of change.

The main concept of the lizard brain model is quite simple. When subjected to a threat of some kind — a threat to your habits, your territory, or your existence — people go into panic mode and will either fight, flee or freeze.

The name “lizard brain” comes from fact that panic reactions are handled (mostly) by the amygdala, which can be found just above the brainstem in all invertebrates. We share this with all mammals, birds and, indeed, with lizards.

When an invertebrate animal — a homo sapiens for instance — is subjected to a strong threat, the amygdala causes an immediate primal reaction. This is not a simple reflexive action: reflexes typically only yank a couple of muscles. But the primal reaction is still well below rational thought. In a dangerous situation, standing around considering your options is not a good, uh, option. In fact, one could say that the upper brain functions are simply subverted, disconnected by the amygdala. People suffering from primal fear are not only unreceptive to rational arguments but incapable of rational thought.

Perhaps an example would be in order here. My own strongest experience of primal fear happened at around the age of ten, when I walked on a sandy road and saw a large slavering dog running towards me. I was so scared that I just screamed at it, ready to fight for my life. (In terms of the lizard brain model, this is a fight-for-existence reaction.) Luckily the dog was as scared as I was. It did a somersault, turned on the spot and ran away. Immediately afterwards, my heart pumping adrenaline at 180 bpm, I felt ashamed of losing control, but also the deep satisfaction of winning a fight.

Interestingly enough the lizard brain is also activated in prolonged situations of fear or anxiety, as is the case in e.g. agile deployments. Case in point: “We will pilot Scrum in the organization and your team is the best candidate!” In other words: “We say you Scrum.” Ouch! How do people interpret this?

  • To some people agility is a threat to their habits. Many are accustomed to working in the warm fuzzy zone of “there are some last-minute problems but I think I can possibly get it done by next week Thursday”, also known as “90% done”. Others like to work alone and keep information to themselves, and see the increased transparency as a threat. Yet others feel that the daily standups are stupid — it takes weeks to implement this feature, why should I report every day?

  • Some people see Scrum as a threat to their territory. Many of them are former project managers that are now relabeled ScrumMasters or Product Owners and find that they have lost a large portion of their power. Or perhaps they are software architects irritated by the fact that teams are doing unapproved changes directly into the code base?

  • Some people see agile methods as a threat to their existence in the organization. These include line managers whose teams are suddenly self-organizing, or testers who learn that all testing will soon be automated, or specialists that have carved out their own narrow niche.

To the 95% who are not directly involved in driving the agile transition, Scrum is a cause of anxiety or outright fear. How do they respond?

  • Fight! Direct and indirect attacks. Badmouthing. Fear, uncertainty and doubt. Passive-aggressive behavior in the Scrum meetings. Appearing to play along for a while, then a sudden explosion of this-will-never-work. And so on — the examples are countless.

  • Flee! Some people grab the opportunity and move to other teams or escape the company altogether. The decision to flee is often made early, after enduring perhaps two or three weeks of Scrum, although it can take months for the fallout to appear. By that time people have made new commitments, signed new contracts, and the decision is very hard to reverse.

  • Freeze! A surprisingly large number of people seem to lose their drive and become unable to produce anything of value for months on end. They are moving the mouse and tapping on the keyboard but nothing real comes out.

In almost every team I work with, I can find examples of fighting and freezing. Sometimes, but luckily very seldom, also of fleeing. This model has helped me make sense of why people behave irrationally during an agile deployment.

As a manager or ScrumMaster of a piloting team, it’s your job to navigate them past this stage of anxiety. The main problem is how to do that when people are not thinking rationally. Let’s take a look at a third model.

Cultural change: the pyramid of results

Traditional management methods are focused on guiding and synchronizing the actions people do. The thinking goes that actions produce results, and if we want to get better results or more consistent results, we need to improve the actions people do. We can do this sometimes by standardizing, perhaps by measuring, perhaps by modeling and planning, maybe by setting up KPIs and targets.

We could also introduce the Project Manager role to plan and synchronize the actions of several people, and the role of Quality Manager to measure the results and improve the tools and processes. What if we want to make a more revolutionary change? Why, we set up a change program.

Unfortunately change initiatives are unlikely to succeed. According to Towers Watson, 75% of change initiatives fail to have any sustained long-term effects. I used to think that the 70% level of failure in software projects was astonishingly high, but this is even worse! Thoughtfully Towers Watson provides a list of causes; predictably it includes things like unrealistic goals, uncommitted CEOs, insincere senior managers, and the scourge of short-term thinking.

Needless to say, these symptoms are all likely to appear in a failed change initiative, but if you want to make the initiative succeed then attacking the symptoms is futile. According to the abovementioned study, 87% of the respondents train managers to manage change, but only 22% say that the training had an effect. You need to dig deeper. And so, let me introduce the “pyramid of change”.

The driving idea behind the pyramid of change is that what people do and how they do it is strongly influenced by their beliefs and value systems. If the actions and expected results are in line with their values and beliefs, they will happily and voluntarily do what it takes to get the results done. If not, they see little point in the exercise and will grudgingly carry out the task.

Where do people get their values and beliefs then? Well, from experience. From trying out things themselves, from observing other people, and from talking to other people about their experiences.

The Results Pyramid is © Partners in Leadership LLC.

The upper half is about “hard skills”: guiding and scheduling actions, measuring the results, managing risk. The lower part of the pyramid consists of the company culture, which requires “soft skills”: leadership, politics, managing expectations, shaping beliefs and making sense of experiences. Managers are well trained to work in the upper half of the pyramid, but as a leader in a change situation you need to shift your focus.

If you want your organization to change, you must create new experiences. You must show people that the new methods work in practice, tell them fairy tales and horror stories about how other teams have succeeded or failed, and use new thinking models to help people understand what is happening. As they gain experience from working with the new methods, they will start trusting the new ways of working: in other words, they will start changing their belief system.

Summary

In this post I presented three models of change. There are more to come, and I will bring them up in future posts. However, let me first tie up the three models by returning to my first example of developing processes towards CMMI level 3.

As a process developer I saw that people were reluctant to take new methods into use. I tried to repeat my rational arguments over and over again, and I felt that people were slowly, slowly becoming more receptive over time. Back then, I thought that it was a question of understanding the new method, and that this could be achieved by teaching and demonstrating.

In hindsight I’ve understood that things work differently. Project Managers were afraid of the changes I were proposing, and felt anxious about taking them into use. They did not necessarily respond well to my preaching: they became more receptive because they were getting practical experience from using the new methods, learning that the threat is really smaller than they thought. In other words, regardless of how much you tell them that the saber-tooth tiger won’t bite, they need to see by themselves that the tiger is continuously NOT attacking them before they can stop thinking of it as a “foe”… and perhaps someday start thinking of it as “friend” or “ally”.

References

A. Rainer, T. Hall, and N. Baddoo. Persuading developers to ’buy into’ software process improvement: Local opinion and empirical evidence. In Proceedings of the 2003 International Symposium on Empirical Software Engineering (ISESE’03), 2003.


 

 

The bitterness of poor quality

Recently I came across a picture online and posted it on twitter. I thought the quote made a lot of sense in an agile context, since in agile product development, quality should be considered in all stages, from early feedback from your customer to continuous integration on software teams. 

The bitterness of poor quality remains long after the sweetness of low price is forgotten.I am not a very active twitter user, so I was quite amazed it was retweeted over 200 times! Apparently the quote on the picture resonated with a lot of people, which inspired me to write this post. I also did some further research on the origins of the quote. It’s not clear who was the original author, but some sources attribute it to Benjamin Franklin. In the picture the quote seems to be hanging in an old saw-mill, but it turns out that around 1930 many companies had this statement as their motto, to emphasise they were building products to last.

Product Quality

The statement still holds true today, maybe even more in the current age of globalisation, where customers have easy access to social media and online reviews. Although good quality is no guarantee for success, products and services with poor quality won’t stand a chance.

One of the Lean Principles states “Build Quality In”, meaning quality should be considered and validated in all stages of the process. Unfortunately many organisations still consider quality something which is only required at the end of the product development process. There are different aspects to quality to be considered during the product development cycle. Quality is more than just preventing defects. A product with no or few defects will not automatically be considered a quality product by your end users.

When using an agile approach, the result of each iteration should be a ‘shippable product increment’, which we can inspect and validate against acceptance criteria and non-functional requirements on a User Story level. But we are also able to assess how the product holds up against the Product Vision we are trying to realise.

There is a good reason product backlog items are defined as User Stories in agile approaches, it emphasises the need to focus on User Value. Yet many organisation do not involve actual end users at all in their product development process, or if they do it’s only at the end. So try to involve users in early stages of the process, and focus on shipping minimal viable releases of your product to end users to validate it in the market.

Technical Quality

Next to validating product quality, we need to assess if our product conforms to our internal quality standards. For example browser or device compatibility, load and stress the product should be able to handle, connection and session handling, etc. When these aspects are validated only at a late stage of product development, the consequences can be quite severe.

Imagine you have delivered 10 iterations of functionality, if you discover some components added in the first few Sprints are not able to handle a certain load, you will have to go back and rethink the approach you took months ago. At the same time the functionality which was added later, may have been dependent on these components and thus will also be affected, introducing a lot of unexpected rework.

Regression

Regression in software is considered to be the introduction of defects by changes in code, configuration or libraries. When you are only focussing on validating the new functionality added in an iteration, you will not discover regression defects in existing functionality.

This is one of the biggest challenges when teams move to an agile approach. In a waterfall project you had a big test phase at the end where all the integrated code was manually tested. But when you are delivering integrated code every iteration, you can’t really afford to run all manual tests every time. The only real option you have is to automate your tests, so you can run them continuously without much manual effort.

When your code is well covered by unit tests and integration tests there is another advantage, in stead of finding the bugs at the end, you can discover them quickly, it’s a good practice to run unit tests often from your IDE, allowing you to quickly see if the few lines you changed are breaking any tests. And when they do it’s usually obvious how to fix it.

Effort required to fix vs. Time of discoveryQuality is Free

Another quote I love is one from Philip B. Crosby: “Quality is Free”. This quote is from the sixties, and wasn’t really intended for Software projects back then, but it actually does apply there too. What he meant with the quote was that any investment you make to prevent defects will pay itself back.

When you consider the cost of resolving defects and the time of discovery, you will find it is quite worthwhile to invest in unit test and integration tests.

How to get started

When you are dealing with a legacy code base without unit tests, it’s usually not an option to stop adding value and write unit tests for months. To get started you can start small, for example, agree to add one unit test this Sprint, the next Sprint cover a full story, until the team is ready to cover all new functionality with unit tests. Integration tests can be started the same way. Your velocity will be lower in the beginning, but you will soon see the amount of time teams spend on fixing defects drop, thereby increasing and surpassing your initial velocity.

Teams can also consider to write unit tests for defects found after the Sprint is complete. The reason these are found is usually because parts of the code are not covered by tests. You can start by adding tests for blocker and critical bugs, thereby making sure these particular situations will be covered by unit tests from now on. Next to unit tests, teams can also add automated integration tests in the same way.

Developers should get used to the habit of running unit test suites often from their IDE or command line. But it is also quite useful to have a continuous integration server, which monitors your version control system and validates all tests pass and build are successful.

No time to waste, start investing in your quality and productivity now! Your customers will love you for it.

book lot on table

Thesis about the Scrum method as used by agile42

Last month, Inga Geitmann’s thesis, “The Scrum Method as an Instrument of Lean Management and Their Implementation,” was published and is now available all over the world… here is a small summary:

“It ́s necessary to optimize working processes because of the economical benefits and it increases the lastingness of resources and working overhead. Methods especially in the software development were created to help organizations increasing their output while reducing costs. This is out of the economical principle where the idea is from to produce the highest output with less input. The scrum method is an agile method out of the lean management and was created by Toyota. This method was taken over and adapted from the car industry to the software development. Today a lot of big companies work agile with scrum. The increasing trend of using scrum and other agile methods shows the demand of reducing costs in times of uncertainly financial markets. The implementation of scrum through agile42.com within a customer shows the empiric way how this works.”

Check here for more information and to purchase the book online.