Wednesday 9 September 2015

Critical Non Essentials in Software Teams

In his book about how he transformed England into favourites for and eventual winners of the Rugby World Cup in 2003, Sir Clive Woodwood cited the significance of Critical Non Essentials in the journey.

He recognised that in order to take on the traditional super powers of the southern hemisphere, he needed to create a winning culture in the squad and at the heart of this was an approach which left no stone unturned. The recent success of Team Sky in road cycling also has a similar philosophy at its heart, with Dave Brailsford pursuing "marginal gains" in order to set his team above the peloton.

Fundamentally, both of these successful leaders at the highest level understand that within elite sport, there is a fine line between winning and losing. With many teams and squads having access to the same resources and techniques, it can be the smallest details which set you apart and ultimately turn your team into the highest of high performing teams.

Reading Woodwood's book, the idea of Critical Non Essentials immediately struck a chord with me and I started to search out areas in my professional working environment which could benefit. Roll forward 10 years and they are back on my radar as I look to create a culture of excellence within our software development team. As a city, Edinburgh is full of cool and exciting technology companies and the best developers will gravitate towards those with the best reputation and so it's vitally important that our engineering culture is spot on.

Of course creating a high performing development team can't just be based upon these Non Essentials. To be the best, we need to focus on the absolute core elements of top technical teams. Things such as continuous integration, peer reviews, automated tests and agile practices can often be mistaken as non-essential but for us, we couldn't be effective without them. Indeed, this exact point was made on a recent Money Dashboard podcast by Adrian Hristov (@adrianhristov). However, as the market matures and many of these "essential" practices become commonplace, it is your CNE's which will set you apart.

So what sort of things can be classified as Critical Non Essentials in a software team? Well, in a nutshell it's about making the work environment as good as it can be for each team member and aspiring to be best in class. Recent examples which have been implemented which may fall into the CNE bracket include:

- proper monitor risers rather than coding reference books and optical mice for entire team
- new seating plan to ensure all developers sit together and close to the task board
- magnetic white boards to run an effective task board and magnetic board rubber
- team chosen avatars for the task board
- closing off all old/invalid issues in your bug tracking system
- offsite technical team meetings
- external facing technical blog to give the team an opportunity to showcase their knowledge

Does this make you think world class developer setup?
When growing a team, the importance of these small details is compounded. as new joiners will come in without any of the baggage (good or bad) of existing team members. Although they'll have gone through a hiring process, had the chance to ask questions and listen to your pitch about your culture, these first days are the time to give credibility to your words. I made sure a recent new start in the team received all the best equipment we had available even though it meant it left our CEO a monitor stand less!

For a team or organisation in its formative stages, I can understand that a culture built on "shabby chic" can help bring a team together: the "Crazy Gang" mentality if you like. However, as your team matures and expands, your levels of performance need to scale too and to enable this it's important to do things properly and not cut corners. As a leader, harnessing a culture of Critical Non Essentials is one way that can help you ensure that your team can maximise its potential and edge you ahead of the competition. 

No comments:

Post a Comment