Many software engineers take up civil services exam and hope to become IAS officers. As we know, software engineers are typically from engineering (meaning science) background while a typical civil service aspirant is from arts (humanities) background. This makes a typical software engineer ignorant of sociological topics, history, administrative philosophy, law etc. Of course, in the course of studying for the exam one could pick up these subjects, but it will be simply by rote and nothing like a formal degree in BA or MA. So, how well would software engineers suit civil service domain?
Modern software engineering is mostly built on and revolves around two key concepts : abstraction and information hiding. Abstraction is the concept of assuming an entity with certain general behavioral guidelines and simply using it, without caring how exactly it does its job. Information hiding is, err, hiding information: if one gets a result as promised from an entity it doesn’t matter how exactly the result was arrived at.
Based from these two, there is this thing software engineers do in order to solve a problem. They add one more layer of abstraction, a layer with which all the interaction happens and it basically delegates the problem to lower layers. How does this solve the problem is a bit technical, but just believe me when I say it does. This is pretty standard, so much that there’s an insiders joke, a running gag : “any problem can be solved with one more layer of abstraction”. Really, software engineers are quite adept at that. That’s the mantra they live by.
A thing that comes up again and again in software engineering is something called scalability. It is a measure of how easily the software or hardware adapts to increase in data size without nosediving performance wise. Most software engineers fail to recognize that in non trivial cases, a solution for a problem of small size doesn’t apply directly to the same problem with much larger size because they don’t at all understand growth of functions, the maths behind scalability.
One must understand that any software is bound to have bugs aka “issues”. Most bugs will be sleeping while some will be playing around. They are sly little creatures these bugs. When one is about to be killed, it broadcasts a signal that is picked up by few dormant ones that wakes them up, and waking up, they all start being themselves. To top it, these cretins reproduce in truck loads. Its almost like some eternal curse from some B movie. That’s the software engineers’ side of the story anyway. Any case, bugs never really get fixed and there will be endless patches.
Further, deadline is always relative. Actually, this is the mantra they live by. I lied earlier. And last but certainly not the least, most software engineers lie like hell on their CV.
I may have been talking about software engineering all this time but all those descriptions sounded pretty familiar, didn’t they?
Abstraction and information hiding are what citizens face. Another layer of abstraction is what the authorities do. The lawmakers, advised by civil service officers, fail at scalability. Public projects never seem to complete, not without never ending list of problems. And lying, lets not go there now!
Ergo, I declare software engineers are tailor made for civil service. They can really make it big there, maybe even move on to politics someday and become ministers.. Perhaps this is the logical career change for a software engineer after he gets arthritis in his fingers, or gets tired with juniors calling him by first name. Or wants more salary.