While I suggest that the industry has a tendency to overcomplicate, some argue we have no choice. After all, we are in a complicated business? But this thinking is driven by our collective ego and our innate drive to be special. It’s as if we still hanker for the fairy wings and hero suits of our childhood.
Psychologist Edward Dreyfus puts it well: “The need to feel special is common to human beings. We want to know that we matter to others; we want to be seen. We strive to achieve some special status in the eyes of others; how we are viewed by others matters to us. One way of knowing that we are special is when people treat us differently than they treat others. When we are singled out for special treatment, given special privileges, receive special favors, we feel special.”
When I first started doing software development I was labelled a programmer and everyone had the same title. There were no other roles; no testers, no business analysts and no architects. Creating project teams was easy; get a few programmers together and start building.
But as my career progressed I met business analysts and in later projects, testers. In those early days, the additional roles made a big difference, but today, we are still creating new titles, roles and specialisms.
This modest list http://goo.gl/1oapaS describes 59 different roles, and with each, comes additional artefacts and new process steps.
I recently worked with an organisation that had taken this problem to the extreme. The poor project manager had to negotiate their way through a minefield of specialist-defined practices created by no less than seven specialists assigned to the ‘cross functional’ team.
Delays escalated as the specialists took artefacts back to their practices for peer review and sign off. The UX specialist took ten days for a wireframe review and later, the build stalled when the Test Manager did an ‘enterprise risk review’.
In a lot of enterprise organisations, specialist practices seem to rule the roost. I like Dan North’s view on this: “There is an assumption… that in order to deliver in a large organisation, you have to start with the large organisation processes and technologies and do the best you can. What if you could throw out the rule book? What if, as the man said when he was asked how to get to Dublin, ‘I wouldn't start from here’“ (Dan North on a related subject, http://www.infoq.com/presentations/Keeping-Agile-Agile )
So how do we simplify? I recommend putting everything back into the sprint where no single role, no individual, and no part of the process is more important than any other. Any specialist who lobbies for their part of the process to have an upfront, preferred or special status needs to be brought back into the fold.
It is time to put away our fairy wings and magic wands, take off our super hero suits and leave our egos at the door. The most efficient and functional unit for developing software is the cross-functional team. Let's get back to basics and focus on the best way to work, explore the options as we go and build the best software we can.