One of the key aspects of a DevOps model is not only the closer working relationship between Developers, QA’s and Tech Ops etc but in fact the blurring of the lines of responsibility. By that I mean if each of these “Job families” has created an environment where trust is high, everyone has the mandate to do each others work.
However, Job descriptions in IT are quite narrow (sometimes caused by our own pursuit of status) and this labelling is hampering the real positive possibilities of DevOps….allowing us to achieve greater job satisfaction coupled with higher productivity.
In most companies, the Technical Operations staff are scarce. Hence bottlenecks can happen between teams which causes the inevitable rise in the number of inter-team work related request tickets. This is surely the bane of productivity and, in my opinion, one of the major drivers behind the DevOps movement.
The co-location of teams or even organisational changes (where team members are brought together) doesn’t address the very narrow focus of IT job families. So my idea was to create a role for Developers, QA’s and Tech Ops that is much wider and all encompassing called Application Engineers.
I can see a world where Tech Ops staff can code on a project and Developers create databases, configure servers and write automated tests (BDD/ATDD) but right now our organisational job descriptions create paper silos. We can address this by creating a Fungible role such as an Application Engineer.
I know that some people will say that we need specialists. But as we create more tools/frameworks, exploit the cloud for storage/compute and introduce more automation, the need for specialists is decreasing.
In fact the normal day to day Tech Ops tasks can be done by Developers. This allows the Technical Operations staff to act as Coaches, Mentors and Experts when it comes to specialisms such as building for scale. Also, some of the best Developers I’ve met work in the Technical Operations world, so this fungibility can work in reverse, with Developers coaching Tech Ops to code as part of a team.
But as I mentioned, in large organisations we have silos. Some might say fortresses. However, in smaller organisations and start-ups, everyone rolls up their sleeves to get the job done…..is that DevOps? I think that it might be and what we are searching for, as we implement these ways of working at an Enterprise level, is to emulate the start-ups in order to be lean, agile and nimble.
In my opinion it’s all about teamwork backed up by a Trust but Verify mindset.
So it’s time to throw away the old job descriptions and adapt to the new world of DevOps by embracing Fungible roles.