Today we have a guest editorial from David Poole as Steve is traveling today.
I have been thinking hard about what I want from the last decade of my career. I am happiest, challenged and fulfilled when working in teams of people with different technical skills and backgrounds. Despite our differences the atmosphere within such teams has been one of energy, collaboration and curiosity. The first time I experienced such a team spirit predates FoxPro so it certainly predates the great Developer/DBA divide.
Grant Fritchey and I have both written articles illustrating the destructiveness of this divide. Grant in his DevOps without the database: A cautionary tale, and my DBAs vs Developers: A Sad Tale of Unnecessary Conflict. Others have similar tales, but where do such conflicts originate? My first clue was when a colleague were venting over a Dilbertesque situation and he joked "this demonstrates Conways Law to a tee". This was the first time I had heard of such a law but it is a major piece of the puzzle.
An extension to Conway's law came from a colleague whose pearl of wisdom was that "You don't get isolated pockets of crapness. If your database design is crap then the code that uses it will be crap, the architecture will be crap. The infrastructure will be no better"! Each functional team striving for its own idea of excellence collectively achieving less than desirable outcomes.
I consider to be the final piece of the puzzle to come from a short biography that has nothing to do with IT. Born a crime: stories from a South African childhood by Trevor Noah. In it he describes how apartheid was able to work for so long despite its manifest injustices. Separation of South African tribes was by design. This used their natural antagonisms, separate languages and cultures against them. The antagonisms would be so great as to prevent them from unifying and throwing off the ruling minority.
I began to think of developers and DBAs as two separate tribes, also with natural antagonisms, language and culture. As with the apartheid system, enforced separation exacerbates the divisions between us. This leads me to believe that organising IT into silos of functional specialisms is a mistake except in the short term. At the boundary of any functional specialism there is a friction point. This point is where communication fails and conflict begins. Yet businesses like to organise people into crisply defined functions.
Functional silos do give the benefit of focused excellence. When teams pull in opposite directions that excellence will be squandered.
This is why I am so keen on agile software development and the twelve principles behind it. This is why I embrace DevOps culture and why I am delighted to see Redgate place such emphasis on tools to support disciplines and practices that are the bedrock of the DevOps culture.