Monday, September 11, 2017

Planning is Everything

This scrum master
wants to be more like Ike.
It takes plenty of emotional energy to be a scrum master or agile coach.  Developers need guidance, product owners need constant coaching, and upper management is always asking for status updates.  It is psychologically exhausting.  Along with day-to-day chores, you are planning and setting strategy.  This week I want to discuss how planning and responding to change are not mutually exclusive.

According to the Agile Manifesto, responding to change is more important than following a plan.  Situations in technology are changing at a rapid clip and an idea that seemed plausible an hour ago can be hopelessly out of date.  Agility depends so much on responding to change.  The unintended consequence of this is business leaders abandoning planning altogether because “We are doing agile we don’t need plans.” Let me try to add a little sanity to this discussion.

The manifesto states, “…while there is value in the items on the right, we value items on the left more.”  Planning has some value and should not be abandoned because we are responding to change.  It seems like a contradiction.

Planning is an integral part of agile.  A scrum team does sprint planning before the start of a sprint to decide what they are going to do.  The product owner does release planning to prioritize stories in the backlog.  A plan makes it possible for an agile team to understand the nature of the problems they are trying to solve.  It also allows them to learn how to respond to change when the inevitable happens.  It explains why Dwight David Eisenhower said, “Plans are worthless, but planning is everything.”  When a team plans they are going over possible scenarios which might happen during a sprint.  The team is also doing much of the analysis necessary to start writing unit tests and code.

To use a metaphor from music, Jazz and Blues musicians still rehearse even though much of their music is improvisational.  The players outline key progressions and cords they are going to play.  It is the plan they use for their performance.  Once the concert begins, situations may dictate a deviance from the scheme.  Thanks to the outlines figured out during the rehearsal, these musicians can respond to change.  The same thing happens to a development team during a sprint.

So responding to change is important but you cannot respond to change unless you have spent some time planning to understand what changes might happen.

Until next time.

Tuesday, September 5, 2017

When a team fails.

Failure Stinks!
I continue to assert that software development is one of the most misunderstood professions in the business world.  Numerous executives think what we do is magic or do not understand the creative nature of the activity.  It is not like working on an assembly line or collecting accounts payable.  There is plenty of uncertainty and opportunities for failure.  As a scrum master and coach, you have to deal with the failure of your agile team along with the personal failures that inevitably crop up in your career.

The saying in the agile community is that you should “fail early and fail often,” because failure is a brutal and efficient means of learning.  The notion of failure conflicts with the “cult of success” preached by motivational speakers.  It also contradicts notions of winning promoted in sports journalism.  I believe the failures in my life and career have made me a better person.  I also feel these failures were necessary milestones on the road to the success I have had in my life.  Failure is painful, but it does put into perspective the ups and downs each of us have in this life.  

Part of the educational process is owning up to and taking responsibility for those failures.  When your team fails to deliver software on time, you have failed.  It is incumbent on you understand what you did wrong and how to avoid the same mistake in the future.  There are situations where you do not have much control, and you still are confronted with failure.  It is unfair and unjust, but accepting that position and learning how to deal with it next time may lead to success in the future.

The acceptance of failure also does something else; it wins the respect of others who have been through the same experience you have.  You have endured the same hardship as others and have accepted responsibility for your shortfalls.  If you blame others or do not assume liability for failure, it will undermine your credibility as a leader and destroy teamwork.  I witnessed this first hand and could see collective eyes rolling as this individual began to speak.

So as a scrum master and agile coach, accept failure and take responsibility for it.

Until next time.

Monday, August 28, 2017

Admitting personal failure

I failed.  I will get over myself.
There is a saying in the medical profession, “When God puts his hand on the left shoulder of a patient, take yours off the right.”  The meaning being that patients die and even the best doctor will have to accept that they cannot heal everyone.  This week I am leaving the University of St. Francis business incubator, and I am shuttering much of my start-up.  I want to discuss this on the blog this week.

Seven years ago, in the aftermath of my failed second marriage, I founded E3 systems. The goal was to create an online inventory management system which other small and medium sized businesses could use to manage their organizations better.  I wrote software non-stop for weeks.  I would sequester myself to focus on setting up business structures which would scale.  I had numerous arguments with my product owner who also happened to be my father.

I would run into various business situations like people expecting me to give them my product for free.  One potential client loved my work until they realized they would have to pay me.  I even did a classic Silicon Valley “pivot” writing software which handled fleet and equipment maintenance.  I flooded social media with youtube videos, tweets, and Facebook posts and information on my product.  I did everything with scalable technologies and paid for everything out of my pocket.  Sadly, I could not do business development and close sales.  As my advisor told me, I was a dilettante.  The business world rejected me with harsh Darwinian indifference.

I toughed it out for seven years.  I kept my day job and hoped someday I would pack up my cubical and go full John Galt.  The last two years have been a denial of reality.  I did not have a market for my products, or a means to sell those products.  I failed.

I am disappointed, but I have learned some valuable lessons.  I understand that I am pretty good at operations and project management.  My software development skills have dramatically improved including my use of SOLID and test-driven development.  I have been jumping on the chest of a dead business.  Everyone knew this but me.  Now that I have a moment of clarity, I see that now is the time step aside and accept its demise.

I will still be open for consulting and will be happy to continue Agile coaching but my days of selling software as a service are over.  I have a relationship with the Will County Project Acclaim which I will continue to support.  I am shuttering my cloud based software on September 1st.  I will keep this blog open because I still have plenty to share about agile and software development.

In the agile movement, we say, fail early and fail often. Failure is the ultimate learning experience.  As a failed entrepreneur of a startup, I consider this something which makes me a better leader, agilest, and software developer.  Once the disappointment wears off, I will be ready for my next act.  I suspect it will be a command performance.

Until next time.

Monday, August 14, 2017

I would have fired him too!

Freedom of expression is not a license to be an asshole.
Plenty of pixels have been expended on the diversity memo from a Google engineer who argues that efforts to improve diversity were a waste of time.  I have been following the arguments and spoken with friends about the dust up.  It dawned on me that this is not a question about diversity versus political correctness.  The entire affair is really about teamwork and being a jerk to you colleagues.  The author of the memo is not free thinking but using pseudoscience to justify biased views.  As an agilest and leader, there is no room for these individuals in your organization.

Over the years, I have been critical of the “brogrammer” culture.  I have also been critical of engineers who think gender is a disqualifying factor to work in technology.  Last week, I further bemoaned the lack of women in the development profession.  I placed much of the blame on a feedback loop of men pursuing computer science careers and providing a leg up to other men in the industry.  It is also apparent to me that working in technology gives certain individuals the license to be an asshole to others.

One of my favorite business books is “The No Asshole Rule,” by Robert I. Sutton, Ph.D.  Sutton does a fantastic job providing a scholarly definition of what an asshole is and reasons why you do not want them in your business.  I think it should be required reading for any business person along with the “The Five Dysfunctions of a Team,” by Partick Lencioni.  

According to Sutton, an Asshole has two traits:
  • Test One: After talking to the alleged asshole, does the “target” feel oppressed, humiliated, de-energized, or belittled by the person?  In particular, does the target feel worse about him- or herself?
  • Test Two: Does the alleged asshole aim his or her venom at people who are less powerful rather those individuals who are more powerful.

Based on the above criteria, it is evident to me that the author of the Google memo is an asshole.  The author considers himself and those like him intellectually and morally superior.  Since they are superior, they should not have to debase themselves by having to educate, mentor, or collaborate with those people.  This"other" could be women, ethnic minorities, and people living different lives.

A modern office is not an environment for this kind of thinking.  Women make up a large percentage of the work force and are filling senior leadership positions.  There are also countless people of color working as professionals.  Finally, individuals who are gay, lesbian, bisexual or transgender are collaborating with those who are not.  Anyone who considers themselves superior to others not like them is going to create tension and undermine collaboration in the office.  Eventually, behavior like this is going to trickle down to the bottom line.  From an agile perspective, individuals who feel this sense of superiority are going to be resistant to continuous improvement.  It is not a surprise the author of the diversity memo wrote this after attending a workshop on the bias.

As a manager and agilest I would have fired the author of the Google memo.  He was a distraction to the firm and advocating for a direction that the company had openly rejected.  Finally, his attitude to co-workers different than him would undermine any project he was assigned.  Better to remove a polyp than deal with cancer which could kill your organization.

Until next time.

I am taking next week off to attend the Gen-Con game fair. 

Monday, August 7, 2017

Software Development needs Women

We need more women in Technology.
I take a great deal of pride in what I do.  Being a scrum master is difficult but it has plenty of intrinsic rewards.   As I have muddled through my career, I have noticed the technology business is diverse.  I have worked with Indian, Pakistani, Russian, and Latino developers.  I have worked with every possible religious group from atheists and pagans to evangelical fundamentalist Christians.  The only criteria in the technology business I have encountered is could a person write good code.  Race, creed or color never disqualified a person from being a software engineer.  Unfortunately, gender is not diverse in the technology business.  We need to do a better job having women represented in the ranks of coders and agile practitioners.   This week, I want to formally provide my support for efforts to get more young girls to join the profession I love.

In the early days of software development, women and men were equally involved in the trade.  These pioneering software developers were business people first who learned how to write software without a formal collegiate curriculum.  One of the best depictions of this period is the film “Hidden Figures” which shows women of color working for NASA.  The 1950’s and 1960’s were not a golden age of diversity in American Business, but in the early days of software development, there was less gender disparity.

I believe that this changed as colleges began accepting undergraduates for computer science course.  Men began to dominate in this academic major, and it created a feedback loop of men helping other men get into the profession.  As women retired from the occupation, men replaced them.  These individuals knew how to code but did not understand the businesses they were working. As the business of software development became more lucrative and prestigious, companies pushed more women out the activity.  With fewer women in the occupation, the “brogrammer” culture began to grow, and software development teams became hostile work environments.  With the rise of Silicon Valley software shops, this trend became more pronounced, and it has been severely parodied in popular culture thanks to the HBO series. 

I am glad to report that over the years, I have run into plenty of exceptional women who walk a lonely road and work in this profession.  It is also good to see the rise of organizations like Girl Scouts and Code Like a girl encourage young people to get into the profession.  There is plenty of toxic masculinity in this business, and only with the addition of more women, a means to discourage it.  Finally, it is important that men support women in this craft.

Software development is a diverse profession, but it could do better with gender equity.  It is up to all of us in the business to recognize that girls can code and they are welcome in the profession.

Until next time.

Monday, July 31, 2017

Learning to Manage time

Time should never be wasted
A software developer is a unique brand of employee.  The profession requires mental toughness and creativity.  The ability to create software also requires strong time management skills.  As a scrum master, you need to help your colleagues learn to manage time better.

If you work in technology, you confront a stark reality.  To keep the global economy moving there is a too much work chasing too few people.  Less than .05% of the world's population can build software and maintain the networks which run it.  Software engineers are under constant pressure to grind out code.  For those who do not understand, it feels like cramming for an exam every day of your working life.  This kind of pressure takes a mental and physical toll on the people doing the work.  Developer’s abuse alcohol, binge eat, take numerous prescription medications and engage in unhealthy behaviors to mitigate the stress.  It is an abusive cycle which leads to burnout and bad quality.

As a scrum master, we need to help others learn to manage time better.  First, create a routine for the development team and business owners.  The daily stand up should never state late, and everyone should attend.  Next developers need “quite time” to concentrate and do work.  People who are looking for favors, football pools, and making lunch plans are forbidden if they interrupt the developers.  Finally, headphones and other techniques to create a state of flow should be encouraged.
Business people divide their day in hour long chunks.  Software engineers think in thirds.  There are morning, afternoon and evening and each period is an opportunity to work and write software.  Another reason I have no meetings scheduled in the afternoon for the development team; I want the afternoons to be interruption free for the developers.

I also use it as a time management tool for product owners.  After lunch, I have a one-hour sprint refinement meeting.  We discuss stories for an hour and then adjourn for the day.  The time after sprint refinement is a perfect opportunity to write user stories.  Developers get into the routine of meetings in the morning and open afternoons of coding.  Product owners understand that the time after the sprint refinement meeting is for writing stories.

So a helpful way to help others better manage their time is to give them clear routines so they can set aside time to do the work.  It is not perfect, but it beats flailing around the office in a panic.

Until next time.

Monday, July 24, 2017

Life Lessons influence Your Agile Coaching

Twenty Seven years later this cover of Time
 magazine still bugs me.  They got it wrong.
Little things remind me of my mortality.  This week I received an invitation to my high school homecoming and a fiftieth birthday party for the class of 1986 afterward.  This reminder of my demise made me do some reflection.  There is nothing like the specter of death to force you to take stock of your life.  This week I wanted to share my revelations.

Demographically, I belong to the Generation X cohort of American history.  Born in the late 1960’s and early 1970’s we were raised in the Reagan 1980’s.  We witnessed the birth of Apple and the fall of the Berlin Wall.  We experienced “Morning in America” and two ugly recessions.  The revolution was televised on MTV, and the counter-revolution came from the White House.  The anxiety of terrorism was nothing compared to the possibility of human extinction caused by mistake in the Cold War.  Plenty of cultural forces mixed to create emulsion which is still relevant today.

As a nerdy Dungeons & Dragons playing child, there was no place to find solace during this period.  I was a striver and wanted to succeed.  There was no internet culture to speak of so I relied on my small circle of friends in theater, JROTC, and scouts to muddle through.  It was a lonely way to grow up.  It was also preparing for my future career because nothing is more solitary that leading change.

Like many people in the early 1990’s, I was adrift.  The job market was lousy, and the prospects for a college graduate were not good.  I worked odd jobs and spent most of my time attempting to be self-sufficient. After working in a casino for a few years, I decided to make a change and become a technology professional.  It was 1998, I was thirty years old, and I began my first entry level job as a Visual Basic developer.  I had found a career.

My career would have numerous ups and downs.  I would confront long term unemployment in the aftermath of the bubble.  I would be a consultant, and I would work full time for plenty of companies.  It would take me ten years to learn how to become a competent web developer.  During this period I was exposed to Agile and Scrum.  Since that moment in 2009, I feel like I have gone through a second educational period in my life.  I completed a master’s degree in management.  I became a certified scrum master and then later a certified scrum professional.  I began spreading my experience and knowledge around.  It has been rewarding and fun.

Lately, I have noticed how much cultural opposition within the business community there is to Agile.  It is hard to break old habits and upset personal relationships when you are trying to improve business.  Personal loyalty often takes precedence over doing the right thing for the firm.  There is a lot of understandable fear in the cubicles of America about change and what that means.

Using quantitative measure to judge performance holding people accountable for delivering a quality product, and expecting everyone contributes is controversial among white collar workers.

“It is unfair to measure me to everyone else,” someone I was coaching said.

The reality is it is unfair for someone in the office not to do their job to the best of the ability and cause customer service to suffer.  It is also unfair that you are not improving as your career progresses.  Technology professionals understand this, and it is about time other people in the business community do as well.

So as 2017 drifts lazily into its third, quarter, I am looking forward to the class of 1986 reunion.  My life struggles are a legacy for others to gain experience.  It explains why I enjoy training new developers and helping others avoid the mistakes I made in my career.  Growing old is not as terrible as I suspected.  My life experience has given me the tools to help others, and it just means I have a lot of wisdom to share.  My life prepared me to be the scrum master and the agile coach I am today.  Not a sad thought when you are confronting your mortality.

Until next time.