Monday, December 26, 2016

Looking back at the people who influenced me.

Inspiration comes from plenty of places.
I find inspiration from some of the weirdest places.  I could be watching a Bollywood movie or enjoying one of the many Dune books by Fran Herbert or his son Brian.  I also identify with comedies inspired by former cast members, so Saturday Night live.  I even ponder if Bill Murray is my spirit animal.  These influences have shaped my leadership style.  This week I want to discuss influences.

In my view, there are two kinds of influences; positive and negative.  Negative influences are anti-examples.  It is something or someone you refuse to emulate in your leadership.  The positive influence is one you want to fold into your practices.  I consider both types important for shaping your style of leadership.

I have many positive influences in my career; people like Andy LaChapelle, Roy and Yvonne Guash and JoAnn Pankow from Harrah’s Casino in Joliet.  I have technology professionals like Angela Dugan and Allen Dail who shape my views about corporate IT.  The most influential group in my life are the numerous coaches and competitors I have met from the world of college forensics.   People like Megan Koch, Craig Cutbirth, Elige Wilson and Ed Suitor shaped me into the person I am today.

Over my career, I have worked for numerous organizations and leaders.  The negative experiences have marked me like tattoos.  Each one made me swear to myself I would never subject any who works with me.  For example, I consulted at a company where a majority of the technology staff were consultants with H-111 visas.  Meetings were grim and quite affairs because anyone who spoke up was rolled off the project and deported back to their nation of origin.  I remember being told by e-commerce solutions should like about inventory levels because high margins were superior to happy customers.  Finally, I worked for an emotionally stunted man who would yell at me to work faster and then yell at me when I would make a mistake because was working too quickly.

In these moments of darkness, I swore I would never do things like that to people who worked with me.  I have had my moments of weakness and have fallen short of my expectations, but I have never been intentionally cruel to people.  Knowing that helps me sleep better at night.

Positive and negative influences matter and they shape the leader you become.  Paying attention to both is important.

Until next time.

Monday, December 19, 2016

The Bull has Two Sides

You find lots of strange things online.  This week I turn to the pages of the New Yorker to enjoy a few lessons about web design.

Times Square in New York City is receiving a face life to make it more pedestrian friendly.  The work began in 2012 and should be finished sometime in the summer of 2017.  Leading the construction is an architecture firm lead by principal partner Craig Dykers.  His office overlooks the Wall Street bull, and it gives him some insights into the design.  According to the December 14th,  2016 New Yorker.

Dykers told me that he has observed the crowds around the bull for years, and that the tourists can be divided roughly equally into those who pose at its head and those who pose at its rear end. (The bull’s nose, horns, and testicles have been rubbed, for luck, to more or less identical degrees of shininess.) Dykers said the statue is a useful reminder that humans are diverse, and have their own ideas about design. “A lot of our work as architects takes into account that just as many people are interested in the backside of the bull,” he said.

There is wisdom in this observation as you are constructing websites or software applications.  No two people view a web page the same way again.  Some view it from the metaphorical horns and others view it from the metaphorical behind.  It is up to us to accommodate both of these perspectives and to test it accordingly.  As an engineer and scrum master, I look at a website very differently than a sales person or pricing managers.  I am a big believer in Agile and Scrum because I can test out concepts early and fold them into later releases so that I do not have to deal with the crushing disappointment of spending my life building something my customers will not use.

So remember the horns and behind of the bull, and build software iteratively.  It is not only a good practice but a healthy way to avoid disappointment in this business.

Until next time.

Monday, December 12, 2016

Developers Need to Develop Discipline

Discipline means more than looking like a professional
At least once a week, I receive an email or tweet featuring an article claiming agile and scrum are dying.  Many of these items are click bait.  A few are about poor agile implementations.  This week I saw a new variation on that theme, and it was from one of the initial signatories of the Agile Manifesto; Robert Cecil Martin aka “Uncle Bob.”  I took some time to watch his video, and I encourage you to do the same.  This week I want to discuss one of Uncle Bob’s main themes – discipline.

I was a self-taught developer.  During the giddy and stupid days of the dot-com boom, I decided to change careers at the ripe old age of thirty.  I remember going to job fairs with floppy disks and resumes looking to break into my first career role.  I knew a smattering of HTML and Visual Basic.  ServiceMaster took a chance on me, and my software development career was born.  I would learn SQL and many other skills during my first two years in the business.  It would take me another eight years for me to develop any confidence in my skills.  Today, I have eighteen years of experience, and I still consider myself an intermediate level developer.

The reason why I feel this way is that I have made numerous mistakes over my career and had the scars to show for it.  I still struggle with practices like Test Driven Development and SOLID programming.  In the fast-paced world of software development, I struggle to pick up these concepts as quickly as my peers.  I would be humiliated at job interviews when people reviewed my code claiming that if I have learned code at “X” university or code camp, I would be so much more professional.

A funny thing happened to me when I started working as a scrum master.  I was now bringing on software developers to new teams.  Some of them had masters degree’s in mathematics and computer science, but they never wrote a unit test or worked with source control tools.  I would have to educate them on how to be better developers who to be professional and disciplined.

According to Uncle Bob, half of all developers have less than five years of experience in the profession.  That means that those freshly scrubbed developers are learning how to work on large code teams, write unit tests, and develop business knowledge.  It is up to more experienced professionals, like me, to help them develop these skills and have a sense of pride and craft in what they do.  They should avoid the numerous mistakes I made in my career because I will show them how to avoid them.

So what does it mean to be a disciplined software developer?  The first trait of a disciplined software developer is that they use source control for their work.  The code is checked in on a regular basis, and it is commented to explain what it is doing.  A developer should also know how to do branching and merging so that they can segregate code based on the needs of the business.  Working with source control allows a developer to work on large or small projects.  It does not matter if you use GIT or Team Foundation Server for source control.  Learn to use source control.

The next trait is the desire to improve your skills.  A disciplined developer is reading up on new techniques and practicing them outside of work.  When the time comes, this will help solve business problems and speed up work.  I am also a big fan of using the phrase, “why not?” at the office.  That is because someone has discovered a new way to do something and I cannot think of a valid reason why we should not try it.  My software developers started using MOQ and incorporating dependency injection into our software projects because of this attitude.

The last trait of a disciplined software developer is humility.  I am very hostile to the brogrammer movement in development.  Developers should be willing to learn from each other and develop new techniques based new knowledge.  The arrogant disregard of others and the showing off of software development skills is not helpful or necessary in the activity.

So to be a disciplined developer you need to leverage source control, be willing to learn new things, and approach the business with some humility.  Being a programmer and scrum master is one of the hardest jobs I have ever had.  It has been financially rewarding and professionally fulfilling.  It also took me eighteen years to get to this point.  For all the new software developers entering the market, I hope I can help you avoid the mistakes I have made in my career.

Until next time.



Monday, December 5, 2016

Good Scrum Requires Organization and Improvisation

Good Scrum is like good jazz
The life of a scrum master is a daily adventure.  No two days are the same.  One day everything is going well and the next you are confronted with a production server meltdown.  You have tremendous responsibility but no authority to get anything done.  This week I want to talk about two skills you will need to develop to be successful, organization and improvisation.

As scrum master presides over a fluid and ambiguous environment.  Product owners want to succeed.  Finance people are tracking the money.  Your boss wants to know when you are going to push code into production.  To answer this and numerous questions which come up during your work day, you must be organized.  I keep file folders with information regarding each project.  Additionally, I insist that the product owner and the team keep the product backlog neat and tidy.

Use your source control and project management tools to the best of your ability.  It does not matter if you use Jira or TFS 2015.  These software products are designed to keep you organized.  If you want to be old school, use a whiteboard and post-it notes; as long as the information is accurate and readily available to everyone.

I like to use the “arms-reach” rule.  This rule states that any and all information about a project should be within arms reach of the scrum master.  So when your boss asks how the sprint is going, you can show them a burndown chart.  A developer might have questions about the I.P. addresses of a server.  You should be able to reach an excel spreadsheet or file folder in your drawer to return that information.  It will enhance your credibility with the organization and the people who work with you.

Finally, do what many people in the media business do; they keep a schedule file.  They have twelve folders for each month of the year.  They have additional folders for each day of the month.  When you need to do something date sensitive place, it in the correct month and date folder.  Each day you pull the current day's folder, and that provides you with an agenda fo what needs to do.  Once you get into the habit of doing this, you will wonder how you lived without it.  Once you get into the habit of doing this, you will wonder how you lived without it.  

The next skill I strongly recommend is improvisation.  Being able to respond to change over following a plan is a tenant of the agile manifesto and a great definition of improvisation.  In a typical day, a scrum master will reschedule a backlog refinement meeting to help a developer with SOLID development or they will spend time with finance people to explain the scrum process.  You need organization so depending on what happens the information you need is in “arms-reach, ” and you can change direction.

Improvisation does not mean making stuff up or bullshitting your way through your day.  It means addressing the unexpected with the correct response.  When humor is required, use humor.  When it is necessary to be firm, you will have to act.  It requires organization and mental disciple.  The way to develop those skills is by taking some improve classes or getting involved in organizations like ToastMasters.  There you will learn both public speaking skills and the ability to think on your feet which are key to improvisation.

So to summarize, to improvise you need organization.  Developing these two skills will make you a better scrum master.

Until next time.