Sunday, September 16, 2012

Extreme emotion can be normal during a change to high-performance

When an individual reaches a point where they believe they will have to leave an old idea behind to accept what you are teaching them, they can become very openly emotional.

It is very important to realize that some people will have exceptionally aggressive or antagonistic responses as you stretch their mental model of what they understand.

In many companies, should someone becoming emotional, it is somehow forbidden and considered a bad thing.  This response invokes responses from managers of "we need to deal with this problem".

I find this intriguing.  For those of you that are trying to change mindsets away from a command and control environment to a self-organization model, I have some thoughts for you to consider before thinking that something has gone wrong.

All individuals have different knowledge and experiences to drive their ideas. Consider, that for many, they may have only experienced one company and one way, for much of their working lives.

When someone comes close to the edges of the box that makes up their knowledge, it can be common for them to realize they are coming close to a point where their “original” ideas are at question and they may have to leave them behind to move forward. At a minimum, some of those ideas will now be in question.

Previous ideas are a very big part of a person's reality, and has brought them through life to this point.  A new idea does not mean a person needs to abandon previous ones.  The new knowledge needs to be in addition to what they already know.

Remember; What the person knew before was not incorrect.

OpenAgile specifically addresses this by focusing on Learning through it's "Learning Circle" as part of the core framework.

Scrum allows learning through the effective experimentation of a team to try and accomplish and deliver a sprint goal and reflect on the results.

Other frameworks allow learning through constant experimentation and continual improvement.

An environment of trust is absolutely mandatory for this to happen safely. Trust in the team member and trust that the organization will act responsibly while the team member is in the vulnerable place are mandatory.  Without trust, many Agile frameworks will eventually fail.

Emotion can be high when coming out of  a "Mental Box"

If you are trying to help someone to learn something new, remember that extreme emotion is not always bad and is something you should expect.  Extreme emotional outbursts may mean you are making progress.

I think back to when I was a flight instructor.  As part of training, I would push people to the limits of their comfort levels and understanding. They were of course, willing participants, which is important to point out.

There were some parts of flight training that were frightening to many.  The learning was all fine until we would head out into the air.

When it came time to push them-selves to actually use this knowledge, often very abusive and aggressive comments would come from them. They were finally going to cross over the barrier to a point where they knew they would have to leave their old perceptions behind.    

As an instructor, I would allow them to vent, get angry, yell, or even in one case, punch me in flight.  

I learned that when a student reached that “final moment” when they would leave their inhibitions behind and move over the edge to do what they knew they would need to do, they would sometimes be very dangerous.  I learned how to defend myself in the event a student could not take this final step. 

I once had a student reach across the cockpit and put me in a headlock just as he changed his mind immediately AFTER we started to Spin*. Needless to say, this was frightening for the student (and for me!).  

When this happened, I could not panic.  I took control, recovered and allowed the student to talk it out for a bit.  He wanted to try again.  It took about 15 minutes of just flying around looking at scenery until he made the decision to try again.  He eventually did the spin. He is now a proud private pilot who owns his own plane.

After taking that step to realize the old ideas would not allow him to grow, he opened his mind to learn everything there is to know about the new. This is a truly rewarding experience for both the student and for the instructor.

When you are working with managers, team members, executives, project managers, CEOs, CIOs or whomever, remember that when they become very antagonistic and very angry, this may be a sign that they are realizing they are simply reaching the end of their “mental box”. An emotional reaction is a natural, human self-preservation instinct kicking in.

Don’t let it phase you, and most importantly, just be patient and let them work it out. Make sure their past knowledge is considered valid.  That knowledge can be built on.  It is not to be destroyed.

They will either cross or not-cross that barrier. This is not under your control.  It has to be truly up to the person reaching that point.  

For me at least, I find that if someone has finally reached the point where they are becoming aggressive and nasty about their ideas, this can be a good sign.  

Please note, in some cases, the person may just be reaching that point where they will "submit".  This is not a good place to be.  The signs and reactions are similar, so please be careful.  Make sure the individual is willing to participate in the knowledge transfer and growth.

Not everyone will cross over their barrier.  For many people, the past ideas are just too powerful or the person does not feel sufficient trust to allow them to take a chance.

Whether it be the idea of "command and control" vs "servant leadership", or the concept of "working for the team" vs. "working for myself", there are some pretty serious emotional barriers to cross when transitioning to an agile mindset.

I remember having a discussion a long time ago with a very successful businessman called George R. We were discussing what makes or breaks entrepreneurs. He told me "What holds people back is the fear of loss”. It has stuck with me for life. 

This can apply to fear of losing physical possessions of course. It is important to realize this can also apply to ideas.  

Whether you are trying to change and organization or simply help someone learn to work in a high-performance team, remember that many standard “self-preservation” responses are a good sign that you are making progress.  Don’t fear them.  Above all, remain patient.

I know the instinct when we see upset people is to assume we have done something wrong.  This is a normal response and might indicate you are simply doing everything correctly.

Good luck.

by Mike Caspar

References :

Spin - What is a Spin

OpenAgile -
Scrum -  /
Command and Control  : Wikipedia
Servant Leadership -
Self-Organization :  Wikipedia

Sunday, September 2, 2012

VS2010 DBML inadvertently helping teams learn to check in code more often

An important part of development in a team based setting is the ability to quickly and easily check in your code, have it built with something like Jenkins, Cruise Control, Team City or Bamboo, get quick results about the compile, integration tests, unit tests, and so on.  The results need to come quickly to be of any use.

I have seen .NET developers who are new to the ideas have trouble with the concept of writing small bits of code, making sure tests pass and then pushing them to the source repository in small batches (commits).  I should mention, this habit is not restricted to .NET developers only. This is just the topic of the post.

The habit seems to be to work all day then try to do a push at the end of the day.  This can cause some significant merge problems and inevitably, defects during the next compile/build/test cycle.

A team member will pull the days' changes into their workstation and find that nothing compiles.  This problem eventually turns into a habit of doing the end of day commit an hour before the end of work to deal with the likely problems with the merge.

Sometimes, this results in many hours of work being held off "for now" because it is simply too difficult to merge.  The team develops an attitude of "we'll figure it out tomorrow".

In Visual Studio there is an interesting "feature" for managing database interaction called DBML.  DBML is sort of control file or schema mapper to allow .NET developers to easily connect to data using one "connection container" or "data context".  I am sure there are some technical deficiencies with this comment. That's not the point of this post.

A team using the DBML concept will find that the longer they wait to push their code, the worse their problems will be.  The DBML is built in small little cryptic pieces (to the human eye) and becomes almost impossible to merge if two team members have changed it locally.

This means that when you attempt  a merge with Git, Mercurial, SVN, etc., you will find that you will have no choice but to basically keep one person's changes and tell the other person to start from scratch.

If you are in an environment where large amounts of data access are happening and your team is using DBML, you will be constantly changing this file and having merging problems.

Because of this quirk in VS2010, I have seen a team implement a rule "Whoever checks in their code first wins during a merge conflict". The result of this rule is that developers end up checking in often and in smaller batches to ensure their work remains the "keeper" during a DBML merge.

What I find intriguing is that this quirk is inadvertently changing the habits of .NET developers who used distributed repositories to check in their code on a more regular basis.

Mike Caspar

References :

Jenkins -
Cruise Control -
Team City -
Bamboo -
DBML Format -