Jan 31, 2011

How Do I Deal With “Mr Stinky” in Scrum?

On one of the various mailing lists I’m part of this question came up (edited slightly)

Retrospectives teach us to say to team members “I think it would be good to improve such and such for the next sprint”.  How about sensitive subjects like “one of the guys speaks in an abrupt manner” or “one of the guys has bad breath”?

Body odour and stink breath, especially for the coffee drinkers amongst us can be a fairly common complaint.  If the team has to work closely with someone who has an odour issue then one of the hardest things they have to do with is hide the gagging every time Mr Stinky sits down next to them to discuss an issue.  As a scrum master it’s really easy to cop out of dealing with this problem and resort to, “let the team self-manage and figure it out for themselves” but that assumes that they have the skills to do so.  In the I.T. industry people are generally not so sensitive to other people’s feelings and leaving this issue alone for too long is likely to turn into a source of conflict within the team.  As scrum masters we need to facilitate good team work and step in when required to help resolve this problem.

Having a subject like this pop up during a retro would be really bad for the team.  (I’d going to call it a smell/stench in team behaviour, but I apparently exceeded my dad humour quota for this month already).  The good thing is that it’s unlikely to happen as you’ll usually hear grumbling from individuals long before anyone on the team brings it up publicly.  People usually have more sense than to take the ambush intervention approach – breakfast radio DJ’s excluded.  The most common response is for the team to silently isolate the individual instead.

Now personally, I’ve had to have a a few of those body odour/stink breath conversations with people before.  Sooo much fun. Not.  I feel awkward and nervous and dread the conversation each and every time, but sometimes it just has to be done.

Unfortunately, there’s no “rules for dealing with sensitive personal subjects” in Scrum.  You’ll have to rely purely on soft skills and the approach to take very much depends on the personalities involved.  The only guidance I can really give is to put yourself in the other person's shoes first and think about how they might best like to be told bad news.  For most people that means privately and in a conciliatory, supportive manner.  And please, make sure you have enough self-awareness to realise that if you can’t deliver the message that way then you should go to someone else in the organisation who can and get them to step in for you.  First port of call being the HR department, assuming your organisation is large enough to have one.

If this is something you’re facing at the moment, then I wish you good luck!

Jan 15, 2011

[Ann] Newcastle Nerd Dinner, Jan 20

A very quick public announcement: there’s a Nerd Dinner happening in Newcastle this Thursday, Jan 20.

Details are on the NerdDinner site so if you’re in the area why not come along.  It would be great to see you there.

Jan 10, 2011

The Tyranny of OR for .NET Developers

Over recent times I’ve noticed a handful of people writing blog posts about why they are leaving .NET and the Microsoft platform to move to Ruby on Rails, Python or something other technology.  The reasons vary from person to person but the general, recurring memes seem to encompass the following:

1. Microsoft stifles innovation
2. Almost all .NET developers are below average in skill
3. Microsoft means Closed Source.  Other choices mean Open Source.
4. Newer technologies are superior to .NET
5. Visual Studio is bloatware and static typing sucks. Dynamic languages and Vim FTW!
6. Corporate development is evil and .NET means Corporate
7. Only in the open source world do people truly understand proper software engineering practices

I’m not going to argue the points since these are peoples personal perspectives and the people who have them are more than entitled to them. However, I also think there are some other unmentioned reasons that people might leave .NET that could be described as one or all of the following:

1. The new languages offer new frontiers to be explored.  They like the romance and adventure and opportunity that this offers.
2. Communities in these new languages are pushing themselves to do better and as a result have some great, innovative and creative people in them.  They want to be involved in what these people are doing.
3. They love learning and a new language offers many new learning opportunities.
4. Many startups are using the new languages and they prefer to work in the startup culture.
5. Because the new languages are still new, the average developer hasn’t yet heard about them.  The ratio of poor developers to competent developers is good.  It feels more like an elite club.
6. Switching because it seems to be the cool thing to do. To quote Troy Hunt who I was talking to about this “It’s like all sorts of other social trends where there’s an attraction to being in a minority group”.  In other words: “If all those other people are switching then so should I.  I might be missing out on something!”

What bothers me is not that people are switching since it’s their choice and well done for having the courage to change, but that these various exodus posts carry a sense that language and platform choice has to be an all or nothing decision.  Ah, the tyranny of OR. The idea that you can’t have two seemingly contradictory ideas in place at the same time.  Jim Collins wrote about it in Good to Great and talked about it in this interview:

“they get caught up in what we call "The Tyranny of the Or," the belief that you cannot live with two seemingly contradictory ideas at the same time, that you can have change or stability, you can be conservative or bold, you can have low costs or high quality -- but never both. Our visionary companies all operate in what we call "The Genius of the And," the ferocious insistence that they can and must have both at once.”

What happened to taking what you know AND adding more knowledge and skills to it?  Are we so limited that we lack the ability to keep knowledge of multiple platforms and technologies in our head at the same time.  Do we not know how to evaluate options and pick the right tool for the task at hand? Can we not change the community around us and improve it when we think there are problems?

Why should it be .NET -or- a community that pushes boundaries? 
Why should it be .NET -or- Mac/Linux development?
Why should it be .NET -or- Open Source development?
Why should it be .NET -or- A lightweight IDE?
Why should it be .NET -or- Dynamic language development?
Why should it be .NET -or- Learning new things?
Why should it be .NET -or- Code Crafstmanship?
Why should it be .NET -or- skilled coders?
Why should it be .NET -or- a startup/dotcom style company?

Don’t make it a choice of this OR that, make it a case of this AND that AND that other thing AND oh, a bit of that over there.

If you want to switch, go for it, it’s your decision, just don’t be ruled by the Tyranny of OR.  Try to embrace the Genius of AND.