Monday, April 24, 2017

Building systems which work one step at a time.

As a scrum master, I spend much of my time fitting square pegs into round holes.  This includes getting people who won’t speak with each other into the same room to work out issues.  It requires technical people half a world away working together. It is challenging and deeply frustrating.  Confronted with these challenges, why does a scrum master keep going.

One of the greatest articles written about software development is entitled “The Big Ball of Mud.”  It describes how most software come into being during the 1970’s and 19080’s.  It then goes on to illustrate how short term thinking, entropy, and poor software development created the legacy systems which many developers and consultants struggle with today.  These systems are rickety.  Often they are ignored until they are so brittle that they cannot scale or no longer serve the customer needs.  This is the world I live.

It is a world of stand-up meetings with off-shore teams.  Meetings with upper management explaining that Visual Studio 2003 is no way to develop contemporary software.  It is budget meetings where you have to describe continuous integration to an accountant who cannot monetize more responsive systems.  It is the world where I fill out performance appraisal goal sheets in spite of growing evidence that contemporary performance evaluation processes do not work.

As a scrum master, we do it because we want to build systems which work.  We do it because software developers should be making software instead of dealing with corporate politics and bureaucracy.  We do it because public companies need to make the transition to the current century and global economy.  The software is just the first step when we talk about business transformation.  It is why I keep going.

Until next time.


Monday, April 17, 2017

The Rabbits of Agile

An agile coach can learn from a bunch of rabbits.
It is the Christian season of Easter in the United States.  I take this time and spend it with my aging parents and enjoy the simple miracles of daily life.  One example of the elegance of the everyday life are the rabbits which live in my yard.  The warren living under my retaining wall has survived brutal winters, scorching summers, and the attentions of my neighbor who does not like them eating her rose bushes.  They wander around the yard, snack on of blades of grass and enjoy some table scraps from my kitchen.  In a confusing world, I can count on the rabbits giving me a brief respite from the global economy.

The rabbits are more than a form of escapism.  They are a reminder of the natural world.  Each day the world is trying to destroy that warren of rabbits.  Each day they find a way to gather food, avoid predators, and make more rabbits.  These creatures are fluffy and adorable survivors; reflecting on this reality, it dawned on me as an agile coach I can learn plenty of lessons from these specimens living in my back yard.

Charles Darwin said the species most likely to survive are the ones most responsive to change.  I have lived in my home for over thirteen years.  In that time neighbors have come and gone.  Fences have gone up, and many pets have made efforts to hunt down the rabbits.  With each change, the rabbits have adapted.  They forage around the fences and make themselves hidden when people walk their dogs.  A parent accompanies young rabbits, and thy do not bother snacking on grass when I put fertilizer down.  My neighbor has gotten into the act and has decided to stop planting rose bushes.  Change and responding to change are an essential ingredient to survival.

My rabbits reminded me of engineer and lean management pioneer, W.E. Demming who said, “Survival is a choice.”  Each day the rabbits in the yard choose to do what is necessary to survive.  The minds of rabbits are not as developed as humans, but every brain cell in the rabbit skull is preoccupied with survival.  People for all our mental ability can be distracted.  Distractions pull us away from the necessary things we need to survive another day.  Our obsession with status in the office distracts us from our jobs.  Obsessing over the stock price distracts us from providing customer service.  Being the alpha dog on the development team neglects necessary software quality.  Humans are distractible creatures, and those distractions pull us away from what is needed.

So each day as a scrum master, coach or business person is a choice.  You can choose to survive, or you can pay attention to the distractions surrounding you.  From a distance the choice seems simple, people want survival and necessity.  At the moment we concentrate of distractions, and they undermine our survival.  Choose survival and change over distraction.  If a rabbit can do it, so can a human.

Until next time.


Monday, April 10, 2017

Copping Mechanisms for this Scrum Master

Being a scrum master is hard.
Being a scrum master is living a life of servant leadership.  It requires others to follow your direction without having any authority over them.  It requires the patience of Job and the wisdom of Saul.  It is long hours and emotionally taxing.  This week on the blog I want to discuss some of the emotional coping mechanisms I use.

Dealing with Sleep –

Agile teams work anywhere in the world, and if you are a large corporation, any software solution requires an off-shore team.  Development teams are located in India, Northern Ireland, and Russia.  All of these places are numerous time zones away which means to communicate with them you need to be up early in the morning or stay up late.

I have decided to take the early morning route.  My day begins at six and ends at three in the afternoon.  I am usually in bed by 8:30 PM and the process starts over the next day.  This time shifting allows me to deal with the off-shore teams.  It also grants me two hours of “me” time to do administrative work and writing before others get into the office.

Working with Others – 

Servant leadership requires mental toughness because you work with messy people; individuals who don’t follow instructions or won’t take coaching.  Each day, I am forced to work with these messy people.  It is the most difficult part of my job because I am accountable for these individuals.

Lately, I have punted in this responsibility leaning on my human resources professionals and upper management to deal with these situations.  I go about my day attempting to serve as an example to others and trying to be kind.  Sometimes, it is all you can do.

Unwinding –

The hardest part about working in technology is that your mind is always attempting to solve problems.  You may be out of the office, but your mind is still wrapping around that gnarly data issue holding up the project.  You are attending a family function, but mentally you are back at the office.

It is why weekends are so important to me.  I do not respond to mail from the office or offshore. I try to enjoy lighter activities.  Finally, I avoid my computer for a full day.  This little bit of unplugging goes a long way.

So these are some of the strategies I have to deal with the emotional stress of being a scrum master.  I would like to learn some of your techniques.

Until next time.

Monday, April 3, 2017

All about forgiveness

Talking about forgiveness.
It is evident to me that 2017 is the year of messiness.  Software is a messy activity.  The clutter is caused by the human emotions of foibles which are part of the creative process.  As a scrum master, you are the servant leader of messy people who write software.  You are supposed to live the agile manifesto and principles.  You set the example.  As a scrum master, you set the tone and help the team succeed.  It is rewarding work, but I have my moments where I am not very proud of the example I am setting.  Continuous improvement means striving to get better.  It also means you need to be able to forgive others and yourself.

My professional career has was shaped by my training in journalism and engineering.  The world of mass communications is very judgmental.  We criticize television anchors for hair color choices and how good their dentition looks on camera.  Radio disc jockeys are slaves to ratings and program managers who can crush your career.  Ratings mean money and if you provide ratings, people will ignore some of your worse personal faults.

Engineers are also a judgmental bunch and are willing to back up that judgment with the scientific method.  The code could run a few nanoseconds faster.  The class could better use the Liskov Substitution principle.  Finally, you could always tighten up the code to make it less error prone.  There is additional machismo where team members compete to assert dominance using their intelligence or programming skill.  It is brutal, and these environments discourage vulnerability and innovation.

As a scrum master, you are encouraged to help remove these dysfunctional behaviors.  Sometimes a scrum master gets caught up in these bad practices.  When you do, you are going to hurt the team.  When you hurt the team, you are undermining your credibility in the organization, and with the people, you are supposed to serve.  The first thing you should do when you hurt your team or someone on it is making amends and apologize.  Asking for forgiveness is hard, but it reinforces the agile values of respect and openness.  A team which can forgive each other when they make mistakes is going to be higher performing than one which is not.

Forgiving yourself is a much harder skill.  We know ourselves better than anyone else.  We are also the least forgiving of our mistakes.  We can feel like frauds to ourselves, and this is imposter syndrome.  Our emotional intelligence may be below average, and we find ourselves in situations which would puzzle others.  Finally, emotional control can be undermined by people who just do not want to improve.  You become a tangled bundle of rubber bands, and you feel like you can snap at any minute.  You do snap you feel riddled with guilt and self-loathing.  Over my career, I have spent a few mornings thoroughly hating the person I see in the mirror.  These feelings are not rational or objective.  These feelings just are, and you cannot escape them.

I have been leaning on friends and family for the last few weeks to receive relief.  I am seeing a doctor in order understand if the stress of the role is contributing to my emotional recriminations.  Finally, I have been avoiding alcohol and caffeine.  My brain chemistry is bad enough, and I don’t need to make it worse with outside stimulants and depressants.  I am making a conscious effort to try and forgive myself for past mistakes.

From the outside, this process is not going to look beautiful, but I need to do it if I am going to improve as a scrum master.  Everyone deserves a dose of forgiveness now and then.

Until next time.

Sunday, March 26, 2017

Taking a sick week

The hardest part of being a leader is the emotional self-control.  How do you maintain your emotional even keel when you have people lying?  How are you supposed to trust people when they let you down on a regular basis?  How do you inspire others when they are more interested in the office pool and watching the clock at the end of the day?  Usually, in this blog, I try to provide answers which I have discovered over the years.  This week I am out of answers.

I am pretty worn out at the office and I have been struggling with sleeplessness.  I also am feeling whipsawed by professional and personal setbacks.  I am not much good to myself or anyone else right now.  I am kind of messy and in a corporate environment that is a forbidden state.

I will be back next week with more wit and wisdom but for the moment I am going to take a rest.

Thank-you.

Until Next time.


Monday, March 20, 2017

Rage is when I am most vulnerable

Don Quixote got nothing on me.
Being a scrum master is a hard job.  It includes plenty of early meetings and late nights.  It is a life filled with stress.  Sometimes, there is a payoff when the customer is happy, and the software is in production.  Software development is a messy job.  Inevitably that dirt rubs off on people especially the scrum master.  Cleaning off this grunge has an emotional toll and this week I would like to talk about it.

As a scrum master and agile coach, I am a big believer in the idea of servant leadership.  The Marine Corps saying, “Ductus Exemplo,” is starting to become slang among business executives.  It is a fantastic concept, and I strongly support it.  The hardest part of being a servant leader is the everyday realities of being in charge of complicated software projects and managing people who are equally messy.  The mask of command and professionalism falls away, and you become vulnerable which for a leader is dangerous.

This danger of vulnerability means your raw nerves are exposed, and your emotions are controlling you rather than you controlling your emotions.  Losing emotional control means you will say things you should not and do things impulsively without thinking them through.  It is a dangerous place to be and one which can undermine your leadership credibility.

I have to confess that the above situation happens to me more than it should.  I become a fountain of rage at times.  In particular, when confronted with an individual who refuses to be accountable for their conduct I become a character from a Robert Louis Stevenson novel.  I get angrier when I spend time coaching someone, and they ignore my direction.  It makes a person feel like Don Quixote jousting with windmills.  The reward for your trouble is getting knocked off your horse and the laughter of by-standards.  Getting up and dusting yourself off to do it again looks stupid and futile when you have to do it with weekly regularity.

So here I am at my most vulnerable, filled with rage, feeling like a failure and believing the effort is futile.  These feelings can be fleeting, or they linger.  It is the worst when you are alone in bed trying to sleep, and the vulnerability is thicker than the darkness in the bedroom.

Like any leaders, I have to deal with these emotions and the emotions of my team.  It is not easy.  The rewards are fleeting. I promised myself that when I became a business leader, I would try to be firm, fair, and inspire others.  I fall short from time to time, but I still aspire to that ideal.  I have no choice; it is a promise I kept to myself and to the people I serve.  People depend on me.

Until Next time.

Monday, March 13, 2017

"Never Events" in Software Development

Without "Never Events"
a doctor is nothing more than a glorified butcher
There is a phrase in the medical profession known as a “never event.”  It is something that should never happen in a hospital or another medical setting.  People have been practicing medicine since Neolithic times.  We have only been writing software for about seventy years.  I think we can learn a few things from the field of medicine and I would like to discuss it on this week’s blog.

The term “never event” came from a medical paper from the National Quality Forum.  These are mistakes which should never happen in any medical setting.  Some examples of these never events are, people receiving the wrong type of blood during a transfusion, surgeons amputating the wrong limb, and discharging an infant to the wrong set of parents.  If something like this happens, the doctor is subject to profound liability, and a patient could die.  It is why they are called “never events.”

I thought about this, and I felt that those of us in the software business should have a series of “never events” for our profession.  If we are going to improve in the agile community, we need to have a set of standards and those standards should include things which should never happen.

Here is my list of never events for software development –
  • Code which exists in production should never reside on individual’s computer; it should all reside in source control.
  • The database administrator should never ignore system backups of data; data should be backed up regularly and before scripts are applied to the system.
  • All code which performs business logic should have unit tests; this way you will understand where the system has changed and what the possible changes are.
  • Network servers should receive regular patches and security upgrades; this will discourage hackers and avoid technical debt.
  • A developer should never work longer than 10 hours; fatigue causes mistakes.
  • Before checking in the code, it should be code reviewed by another developer; an extra set of eyes on the code prevents errors and helps to learn.
Those are my starting points for “never events” in software.  Look forward to what each of you thinks should be included on this list.

Until next time.