RSS

How To Create Psychological Safety

Our feeling of safety is largely under our control – it is a point of view.  That is good, because that means we have a chance to improve it.

By practicing being vulnerable – putting ourselves in a position where we can potentially be hurt – we can increase our feeling of safety.  Some examples are:

  • Say “no” when it is uncomfortable doing so.
  • Share a mistake you made with a colleague.
  • Ask for help when you don’t fully understand something.

By repeatedly taking these small risks, our feeling of safety increases.  If the reaction from the other person is good, then you have increased your feeling of safety.  And even when the reaction is negative, if you can accept it, then your safety will increase even more.

To prepare yourself for a negative reaction you might try:

  • Being prepared for the worst that can happen;  if you can accept the worst case scenario, then you will be able to benefit regardless of the other person’s reaction.
  • Realize that you are at choice – you have chosen to have this difficult conversation to incrementally build your safety muscle.

Finally, if being vulnerable is too large a step, then consider meeting with people in your team and sharing stories of when you were in a difficult situation.  You will realize that you are not alone, and we all find ourselves feeling unsafe sometimes.  And that feeling of “it’s not just me” will prepare you for the initial vulnerability exercise.

 
1 Comment

Posted by on January 22, 2017 in Culture, Individuals, Interactions

 

Psychological Safety

In this video I discuss the importance of psychological safety to effective teamwork.  Psychological safety is the degree which I feel comfortable being fully myself in a situation.

This type of safety is essential for software development and other knowledge-based teams.  Safety allows a team to benefit from the expertise of all of its members

  • Is it safe to make a mistake?
  • Is it safe to say “I don’t know” and ask for help?
  • Is it safe to learn from failure?

Learning is crucial to the success of these teams.  Without safety, teams cannot learn effectively.  High performance teams are masters of learning quickly and effectively from mistakes and failure which require a high degree of safety.

 
2 Comments

Posted by on January 21, 2017 in Uncategorized

 

Interviews for a High Performance Team – Part 1

We all want the best people for our team.  There are many effective ways to interview, and I’m not here to tell you the best way, but to add some perspective in and share some of my experience.

What I’ve been doing for the past few years is incorporating questions about human dynamics as well as technical and leadership prowess.  What do I mean?  Specifically, I ask about:

  • Safety – how does this person work in a safe/unsafe environment, as well as does this person create safety for others?
  • Respect – does this person respect others on their team?
  • Ownership – does this person take responsibility for his decisions and for his teams decisions or does he act from obligation/blame/justification?
  • Agreement management – What is this person’s ability to make/keep/renegotiate agreements?

I rarely ever ask direct questions.  And in this blog I’ll share some examples of how I check for safety and what clues I look for.

So, safety – psychological safety – is very important for a team to share (especially sharing mistakes early) and learn together.  To get clues how a person reacts to safety and/or creates it I usually ask them to tell me about their past projects (even school projects if this is a fresh grad).  And then I ask them to tell me about a few instances where something went wrong and how they dealt with it.  And then I listen carefully.  Here are a few scenarios:

  • If they have a hard time coming up with examples, then I have to question their ability to feel safe in stressful situations.  This is a big red flag.  When things go wrong – and they always do – we need to be able to face the mistakes early and deal with them as a team.
  • If they tell me how something went wrong but it wasn’t their fault, then a little warning light comes on.  They don’t feel safe around mistakes and the way they protect themselves is to blame others.  That won’t make for a good team dynamic.
  • If they tell me the details of the problem and are comfortable talking about their part in helping cause the problem and solve the problem, then this person is a good candidate.
  • If they tell me the details of a problem and their part of it AND how they went to the team for help then I really start to get excited.  Not only do they feel safe making mistakes and fixing them, they also feel safe going to others for help.

 

Well, that’s it for exploring safety in an interview (at least for now).

 
Leave a comment

Posted by on February 15, 2016 in Uncategorized

 

Asstimations!

Don’t you just love it when managers pull estimates out of the air and expect software development teams to meet those estimates?

Then they get upset that the team is moving too slow.  Too slow to meet the estimates that they pulled out of their ass – ASSTIMATES.

Asstimates are hazardous.  Asstimates, cause us vs. them.  Asstimates create fear.  

Please.  Please.  PLEASE!!!!  Stop creating ASSTIMATES and expecting your teams to meet them.

(These remarks are completely fictional.  Any resemblance to any of my friends/colleagues/clients is completely coincidental.) 

 
1 Comment

Posted by on August 13, 2014 in Uncategorized

 

The Coolest Thing EVER! (for Lean geeks)

Lean thinking and theory of constraints have gone hand-in-hand in the agile world for as long as we’ve been stealing/borrowing ideas from the manufacturing world.  If you aren’t very familiar with how these things fit together with agile practices a good starting point is this InfoQ article (it is a little dated but still valid).

So Lean tells us we should reduce waste in our system and focus on throughput and cycle time, but doesn’t really do a good job telling us which waste to focus on first.  And that is a big-ass problem – because if we focus on a part of the system upstream of the bottleneck we can adversely affect the performance of the system by increasing WIP consequently increasing cycle-time and decreasing throughput.  Ouch!

Theory of Constraints comes to the rescue by telling you which waste to focus on first – the bottleneck!  The slowest part of your system is where you should start because, by definition, any improvement you make to the bottleneck directly impacts your cycle time and throughput.

So for years that’s where I left it when describing it to my clients and students.  The question of “How do you find the bottleneck?” never had a straight-forward answer.  That’s where you bring in the consultants or spend significant time and effort understanding and measuring your system so that you can find that all-important bottleneck.  An activity that has always seemed nebulous.

Okay – here comes the coolest part ever!  There is an insanely simple way to find the bottleneck.  Every. Single. Time.  (If I stop here it would make a great cliff-hanger wouldn’t it?)

  1. Draw/create your value stream map.  Pay special attention to identifying the queues in your system.
  2. Then, starting from the right-hand-side, traverse the VSM and find the first queue/inventory.
  3. The process to the right of that first queue from the end is your bottleneck.

Ta Da!!!!  That’s it.  Insanely simple way to find the bottleneck.  I’m sure this must have been written up somewhere before, but I’ve managed to miss this little tidbit throughout the years (and so have many of those I’ve been checking this with over the past few months).

“It can’t be THAT simple!”, I hear you exclaiming.  But think about it, if this is the very first queue from the end of the VSM, then any improvement flows directly to the user with no blockages because there are now queues downstream.

Feel free to poke holes in my theory and disprove this statement and I’ll be grateful because I will learn something along with you.  But if you can’t, isn’t this really cool?

 
2 Comments

Posted by on May 17, 2014 in Lean, Organizations

 

Tags: , ,

I’m Back – Here’s What’s on My Mind

Blogging has always been a challenge for me.  Sitting down over coffee and having a conversation…. well that’s really natural and I do that effortlessly.  I’m not there yet with writing.  So, here we go again.

I write this blog sitting in the KLM lounge at Schiphol airport in Amsterdam on my way to Beijing (yeah, being a consultant definitely has its up-sides).  There are a few topics I’ve stored up in the months since I’ve written my last blog, and I’ll be writing about them soon:

  • Fixed price contracts and agile methods,
  • Creating a culture of safety,
  • The importance of integrity,
  • A 9-week bootcamp program for creating high performance teams,
  • Programming for old farts,
  • Whatever I learn at the XP conference in a couple of weeks,
  • The awesome-est way to locate the bottleneck in your system,
  • Playing world of warcraft with my 6-year old daughter,
  • The state of Agile in Egypt,
  • Lean start-ups,
  • The Culture Engine – the book and it’s progress,

Now I’ll leave you with something really cool I recently read that I hope you find as useful as I have.  But first a little background: I cringe whenever I hear the word “measurements”.  I have flashes of huge excel spreadsheets, entering the number of minutes I’ve been working on a particular task, and a stochastics final back in college.  So, it is with great hesitance that I picked up a book on measurements on a recommendation from my good friend Ruud.

So far it is an interesting read.  The author starts out giving some stories of some pretty remarkable measurements that were very light-weight but clever (for example Eratosthenes approximating the circumference of the earth from shadows and the distance between my hometown (Alexandria) and Aswan).  And here is the gold nugget:

If you take a sample of 5 people in your organization and ask them the same question, then the median of your entire population is within the interval represented by the largest and smallest numbers in your sample with 93% confidence.

Here is what it means practically for me:

If I have a question, such as, “how much time do we spend on defects every week”, I can ask 5 developers at random in my organization and they answer 5 hours, 10 hours, 30 hours, 4 hours, 8 hours then we know a huge amount.  We know the median lies between 4hrs and 30hrs with 93% confidence.  I don’t know about you – but that is amazing!  And that little rule will allow me to be able to have some really great discussions with my teams and clients.

– Amr

 
1 Comment

Posted by on May 10, 2014 in Uncategorized

 

Throughput, Value, and Inverting the Tasking Question

Two people on a plane.  One looks over to the other, points, and laughs!  “Ha! Ha!  Your wing is on fire!”

The plane goes down and they both die.  Bummer.  This has always been how I introduce the importance of team results instead of individual results as a management technique.  And, when this works well, teams excel instead of just trudging along.

An individual should not “Succeed” if their team fails.

Last week I was introduced to yet another perspective on this problem by Tim Ottinger.  Instead of asking how many tasks can a person do, we invert the question and ask “how many minds can work together to solve this problem?”  The idea behind this wasn’t obvious to me, so let me explain briefly.

How many minds does this task need?

In general we think of a task as either done or not done.  And, in the lean world, we think of throughput as volume delivered to the customer.  There is a more effective way of thinking of throughput – as value delivered to the customer.  And two items delivered to the customer may have more value.  In fact, especially in knowledge work, the value delivered by the same feature in two different applications may be completely different.

Throughput should not be defined as volume delivered to the customer.

Many tasks can be done much better – that is deliver much more value to the customer – by having many minds work to solve the problem.  That’s why pair programming works.  That’s also why self organizing teams, when they get it right, can create much more value than the same number of individuals working in a different fashion.

Tasks can deliver different value to the customer depending on how well we solved the task.

In summary, the value delivered by a task completed is not static.  That can be affected by the number of people who work on solving the task together.  So, before you do your next task, consider asking “how many minds does this task need?”

 
Leave a comment

Posted by on February 18, 2014 in Uncategorized

 

Our Most Effective and Least Adopted Practice

Test Driven Development is one of the most effective practices from the agile community of practices, and also one of the least practiced regularly.  Why is that?  Why, 15 years after it’s introduction to the world via Kent Beck’s eXtreme Programming Explained, is one of the least adopted practices in the community?

Test Driven Development is One of the Most Effective, Yet Least Adopted Practices in the Agile Community

After years of practicing it and teaching it to others I have a few ideas on the subject.

First of all, Test Driven Development takes time to master.  It is conceptually simple, however, practicing test driven development on existing code, not written for tests tends to be very difficult.  And for some reason, even though there are some really great, and simple, techniques out there for working with legacy code (most prominently Michael Feathers’ book by the same title), people tend to be unaware or unpracticed with the well-known and well-documented techniques.  This means there is a skill-gap in using test driven development for existing, untested, code bases.

Most Developers are Unaware or Unpracticed at TDD Techniques for Code Not Written With Testing In Mind (Legacy Code)

Then there is the problem of the current way TDD is taught in the community.  We, the coaching community usually teach TDD on toy applications built for a classroom situation.  And students leave the classroom having learned the basic skills of TDD on greenfield applications and unable to apply them in their daily lives with aging code and tight deadlines.  The techniques of working with existing code are usually considered advanced and not broached until teams become practiced with the basics of TDD.  Unfortunately most teams don’t become practiced in TDD because they cannot apply what they’ve learned in class to most of their regular work.  Finally, although there are a few workshops out there where coaches teach TDD on their clients’ live code, they are by far and large the minority.

Most Students Leave TDD Training With The Ability to Practice TDD on Greenfield Applications Yet Their Day-To-Day Work Is On Legacy Code

For those lucky few, that learn TDD in a class, have follow-up coaching afterwards as they begin to master TDD in the few cases where it is possible, and advance enough to learn how to work with legacy code effectively there is one last hurdle. You need to make TDD a daily habit.  And making TDD a daily habit is easier said than done.  Even well practiced developers, who have been doing this for years, spend roughly 40% of their time writing tests and 60% of their time writing production code.  For those new to TDD, if they want to create such a habit, they will need to spend the majority of their time writing tests, not production code, to make things stick.  Add to that the existing deadlines.  Add to that managers that might become worried as velocity drops.  And, add to that, our own critics in our head that start to get worried that we are spending much of our time writing tests. To make TDD a habit, given such a large step size, we need an immense amount of personal and team motivation to make it part of our day to day lives.

Making TDD a Habit Requires Sustained High Levels of Motivation

Finally, if you learn TDD, get coaching to apply it to your existing code, are excited enough to sustain the levels of motivation needed to make it a habit, you have one final hurdle.  You are dependent on the rest of the team.  TDD is a brittle practice.  That is, we all need to be practicing TDD on the team to succeed.  If I write a test, and someone else breaks that test and does not fix it, then the TDD habit isn’t going to last.  Also, if I am the only one writing tests on the codebase, and my colleagues aren’t, we won’t ever reap one of the great benefits of TDD – a safety-net of tests that enables us to refactor regularly and changes the cost of change curve for our project so that is affordable to make changes late in the game.

TDD Is Fragile – Success Relies On the Whole Team Practicing

With all this stacked against us: a big learning curve, ineffective training techniques, a need for sustained levels of high motivation, and fragility, it is no wonder most of us in the Agile community do not practice TDD. We need a new approach to learning and practicing this most valuable of skills.

We Need a New Approach to Learning TDD

I’m not writing this blog as a lament; I’ve been working on parts of the puzzle for a few years and the last piece is now sliding in place:

Training: TDD is a difficult skill.  Teaching it effectively even more so.  We need to reconsider how we train TDD.  The current method has proven ineffective. We need to either go back to the old XP immersion classes which jam-packed a team into a shared workspace for 2-weeks of intense work, or we need to start teaching legacy code techniques at first encounter – preferably on live code – so students can transition to daily work after class.

Teach Legacy Code Techniques In Introductory TDD Classes

Building habits: the latest research on making practices into habits gives us new ways to be more effective in transforming the way we work.  One very effective technique is to take ridiculously small steps to reduce the levels of motivation needed and build the habit first.  Once the habit is there, then we can layer-on sophistication and complexity.  Specifically to TDD, we need to find the smallest possible step – an MVP of TDD training – that we use to build our habit first.

Design and Use an MVP of TDD Training

TDD fragility: Because TDD needs the whole team to work together effectively, we need to create a culture that encourages individuals on a team to write tests regularly.  The work I’ve been doing with Steve Peha on agreements-based culture is an effective way to make that a reality.

Leverage Agreement Based Culture Techniques To Get Full Team Participation

By putting those four techniques together we can, as a community, start benefitting from our most effective technical practice.

 
Leave a comment

Posted by on January 27, 2014 in Culture, TDD, Teams

 

Tags: ,

Safety – Easier Said Than Done

Safety.  Number two on Maslow’s Hierarchy of Needs – right after eating and breathing.

Safety.  The primary focus of Alcoa’s famous rise from the ashes.

Safety.  The gateway to excellence in software development.

(Lack of) Safety.  The first of the four invisible impediments to high performance teams.

Safety.  Something that is completely internal.  Some people feel safe in a burning building.  Others are afraid to walk across a busy street.  In the last year, our focus at Industrial Logic has been safety as a gateway to excellence.  And the more we explore, the more it resonates.  The more it is surprisingly true.

For me, I’ve had a really long weekend.  I made a mistake at work that upset one of my colleagues and may have negatively affected our standing with a client.  Bummer.  It happens.  But it was the weekend.  And I’m 10 timezones away so it has taken three days for us to get together and talk about the problem.

However, since Friday morning I’ve been stressed.  I haven’t been able to focus.  And I have used a huge amount of energy to continue doing work that needs to be done for an upcoming deadline.  If I weren’t feeling so unsafe, I’d have been able to focus and would have been done by now.

And the interesting thing is, I know rationally there is nothing to worry about and even if there was there is very little I can do at this moment.  But my rational mind doesn’t mean very much to my emotional fear.

So, the question is, how do you feel safe?  How do you readily get from feeling emotionally unsafe to relative safety?  For me, it has always been (relatively) straight-forward: I man-up and face my fear.  If I’ve upset someone I pick up the phone and have a conversation.  If I’ve broken something, I do my best to fix it.  And so on and so forth.

But what works for one person, doesn’t always work for another.  And what about when you find yourself in my position this weekend when something isn’t immediately fixable or that person isn’t available for a conversation?

That’s what I’ll be focusing on over the next two weeks.  I’ll be reading up.  Having conversations with people who know this much better than I do.  And learning to more effectively create safety for myself and share what I learn with others.

Because Safety really is important to our work together.  And without it things break down and we become so much less effective than we can be.

 
Leave a comment

Posted by on January 19, 2014 in Uncategorized

 

Tags: , , ,

The Four Invisible Impediments

There are 4 common blockers to achieving high performance:

  • Lack of Safety,
  • Lack of Respect,
  • Lack of Ownership,
  • Lack of Intention

Each of these key ideas can be stated simply:

SAFETY

The extent to which I feel I can be myself in my work; say what I need to say; do what I need to do; and be accepted for who I am.

RESPECT

The extent to which I regard others as human beings and not as “types” or “things” that are keeping me from getting what I want.

OWNERSHIP

The extent to which I acknowledge that I am responsible for my results and my experience; I do not find fault, nor lay blame; nor do I act solely out of obligation.

INTENTION

The extent to which I am clear—with myself and others—about the results I want to create and how I want to create them.

Notice that each of these ideas is 100% internal.  The extent to which I am clear.  The extent to which I regard others.  And so on.  One of our biggest mistakes is externalizing our safety, respect, ownership, and intention.  Once we internalize them and consciously choose them, we are in the a much more effective position as an individual, and as a member of a team.

You can read more at http://cultureengine.net.

 
4 Comments

Posted by on January 15, 2014 in Uncategorized