The 00 Estate : What if government tells you how to write the code?
In the House of Commons of Great Britain, Edmund Burke said - “There were Three Estates in Parliament; but, in the Reporters’ Gallery yonder, there sat a Fourth Estate more important far than they all”. In the advent of the 21 century we have seen media houses exert biases towards their respective lobbys. ‘Truth’ that is supposed to be absolute has now shades of well crafted absolution. ‘Who’s truth is the truth’ is question that I seldom ask myself while reading news articles over the internet. While the government in power not only controls the First Three estates, it won’t be an overstatement that Orwell’s 1984 doesn’t sound like a work of fiction anymore. The blog tries to play with the idea of what if there is 00 Estate that encapsulates all the estates and dictates terms to write code.
I recently saw this wonderful talk - Uncle Bob’s Talk - Future of programming where he emphasises on writing ‘good code’ and the problems with ‘what if we don’t’. Honestly, the ‘we don’t’ part is scary. With the world moving towards automation there is an increased dependency on machines. Ideas like ‘what if I have technology where I can speak out loud and the fan, light, television would turn on / off ‘ are almost ubiquitous in every household these days. Ideas that made it in the script of science fiction movies are now turning into reality. All this is powered by billions of lines of code. Thus, if we (the software engineering fraternity) do not emphasise over the quality of code there will be severe repurcussions. People have lost their lives because of faulty code resulting in machine failures, hacking of automobile, privacy leaks and the list is long.
Since, the life of the people are on stake soon there will come a time when the government will regulate what code goes in the machine. The only problem is that policy makers who are running the government do not have enough knowledge about how sofwares work. These are individuals who have been selected by the people, not based on their expertise on technology but their experience in public policies and how it impacts their day-to-day life. Unfortunately, the code we write today and the impact it has on day-to-day life has coalesced into one big operational idea. In such a scenario these elected individuals will turn on to other parties for expertise. This outsourcing of ideas where a selected party can decide the fate of a software opens a pandora box of problems. The law of diminishing returns - if you have a broken system and you incorporate another broker system to fix the previous system you are now left with two broken systems and the situation is worse than before. With an organization having power to label a software as
bad introduces hierarchy which breaks the egalitarian aspect of Software Industry. For example I see organizations write books, blogs, whitepapers about ‘best practices’ which is more of a suggestion and less of a dictation.
Earlier this year I used to believe that quality of a Software is just how many test cases you write or percentage of code coverage but in reality it is how your software reacts during the times of outages along with the writing and maintaining test suites. Ideas like Chaos testing are hitting the market and scalability, load, performance, configuration testings are defined roles for the job of SDET. It is important (more than ever) now to write good code because once the government dictates terms to ‘us’ it would not only be just how to write code but also allowing a backdoor entry to government and organizations. Ed Snowden has already discussed such ideas of how quickly one can run into an overfitting problem if an organization decides to track every single user of the system. I also have my reasons to believe that success stories like the ones we have heard like an that came out of a Harvard University dorm, later become a billion dollar company, those stories will cease to exist. It’s almost funny that even a democratic system can kill the democratization of softwares in more ways than imaginable.
It is high time Software Engineers across the world decided on writing good code not just because a smelly code impacts the performance of the software but also because we are looking at the barrell of a gun and someday a major catastrophe can lead to regulations pouring in from all directions.