Monday, May 22, 2017

Avoid cynicism by networking

Never be a dark scrum master
After a few years working as a scrum master, a person can develop some gallows humor.  Every excuse elicits a chuckle of dark laughter.  Each setback and technical glitch generate a wry smile of world-weary acknowledgment.  This cynical detachment is a survival mechanism; otherwise, you spiral into a cycle of depression.  The trouble with this strategy is that cynicism is not a good way to lead others.  This week I want to talk about avoiding the trap of cynicism.

One of the great things about the Agile community is there are trade associations to support the people doing the hard work.  There are the Scrum Alliance and the Scaled Agile community who provide support.  These organizations also have trade shows and conferences which act as a means to provide continuing educations.  The biggest benefit to these agencies is that we are put in touch with like-minded people, and we support each other.

Former Secretary of State Collin Powel says, “Leadership is lonely.”  As an agile coach and scrum master, most of your time is spent in the lonely activity of leadership.  You are a member of the team but you also apart from it.  You are training product owners and helping developers improve.  You are also answering to management educating them on how Agile works and how the teams are delivering software.  This loneliness creates social isolation at work.

This is why I enjoy getting together with other agile professionals at user groups and conferences.  We can swap stories, exchange solutions to common problems and be a source of moral support.  It is nice to speak the same lingo to others and to understand your struggles making organizations better are their struggles.  For a few hours each month, I feel a little less lonely.

This is why I encourage others to attend networking events, training, and conferences.  The knowledge gained is valuable but the moral support from your peer’s help you fight off cynicism.

Until next time.

Monday, May 8, 2017

Software is NOT magic

I have spent much of my professional life building and leading others who build software.  It is a rewarding process but filled with countless hours of toil and uncertainty.  I liken it to solving a crossword puzzle on a deadline every day.  This week I want to talk about software and why the perception it is free is wrong.

The world of software development is a topsy-turvy world.  The first copy of the product is prohibitively expensive filled with thousands of dollars of engineering.  The second and subsequent copies are free thanks to digital copying.  To the end consumer, this makes software look like a free and magical tool.  Nothing could be further from the truth.

Each piece of software uses a database.  That database has a structure of tables which resembles a skeleton for the application whether it is a website, mobile application or shrink-wrapped piece of software.  Those databases do their work with a language called SQL.  Depending on the manufacturer of the database the SQL will be slightly different, so software developers have learned to specialize in the various dialects of SQL.  Specialization has forced companies to invest in one brand of database over another.  It is why one group is called an “Oracle” shop over a “Microsoft” shop.

Next software is dependent on what kind of device it will run on.  An application which will run on a mobile device will need to be constructed in one fashion while one which will work on the web will have to be designed differently to work it a different environment.  It requires specialization.  So someone with HTML and Jquery experience may not be very helpful on a mobile application project.
This kind of specialization is necessary for business. Specialization is also expensive, so business people want to save money by off-shoring the work to Northern Ireland or India.  It does save money but makes the process more complicated as we are coordinating with people eight to twelve time zones away.

Software needs to go through a quality control process and then released to the general public which requires more time and effort.  When finished, you see a shiny new app or piece of software.  It looks like it was free and effortless but it requires thousands of dollars and countless hours of effort.  Just remember that the next time you accuse your development staff of being lazy.

Until next time.

Tuesday, May 2, 2017

A March in the Mud

One of the dirty little secrets of software is for every splashy app or disruptive business there are countless hours of toil.  The mental exertion takes years off your life. Software also alienates because, to be successful, you need to be thinking about software and how to keep your skills current.  The compensation is generous but the mental and time demands of the profession are oppressive.  It made me think about what makes a scrum master successful.  This week I want to talk about the gritty nature of the business.

When I was growing up, I have a great Uncle Paul who fought in Europe with Patton’s Third Army.  He refused to discuss his experiences, and when asked about being in combat he remarked bitterly,” I was cold, and it rained a lot.”  Over the years, many of the combat veterans I have known have behaved in a similar fashion.  Whether they served in Korea, Vietnam, Desert Storm or Afghanistan; the prevailing attitude was I would be unable to understand their experiences because I was not physically there.  Instead, I relied on the narrative from books, documentaries and those veterans would share their experiences.

What struck me during my investigation was the tedium of military service.  Moments of terror punctuated countless hours of boredom and following procedures.  Each day is a grind with little room for heroism or glory.  While I have never made the kind of sacrifices required of combat veterans, the grinding nature of a military campaign is familiar to anyone who has worked on an I.T. project.  In fact, every developer has a story about being on a project which resembled a “death march.”  One of my favorite illustrations by Bill Mauldin, who created the famous Willie and Joe cartoons from World War Two, is tired and muddy American Troops guarding German POWs and they are marching through the rain.  The caption offers brilliant commentary, “Fresh, spirited American troops, flushed with victory are bringing in thousands of hungry, ragged, battle-weary prisoners.”  The irony being everyone during the war is tired, hungry and battle-weary.

Anyone who works on a software project gets tired and weary.  There are too many late nights, too many slices of pizza, and too many problems to fix.  In many ways, we are like those soldiers trudging through the rain.  It is why developers prefer agile methods over the more traditional waterfall approach.  Instead of long aimless slogs in the rain and mud, at the end of each sprint, we track our progress and take stock.  Big bang releases would become a thing of the past and development would be made more sustainable.

The reality has been more complicated.  As we have learned to release software in shorter intervals, business leaders have demanded that we cram more feature into each release.  So instead of work being a “death march” it resembles being pushed out of airplanes each sprint shouting “Geronimo” and hoping we survive the experience; this is not sustainable development.

Metaphorically, scrum masters and developers are seeking a happy medium between long marches in the rain and jumping out of an airplane.  Each day should feature a win or forward progress.  Developers should not put in heroic efforts or engage in crunch time.  It is a lofty goal, and if we are doing our jobs correctly, one the agile community can accomplish.

It takes communication with business leaders and regular deployments of software into production. We need to pay better attention to the DevOps movement to see how to implement continuous integration and pipelines for projects.  Finally, it means saying “No” when people demand ten pounds of sand fit into a five-pound bag.  To do otherwise means we are no different than those soldiers slogging through the mud.

Until next time.

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.