The word TEAM (with capitals and bold) is not the same as the word team we often talk about in software development. For us as true teamplayers who have done the army service, played in a band, played football or other teamsports, TEAM is common sense but few have done this in our teams today. I believe the root cause of why we have so few TEAMs in software development, is the lack of teamplayers. Software development has hijacked and devalued the word so the definition on teamplayer is if you have a desk close to another teamplayer. In my book, to become a teamplayer, you first need to have been a part of a TEAM. A catch 22, but for us with the above backgrounds we have it in our DNA and can coach others, so lets do it. So how do we become a TEAM? First check out this excellent blogpost by Stefan Linbohm to get the basics that a team has two basic heuristics, need for eachother and a shared goal. My definition goes beyond this and it is what i call a real TEAM.
Note the bold parts, being the core values we are trying to adress. You should be able to test this against your football team, you choir, your software team or your family and use it as a starting point for your mission statement. To approach this TEAM thing you need to change your mindset and understanding that team is a noun and TEAM is an adjective. It will take time to get there and you need to manage expectations accordingly. Despite what agile gurus says, it will take time. But not as long as others say – to become agile [sic!] it takes as long as your company is old.
Every time i have been a part of a true software development TEAM there has been at least one teamplayer in it. Too often the team members comes directly from school and have few skills in face to face communication and interaction in a complex and unsafe environment such as software development or army service with high stakes. These are needed talents (or supersubs as i we call them in football) as well in our TEAM but first we need (minimum) one teamplayer to build the TEAM around.
The definition of the team player has a subjective word – competent. My definition of competence is the formula c=f(s*g). Let me my explain the formula:
- C = Competence is the function of…
- S = Skill = Having the right education or/and experience for the role in the team. For instance, we need different skills to meet the expectations on our TEAM. In football we need defensive as well as offensive players. In software development we need frontend and backend developers.
- G = Good habits (aka discipline). If you cannot complete your task according to the expectations (definition of done) the sum of competence will be zero. A pilot with 1000 flight hours not ticking off the checklist before start have zero competence. In the movie Flight starring Denzel Washington he drinks vodka while flying his aircraft with great skill. A football player scoring lots of goals but not taking the defensive work, as we agreed, have zero competence (sorry Zlatan). A software developer not checking in his code as agreed, have zero competence as he has no good habits.
Competence = c=f(s*g)
With at least one teamplayer per team, there is a hope for becoming a TEAM. With the formula TEAM = 5*f(c*g) you can check if you have a true TEAM. Having been a part of a TEAM is a prerequisite for being a TEAM coach. You can also use the more common methods shu-ha-ri or Tuckmans ladder but beware they do not consider the need for a true teamplayer by design first.
Unfortunately, the word team has been inflated over the years by agile coaches with zero competence (se formula above), but with a lot of great theory. Let’s deflate it and inflate it again with real TEAM! Next post will be about the difference between agile coaches and AGILE COACHES;) Here it is (in Swedish though).