Off Topic: Let's All Stop the Regulation of the Systems Analyst Profession
Update 25/08/2009: The law has already been approved by the CCJ and is heading to the CAS. This is going too far!
Update 21/04/2008: This post by Paulino Michelazzo is very good. Recommended.
Rodrigo Kumpera said it all — this ‘systems analyst’ regulation law is a complete waste of time and an enormous piece of nonsense.
Dear “politicians”: given that you’re already wasting our taxes on senseless legislation, how about regulating the profession of politician? As we can all see, your profession can cause more harm to far more people, far more easily, than an unlicensed doctor performing cardiac surgery.
Let’s collaborate: blog about it, spread the word, and most importantly, send junk mail to their homes (addresses at the link above). I have a few kilos of excess junk sitting here waiting for a destination.
But we need to be quick! Time is running out.
Note: if you want to get properly outraged, just read the full text of this so-called law. It would be funny if it weren’t tragic. In summary, it exists to create thousands of patronage jobs (regional councils and oversight bodies, blah blah blah), to rob us (annual fees to these patronage bodies), to set us back 30 years, and to hamper the country’s technological development by blocking qualified professionals from working while paving the way for useless diploma-holders (this isn’t a discussion of whether ‘diplomas matter’ — the point is that programmers have nothing in common with doctors or engineers).
Update 20/04/2008: Since the comments are good, I resolved to add exactly why I personally want to slap the unfortunate person who came up with this “law.”
At least in Brazil, every time a new law is proposed the first question everyone should ask is: who does it benefit? And no, the answer is not “the population.” It should be, but in Brazil it normally isn’t. That it benefits politicians and lobbyists is no news. We need to analyze, in fact, who actually wins from this.
Beyond that we need to understand that every law’s justification is fallacious. Politicians are masters of argumentation — that’s why they’re politicians. Let’s go.
The Fallacy
First and foremost, the argument everyone loves most:
“Civil Engineers, Cardiologists, Criminal Lawyers, Accountants — all of them need degrees, all of them need licenses to work, all of them pay regulatory councils, in short, all of them are ‘regulated.’ Why do programmers, analysts, and computer scientists think they’re more ‘special’ and don’t need any of this?”
This is the main argument and the key to this fallacy.
First, let’s break the premise of this fallacy: that “software developer belongs in the same category as civil engineer, doctor, or lawyer.”
If an engineer builds a bad structure, it collapses. If it collapses, people die. This is rare, but it still happens.
If a doctor makes a mistake, the patient dies. If a lawyer makes errors, an innocent person spends 30 years in prison. If an accountant makes errors, clients suffer significant financial losses and a tarnished reputation with the tax authorities.
The erroneous comparison goes like this: if an “inexperienced” programmer makes a mistake and leaves a bug behind, a computer-controlled airplane could crash. A computer-controlled elevator could plummet. A medical electronic device could kill a patient. A computerized car could crash.
Therefore, an ill-prepared programmer is no less dangerous than an ill-prepared doctor. And worse, today they’re not considered a danger and therefore are not properly monitored or punished.
Going Back in Time
First of all, civil engineering has roots going back to before the time of the pharaohs and the pyramids. Thousands of years. Medicine also has ancient roots, from tribal healers to today. Advocacy and all argumentation techniques have existed as long as people have.
Any of these professions involve an extremely complex body of knowledge, and most importantly, a much more complete and uniform one. That doesn’t mean they’re not constantly evolving. But the profession is divided between those who merely execute learned techniques (the majority) and those with the resources to invest in research and discover new techniques (the minority).
Computing, in general, is the opposite. To begin with, our field isn’t even a century old. The market itself started barely 60 years ago. Unlike other fields, every evolutionary leap in our area is like jumping a century ahead in other domains.
The biggest problem with our field is that it involves both mathematical knowledge and engineering techniques. And with that, laypeople believe it’s the same thing: well-defined techniques with well-defined results.
That’s not the case. I wouldn’t go as far as Pete McBreen in Software Craftsmanship, but it’s undeniable that most people start from the wrong premises when evaluating software.
Our field is therefore not as stable as others because we’re in accelerated development where each step completely changes the landscape. A single new algorithm can change everything we do. A Google, a Linux is capable of redefining how we think about and build software.
A little over a decade ago, the Internet wasn’t as widely adopted as today. Languages change all the time, including programming paradigms. Just a few years ago, Agile methodologies weren’t taken seriously. What was learned in university 10 years ago has already changed a great deal. Ten years from now things will be different again.
Breaking the Premise
Software Developers therefore cannot and should not be compared to doctors or engineers. We’re closer to the ‘craftsmanship’, to ‘art’, meaning, to experimentation.
A single programmer changes how they do the same thing from project to project. Exactly like an artist changes something in a sculpture. The technique ‘refines’ with experience and time spent with other artists.
We combine different tools, with different processes, and each combination yields very different results from another. There are no fixed criteria for defining what “good software” or “bad software” is.
Another thing: it’s impossible to make software that is 100% free of errors. Bugs are artifacts inherent to our practice and cannot be avoided. They can be controlled but never eliminated. There is no single language, single platform, or single set of techniques that guarantees, with 100% certainty, that bugs don’t exist.
One thing we’ve learned is to understand that bugs exist and, for example, to prepare proactively with test suites. But even that doesn’t guarantee 100% — it only ensures the most obvious bugs were probably addressed. Want to increase the probability of correctness? Increase the number of tests. But even then, beyond a certain size or quantity, someone would need to guarantee that the tests themselves don’t have bugs (!)
As for processes, some think it’s enough to apply CMMi, PMI, or any of these things to “guarantee” “good software” at the end of the process. Another mistake. Not even XP or Scrum are the definitive answers — though they’re obviously a big step forward. The process that guarantees 100% certainty still doesn’t exist.
The Diploma Fallacy
Would a credentialed musician be better than Villa Lobos? Would a credentialed painter be better than Tarsila do Amaral? Would a credentialed writer be better than Machado de Assis? Is Washington Olivetto a great advertiser because he graduated? Oh wait — he never finished his advertising program at FAAP.
What does this mean? That I’m against higher education?
Absolutely not. If Linus hadn’t gone through the University of Helsinki, he might not have created Linux. If Larry Page and Sergey Brin hadn’t done PhDs at Stanford University, they might never have met and Google might not have existed. The list goes on: James Gosling through Carnegie Mellon, Bill Joy through Berkeley, Bjarne Stroustrup through Cambridge, Dennis Ritchie through Harvard, Yukihiro Matsumoto through Tsukuba University.
In short, many of computing’s great names appear to be university graduates. What does that mean? That all of us without degrees are lost?
No, the problem here is the Informal Fallacy:
“Many great computer programmers have degrees. Therefore, the key to becoming a great programmer is getting a degree.”
Given the two scenarios above — artists and programmers — I’d say this:
“Great programmers are not formed. Great programmers form themselves.”
The fact that these great names finished their university programs, graduate studies, and doctorates indicates only that they identified value in that education and pursued it. I guarantee that in each of their graduating classes there were dozens of other graduates, many there merely by inertia. But only one of them has a Wikipedia page today.
A great artist travels to France in search of knowledge and inspiration on their own initiative, not because it’s a class assignment. A great programmer reads Donald Knuth before bed because they grasp the value of algorithms, not because they need credits for next semester.
Brazilian Problems
The problem here is Brazil, as usual. And no, that’s not a “neoliberal right-wing” excuse.
To begin with, the vast majority of our universities — at least in computing — don’t come close to American universities. Yes, yes, we have USP, Unicamp, some federal universities. I’m not talking about the exceptions.
There is almost no incentive for research, neither from the public sector nor the private sector. There is no equivalent of Bell Labs, Microsoft Research, Google, or the hundreds of other companies that invest heavily in Research & Development. Brazilian companies don’t want to invest, they want to profit. Ok, I’m generalizing — don’t count the exceptions in this argument.
Our tax and fiscal system is, clearly, a national embarrassment. It bleeds us daily and destroys the country like a terminal cancer patient. Protectionist laws that don’t work, taxes whose only objective is to fill more and more public patronage positions.
The amount of original scientific research published by Brazilians is a hair’s breadth compared to the massive library of innovations coming out of the best American, European, and Asian universities. All the technologies we use in our daily lives didn’t come from Brazil. We only license, import, and apply these technologies here. Even the rare exceptions of great Brazilian achievements are used more abroad than here. The classic example? The Lua programming language which, by ironic coincidence, has a more complete Wikipedia page in English than in Portuguese.
If most of our colleges and universities are limited to teaching what is discovered abroad, what’s my incentive to graduate here? If I had a calling for research, I’d need to train abroad (which is what many of our best scientists do). Scientists in Brazil starve.
And if it’s about learning, with significant delay, what’s already being applied abroad — why waste my time? Fortunately we have the internet today. What I want to learn: algorithms and data structures? Statistics and probability? Artificial intelligence, finite automata? Compilers? Non-relational databases? Modern operating systems? Which of these subjects isn’t covered by books and the web? Am I going to university to learn the principles of building modern languages? No — here we go to university to learn Java. I’m sorry, but that’s not enough.
I went through USP, spent 2 years studying there, and simply lost my motivation to continue. I learned all the programming theory on my own. I didn’t need to enter university to know the Tanenbaum book exists. I didn’t need to get into university to read Wirth’s book. Where are the innovative research projects that would keep me there? Where are the great names publishing new work? Where is the inspiration and motivation to keep me there for 4 or more years?
And after I graduate? Is there any real incentive for me to do postgraduate studies, a doctorate, and start my own research? Or if I go into the private sector, will companies hire me to do research? Or even if I want to start my own company, will I be able to sustain it?
In Brazil, being an entrepreneur is a Herculean task. You need to be Achilles to avoid being crushed by the oppressive government machine. You are practically a criminal for opening your own company. Brazil incentivizes the “jeitinho” (taking shortcuts), rewards quick and easy gains, because long-term here is practically synonymous with loss. Companies that survive long-term got vaccinated and continue that way. That’s why an iPhone will never come from a Brazilian company. That’s why the next quantum processor will never come from a Brazilian institution. It’s cheaper, easier, and more profitable to import technology than to create it — even with protectionist tariffs.
In short, if my incentive is merely to receive a piece of paper at the end of 4 years because some regulatory law will require it, then keep my drug test — it’s cheaper.
“Jeitinho,” A National Pride
Since we’re in a downward spiral — bad universities, bad companies, unmotivated students, no new technology, etc. — this ridiculous “regulatory law” makes even less sense.
First of all, a law that wants to regulate something that isn’t regulatable is just an order to collect more funds for the Brasília brothels.
For starters, our universities — as a whole — are very bad. Just as we invented ‘generic medicines’, we also invented ‘generic universities’. Every day a new Uni* appears with 2-year programs approved by the MEC, turning out ‘professionals’. They exist precisely for the reasons I mentioned above: since getting a degree became a necessary bureaucratic hurdle, Brazilians were incentivized to find ways around the bureaucracy. If companies want a piece of paper, then paper is what we’ll give them — but at least it will cost less time and money.
Let’s define what such an oversight body would regulate. ‘Certified’ software would be considered any software made by credentialed people, using an ISO-whatever process, approved by an ‘authorized inspector’, built in Java, and run on Windows servers.
Too easy.
It’s public knowledge that the vast majority of software service providers — colloquially ‘consultancies’ — are a byproduct of the conditions I described above. A byproduct of the ‘jeitinho’. None of them have any interest in improving quality, encouraging research, or encouraging education. If they have ’training centers’ to certify their employees, it’s solely and exclusively because government bids require such papers.
They’re the ones who make a developer’s work even harder, because the government has no competence to lead software projects, every project ends up costing at least an order of magnitude more, and the conclusion is that these consultancies are to blame. And they are — except that here the spell is turning against the sorcerer, because it was the government itself that created these aberrations with exactly this kind of “regulatory law.”
Creating oversight bodies that have absolutely no idea what they’re overseeing is exactly what I define as patronage jobs — they’ll be one more corps of inspectors to bribe. It’s one more cost every company will need to pay to keep operating. In short, it will be just one more obstacle in the already absurd bureaucracy we deal with every day. Overnight, as a result, a new category of ‘fixers’ will emerge to navigate around these bureaucracies. One more new category in law and more work for lawyers.
What Benefits Does This Law Bring to…
clients of software companies? None. If they were already receiving bad services, they’ll continue receiving them — just more expensive. If they had good service, they’ll stop getting it since many good professionals will be barred from working while many bad ones take their place.
software companies? None. It will only make it harder to hire good professionals, increase costs with bureaucracy, and initially perhaps even create some inflation in prices for those who already hold diplomas. It’s just one more cost to deal with, one more cost that needs to be passed on to clients. In short, one more headache.
micro-entrepreneurs investing in software services? None. Some will need to close their doors since their only differentiator was often the quality of their work, but with arbitrary regulations like this, they won’t be able to afford the costs (bribes) and will either struggle greatly to adapt or eventually fail.
good programmers? None. Those already credentialed continue working but now paying the equivalent of a CREAsystem fee that, beyond not protecting their rights, will constantly attack them for nothing. There will be demotivation toward creativity since their work will need to follow arbitrary and illogical ‘standards’ and eventually those who can afford to will leave the country.
bad programmers? Everything. Those already credentialed just got a protectionist law that will benefit them with or without effort. They might start earning more. There will be higher demand and they get patronage jobs handed to them for free. Those not yet credentialed will want to get degrees, in which case the generic Uni* institutions also win — they’ll distribute papers at gold prices and get rich in the process.
middlemen? Everything. From the Uni* schools that will get more enrollment in their ‘programs’ of lowest quality, to the informal professionals who have ‘connections’ with government bodies and will offer ‘under the table’ solutions to whoever can pay. On top of that the role of ‘credentialed professionals’ who can sign off on projects done by better ’non-licensed professionals’ will become popular. A signature will be worth money.
politicians? Everything. More patronage jobs, more places to employ family and friends, more executive positions to negotiate. More lobbyist bribes. More money extracted from honest professionals who pay arbitrary taxes and fees like this one. Most of the population will be fooled again because they don’t understand the matter and politicians get re-elected. Absolutely nothing to lose.
the general population? Zero. Brazil’s technology sector was already moving slowly regardless; this is just one more brake. With luck we won’t start rolling backwards, downhill again. Along with anachronistic laws like the market reserve that imposes insane tariffs on imported electronics, this will be one more that sets the Brazilian IT market even further behind the rest of the world.
Programmers
“Good professionals are not formed. Good professionals form themselves. Good professionals, in Brazil, tragically may end up being pushed to become terrible professionals.”
“Terrible professionals are not formed. Terrible professionals will always be terrible. There is no hope for them.”
I don’t care whether a person has a degree or not. I care whether the professional is quality.
- A good professional studies and researches on their own — since nobody incentivizes them to.
- A good professional is constantly concerned about the quality of their work — even if nobody rewards them for it.
- A good professional helps others — even if those others stab them in the back.
- A good professional still uses their free time to participate in communities, disseminate information, try to contribute to improving the field — even if it gives them a stress crisis afterward.
- A good professional in Brazil is a survivor; despite all this they still want to improve and have the ability to survive in the jungle.
- A good professional practically needs to be a Chuck Norris.
- A good professional harbors fantasies of seeing a .44 Magnum pointed at the head of every politician.
Terrible people are terrible professionals. Every politician, by definition, is a terrible professional.
- A terrible professional is a freeloader. Goes to university not to learn but to get the diploma.
- A terrible professional lists their 10 certifications at the top of their resume.
- A terrible professional laughs at laws like these: they will only improve their situation.
- A terrible professional roots for the sector’s deterioration, because in the short term they benefit from it.
- A terrible professional loves protectionist laws, because they always protect types like them — after all, whoever creates these laws are, in themselves, other terrible professionals.
- A terrible professional is like a cockroach: disgusting and hard to kill. Eventually some terrible professionals become politicians.
Some say I’m simply pessimistic. Am I?