You can take a person out of operations, not operations out of a person.
I was always a developer. Always.
Then I happened to enter the world of operations or “production support” as you call it. And boy, was I blown away.
It was a complete change of scenario for me. Complete change of outlook. I had to re-learn.
Of course, being a developer made it easy for me jump into the code and fix the “code issues”. But then those weren’t the pressing problems ever.
It wasn’t what the code did, but how the code did it.
It wasn’t what the infrastructure was, but how it was architected.
It wasn’t how beautiful the user interface was, but how efficient.
It wasn’t how perfect your app was, but how resilient.
It wasn’t just how it stopped, but how gracefully it came back up.
A different world altogether. Did it stress me out? You bet. All those after hour calls, all those tense hours when your application isn’t behaving the way it is supposed to, all those customers impacted, all those screaming matches to get the issue resolved!!! Boy it is one game you want to end soon.
It radically changed the way I think.
I am now a champion of all those features that make your application robust. A champion of making life super easy for the operations ninjas.
And it is time we all thought about those parameters while delivering. Let us start thinking about resilience, performance, security, reliability and automation as a “feature” instead of “nice-to-haves”.
What do we need to do?
Start articulating our requirements not just from a functional side but performance as well.
Start incorporating non-functional testing right at the start.
Start performing regression for non-functional features as well.
Start thinking about operational readiness not at the end but from the beginning.
Start failing your builds if these tests are not passed.
Start thinking about disaster recovery.
Start thinking about scaling up-down-in-out.
Start thinking about logging. Efficient logging.
Start thinking about your customers.
Yes, there is a lot of attention around this and rightfully so. Having come from an operations background I can feel the pain. However, I still see projects in a hurry and these requirements being put on the backburner.
If your application is serving a customer and in today’s world you want to remain competitive then you cannot afford to let go of the operational readiness.
Pro Tip: Get your operations team on board while delivering. They have the insights about the application that no one else does.