Just writing down that title feels like the beginning of a rant! I can’t believe we’re still debating the subject… But hear me out, I’ll try to be constructive.
Yes, it’s bloody obvious!
The TL,DR is “Yes Ops are Developers, the separation from IT Pros/Ops and Developers comes from Social Identification (mostly self-inflicted, and used/promoted by Marketing), but also resulting from Silo mentality created by misguided management hierarchy“. But the most common source of the problem is mostly semantic and people’s understanding of the word ‘Developer‘.
English is not my mother tongue, so I revert quite often to some form of dictionary when in doubt.
In the Cambridge English Dictionary, it’s pretty clear.
The second definition, relevant to us, sums-up the key concepts.
– We talk about development of a product
– The product CAN be Computer Software (but not necessarily)
As a side note, the first element is key in understanding Agile principles and methodologies (i.e. the meaning behind the Scrum’s Development Team and what cross-functional means).
That leaves us with two more questions:
– Is it Ops’ responsibility to develop a product? Or rather, should it be?
– Is it Ops’ role to write Computer Software to start with?
You guessed it, Yes, and Yes again!
The first question is very interesting and probably worth a longer article, but slightly out of scope here, so I won’t go into too much depth. The question is rarely asked, but is very much aligned with how you define value (and its creation) in an organisation, especially with functional silos that are not traditionally (read silo mentality) seen as value-creating activities (testing, DBAs, Infrastructure) and sometime seen as a cost centre. As Steven Murawski pointed out, “Making Work Visible” by Dominica Degrandis put the finger on “The Missing Link“, the “value protection work” that is common to testers, Ops, Security and so on…
Often this misunderstanding is apparent where you have a Dev team managing Product(s) (traditionally, developing Applications), and an Ops Team doing projects and/or activities (Even if your organisation don’t use those terms officially, mind the difference and evaluate what’s happening honestly). If you want to know more, have a look on Martin’s Fowler website, for the “Product over Project” article by Sriram Narayan.
Finally, is it IT Ops’ role to write Computer Software?
To clear any doubts, even when a human makes a change to a system manually, via a user interface (what we, IT Ops peeps, do), be it a CLI, Web, Remote or Desktop-based interface… We’re changing the configuration, or Data/Information processed by a computer Systems. The only thing that changes is the Interfaces, processes and practices around the changes.
More specifically, and especially in the Windows world, we’re just starting (as a group) to understand the value of Source code as a management interface to enact changes driven by human intent, via scripting and configuration management.
Does that makes us “Real Developers“?
I’ve seen people arguing on twitter (yeah, really), that “script kiddies” and “IT Pros” aren’t “Real Developers”… [I’m fuming just remembering the episode].
They are, because there’s no such segregation of “Real vs not-real”, “IT Pros vs Dev”, “Developer vs Scripter”.
We write code. Whether it’s in a scripting language, or programming language, is irrelevant. The skill set’s ‘spectrum’ and employers expectations (let’s be realistic) for someone writing code for Operations and one writing code for application might be different, but the activities should be very similar: crystallising knowledge, experience and creativity into something the computer can understand and process, to enable the System to change. The source code could be a simple text configuration file, with only Data, it is still code for the system to process.
What I can agree with is that there’s different level of experience and that the maturity (as a community) of the practices we use to manage source code and changes is lagging behind what Software Engineers have learned over many years, in tools, but mainly practices, rigour, and methodologies.
Saying, IT Ops/Pros are not “Developers” is not helping, guiding people to better practices and showing the value is much more constructive. Acknowledge that we’re in this together to deliver value to our organisations, and that the silo mentality is doing more harm than good.
If I missed something, or inaccurate, please let me know in a constructive comment. 🙂