I recently worked with a team who’s fairly new to agile, only a few months into their Scrum adoption. Despite their novice status, they have a surprisingly progressive view of a few agile concepts, one of them being the idea of what it means to be a cross-functional team. We usually say that to be cross-functional, the team merely needs to include all of the disciplines necessary to construct potentially shippable product increments, but I found that this group expects its members to be individually cross-functional. While not strictly necessary and likely difficult to achieve absolutely, I didn’t dissuade them – it can only help them self-organize and mature.
Much of the resistance to agile stems from our habits of over-specialization and strict serialization of tasks, both symptoms of mistaking efficiency for effectiveness. Workers not spending as many work hours as humanly possible in their specialty? Waste! Two people working on the same task? Redundant! It’s all too easy to view these ‘inefficiencies’ as a reason to modify or reject tenets of a new framework such as Scrum, whose instructions encourage such behaviors; The more adaptable will see the requirements as cause to reevaluate old assumptions about what’s best to develop product. For what’s the goal here: shaving person hours and other micro-optimizations, or supporting group creative problem solving to deliver business value? As Victor Szalvay (our Director of Engineering for ScrumWorks) says about Scrum: “We take waterfall and put it in the blender”. One of the best ways to do that is to make sure you have a team of flexible individuals who will do whatever they need – including ‘each others’ job’ – in order to meet the Sprint goal.
I wonder what this team will come up with. Systems architects who write code? Programmers who hand-sketch UI designs? UI designers who code the front end? QA engineers who write end-user documentation? Technical writers who do business analysis? Business analysts who write tests? I’ve seen many of these ‘job-swaps’ happen on various other teams. A team that could do them all might do amazing things.