Teamwork?

Remember this for later:

Teamwork: cooperative or coordinated effort on the part of a group of persons acting together as a team (http://www.dictionary.com/browse/teamwork)

I have always like the idea of team work, but I think over the years my definition has warped.  I work in a scrum environment, where we are divided into teams of around 7-9 members.  By definition, scrum team, we are all working towards a common goal to produce the highest value backlog items each sprint.

We were introduced to the concept of a swarm and some of teams tried it.  They felt that it did help them produce higher quality software faster.  From my perspective, I saw 7-9 people in a room watching one person drive on the projector.  I can’t pass judgement because I was not there as a participant.  I think this can be considered teamwork.

There is another team that also works in a scrum environment, but their team work seems  to be a little different.  I often see them sitting together working in a more XP fashion.  There is no goofing around, just focused work.  They produce high quality work each and every sprint.  This seems to fit the definition of teamwork.

Over the years, the teams that I have been a part of didn’t have the intersections where we would need to work that close.  Even recently I was working on a team, but the work that I was doing was orthogonal at best.  I worked on my backlog items and they worked on theirs.  In reflection, this does not seem to fit the definition of team work.

images

Fast forward to today and let me talk about the team that I am on now.  On this team there are 3 junior developers and 3 senior developers.  We only have one or two backlog items and we are working them together.

Today , for instance, I had one or two developers at my desk for most of the day.  We were struggling to get the VMWare’s c# libraries working with SSPI.  The remainder of the team split the work and they were at another developers desk working together in the same way.

In some ways I push back,  wanting to be left to solve the problems on my own because this is unfamiliar behavior to me.  Fortunately my friend is very pushy and he is forcing me to engage.

I am also working on including the junior developers as much as I can.  I have always believed that it is the responsibility of the senior members to train and impart good practice on the juniors.  I have not always done it or done it well.  This time I am making it one of my missions.  Fortunately for me, the juniors have a strong work ethic and they are all really smart so my job is a little easier.

I am fortunate to be on a team that is willing to work hard and really drive towards the finish line.  They are teaching me the purpose and value of teamwork.  Thanks SOC!

Leadership Fail, Missing The Target

download (2)

 

There are opportunities for leadership in most interactions with other humans.  Sometimes we do not see them.  Sometimes we ignore them.  Today I had the chance to test my leadership skills and I failed.

We have encountered some challenges with our integration with Kafka.  We are taking this sprint to create a comprehensive suite of tests to make sure that we are solid.  One of the obstacles is how can we run tests on our local machine efficiently.  “On our local machines” was the first goal that I missed.

The goal was not about running them locally, but rather the ability run tests very quickly with complete setup and tear down.  To solve this problem I spent the last couple of days working on a Docker solution (which works nicely!).

One of the philosophies that we hold is to make sure that we have as production like environments as possible and this extends all the way to local development.  Today when we were closer to having a suitable Docker solution, we felt it was time to loop in Dev/Ops so we invited them to the daily scrum.  I had the feeling that this was going to go sideways, since we did not have a solid plan yet.

As expected, they were defensive and I cannot say that I blame them.  Knowing that this is not something that could be resolved in 15 minutes, we setup a meeting to talk more about this.  We are getting close to failure number two.  When we started the meeting, my buddy started to give an overview of what was the purpose of the meeting.

A lot of uninformed conversation started and internally I could feel that I was getting frustrated.  I can say that was failure number 2, but wait there are more failures coming up.  When I get frustrated, I tend to get defensive to the point that it looks like I am on the hunt.  This is a character flaw that I am working hard to correct (and have been for years).

Some of the more Dev/Ops focused guy where asking why would be want to run Docker, “it runs on VirtualBox” , “we have VMWare and Azure”.  This is where my frustration started to turn outwards.  I had lost sight of the goal: run tests against Kafka with setup and tear down really damn quickly.  That is failure number 3.

This last failure was the biggest opportunity that I missed.  What I should have done is readdress the requirements and then ask if they had any ideas on how we can solve the problem.  I think that would have defused the tension and calm things down.  Luckily there were others in the room that were able to navigate  those waters to arrive at a solution.

Daily we have all sorts of interactions with people, whether by email, phone or face to face.  In these interactions we have a chance to connect with people and exhibit some levels of leadership.  Often times we may not see it or in my case we suppress it.  I knew what should have happened, but for some reason I was unable to do it.  The good thing is that today is over and I will have more opportunities to exercise leadership tomorrow.