So – let’s imagine a world without lawyers. (Side note: What do you call a bus full of lawyers driving off of a cliff? A good start!)
Ok. That was peaceful for a moment, but then the problems start mounting. Without lawyers, who decides the law? Police do. And while I respect the police, and think many of them do a fine job, there are bad cops out there, who do bad things. One needs only glance at the Internet to see story after story after story of police abusing the law, abusing rights, abusing due process.
If you get arrested, who helps you? I mean: let’s say you are at a train station, and you have the flu, and suddenly you vomit on the floor in front of someone. He tries to leap out of your way, knocks a woman over, and she falls onto the tracks. The police arrest you for battery, because you should have known better than to go to the train station when you were feeling nauseated.
Now, maybe you’re really smart, and you can master the law books and the case history and come up with a compelling defense for yourself. Maybe you can quickly master all of the “ceremony” attached to the courts – filling out the right forms at the right time, using the special magic words, bringing in the right data, etc, etc, etc. But if you can do all of that, you are a massive outlier. Most people couldn’t even hope to comprehend all of that, and the few that can require years and years of training to do it well.
Do you know what we call the equivalent of that in the software world? Debugging.
Law is hard. The legal codes are incredibly complex, full of specialized knowledge and specialized skills. Most people aren’t equipped to be lawyers. Software (rules to govern the execution the series of steps within a process) and law (rules to govern the rights, privileges and responsibilities of the people, and the processes by which those rules are enforced) are incredibly similar. Being good at software requires many of the same skills as being good at law: the ability to create mental models of the entire system in your head, all at once (or at least, of the subset of immediate consequence). The better and bigger (i.e. incorporating more rules) model you can carry in your head, the better you are at law, and the better you are at software.
Lawyer movies & TV shows, especially the funny ones, do this constantly – for example, how the cases wrap up at the end of Legally Blonde, and Liar Liar – specialized knowledge pulled from an entirely unrelated area of the law suddenly undermines the case.
But that’s my life, almost every day – “Bad thing X is happening.” To figure out why, I have to examine logs, examine the code, examine the database, test hypotheses, think about side effects and consequences and come up with a reason why, and a way to fix it. I pull in knowledge from all sorts of areas, and because I have decades of experience, I can do that without a second thought… usually.