public class TeamMember implements ITestSoftware, IWriteCode, IDevelopProducts... and a special forces twist...

No, this isn't on the same topic as my previous post on Udi Dahan's interface naming style. But, I have taken inspiration from it as I've been trying to find a way to communicate a people issue.

In that post, I was illustrating a point that Udi had made about naming interfaces not based on what they are but what they do... based on their roles...

So, when people ask you what do you do, what do you say? "I'm a tester" or "I'm a developer"? Is that what you do or is that what you are? Is that what you are because you spend most of your time testing or developing respectively? What if you do several things? What are you then?

I'm often called upon to help in relation to things that people perceive to be about testing and thus identify me as "a tester". And, indeed I am... but it's not all that I am... I can fulfil several roles... this week I spent most of it coding... so being a tester is not my sole identity nor is being a developer. Am I one of these newfangled tester-developers or developer-tester or whatever? Or, do I represent a shift in the skills profile of software project team-members?

See, in a waterfall type project it almost makes sense to split everyone up as if they are on a production line... so the roles and the identities become one... analysts pass the outcome of analysis on to developers who pass the result of development onto testers who pass back the results of testing. If I'm working on an agile project those boundaries quickly fall away (except maybe when people are clinging on for dear life to their job-titles).

One of the reasons I think these boundaries fall away is because we are collectively tasked with delivering working software not just code that may or may not work (or even compile for that matter) not just test-results but software and the evidence that it works! Another reason is because I can. Another reason is because the skills demands of a project vary. One new user story could be minimal code changes but substantial testing related work. Another user story could be lots of refactoring and a small feature change and (thanks to having lots of automated tests) be less demanding in terms of testing effort. So, the skills demands of the team are fluctuating but the number of team members isn't. We don't get more testers in one iteration than the next to cope with variations in testing effort. The team remains relatively fixed... so we all need to muck in in all sorts of ways depending on the demands of that iteration.

This instantaneous role switching also eliminates waste. This hit home recently on a training weekend I went on...

I engage in a sport called Airsoft. I'm even in a team and we go on training from time to time which is usually run by private security contractors (as Airsoft is also employed for police/armed forces combat training). During this training weekend, one of the things that we practiced was dynamic room entry...

When special forces perform dynamic entry into a hostage situation, there are several roles... Point-man, Method-of-Entry (MOE), Team-lead, support. These roles shift around dynamically based on who gets to which position that role can be best performed from. As one room is cleared, they may not be in the same position on the next door they have to breach... so each person just instantly switches roles. Yes, they might have one person who is a specialist in methods of entry or another who is a crack-shot and is the ideal point-man... but they can all do each others jobs, albeit to varying degrees of competency. Despite these variations in levels competency - they are all competent in each others speciality. They don't have time to shuffle around to get into the position that the job title dictates... time is of the essence... they can afford absolutely no waste in the process... and eliminating waste is a corner-stone of agile development.

So, as more and more companies start to take on agile projects the demand for multi-skilled people is only going to rise... hold on to your job-titles or broaden your horizons... it's up to you!

Browse by topic:

Comments

Is this demand for multi-skilled people being met ?

Reason I ask is that I've jsut put together a collection of blog posts here with people finding it hard to get technical and/or good testers

Which reminded me of a posting of yours a while ago where you seemed to be struggling with the quality of people out there