Off Topic: Let's All Stop the Regulation of the Systems Analyst Profession

April 19, 2008 · 💬 Join the Discussion
If you're lazy, click here for the TL;DR

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 bill is a complete waste of time and a monumental piece of nonsense.

Dear “politicians”: since you’re already burning our taxes on senseless bills, how about regulating the profession of politician? From what we can see, your profession can harm far more people, far more easily, than an unlicensed doctor performing heart surgery.

Let’s all chip in: blog about it, spread the word, and above all send junk mail to their homes (the addresses are at the link above). I have a few kilos of spare junk sitting here waiting for a destination.

It has to be fast. Time is running out.

Note: if you want to get properly outraged, read the full text of this so-called law. It would be funny if it weren’t tragic.

The short version: the bill creates thousands of sinecures (regional councils, inspectors, blah blah blah), charges us annual fees to feed those sinecures, sets us back 30 years, and stalls the country’s technological development. All that by blocking qualified professionals and clearing the way for useless diploma holders. The point here isn’t “whether degrees matter”: programmers have nothing in common with doctors or engineers.

Update 20/04/2008: Since the comments have been so good, I decided to spell out exactly why I, personally, want to box the ears of the genius who came up with this “law”.

In Brazil, whenever a new law shows up, the first question should be: who does it benefit? And no, the answer isn’t “the population”. It should be, but here it usually isn’t. That politicians and lobbyists win is old news; the real question is who else cashes in.

On top of that, every law’s justification is fallacious. Politicians are masters of argumentation; that’s why they’re politicians. Let’s go.

The Fallacy

First of all, the argument everyone loves most:

“Civil Engineers, Cardiologists, Criminal Lawyers, Accountants, all of them need degrees, all of them need a license 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?”

That’s the main argument and the key to the fallacy. The premise to break is this one: “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. Rare, but it happens. If a doctor slips, the patient dies. If a lawyer slips, an innocent person spends 30 years in prison. If an accountant slips, the client takes a serious financial hit and ends up in trouble with the tax authorities.

The bad comparison goes like this: if an “inexperienced” programmer lets a bug slip through, a computer-controlled airplane could crash. An elevator could plummet. A medical device could kill a patient. Therefore an ill-prepared programmer is as dangerous as an ill-prepared doctor, except today nobody supervises or punishes him.

Going Back in Time

Civil engineering goes back to before the pharaohs and the pyramids. Medicine goes back to tribal healers. Lawyering and the arts of argumentation have been around as long as people have.

All these professions rest on a body of knowledge that is complex, complete, and uniform. That doesn’t mean they stopped evolving. But in them, the majority just executes the techniques they learned, and a minority has the resources to research and discover new ones.

Computing is the opposite. Our field isn’t even a century old, and the market itself started less than 60 years ago. Every evolutionary leap here equals a century anywhere else.

The trouble is that our field mixes mathematics with engineering techniques. So laypeople assume it’s all the same thing: well-defined techniques with well-defined results. It isn’t. I wouldn’t go as far as Pete McBreen in Software Craftsmanship, but most people start from the wrong premises when they evaluate software.

Our field isn’t stable like the others because it evolves at full speed, and every step changes everything. A single new algorithm can change what we do. One Google, one Linux, redefines how we think about and build software.

A little over a decade ago, the internet wasn’t even mainstream. Languages and paradigms change all the time. A few years ago, Agile methodologies weren’t taken seriously at all. What you learned in college 10 years ago has already changed plenty, and 10 years from now it will be different again.

Breaking the Premise

Software developers cannot and should not be compared to doctors or engineers. We’re closer to craft, to art, to experimentation.

The same programmer changes how he does the same thing from project to project, the way an artist changes something in a sculpture. Technique refines itself through experience and through rubbing shoulders with other artists.

We combine different tools and processes, and every combination produces a different result. There are no fixed criteria defining what “good software” or “bad software” is.

Something else: 100% bug-free software doesn’t exist. Bugs are inherent to the practice. You can control them, never eliminate them. No language, platform, or set of techniques guarantees 100% certainty.

What we learned was to live with that: test suites, for instance. Even that doesn’t guarantee 100%; it only covers the most obvious bugs. Want better odds? Write more tests. But past a certain point, someone still has to guarantee the tests themselves have no bugs (!)

Some people think you just apply CMMi, PMI, or any of those fads to “guarantee” “good software” at the end of the process. Wrong again. Neither XP nor Scrum is the definitive answer, though both are a big step forward. The process that guarantees 100% certainty doesn’t exist yet.

The Diploma Fallacy

Is a credentialed musician better than Villa-Lobos? A credentialed painter better than Tarsila do Amaral? A trained writer better than Machado de Assis? Is Washington Olivetto a great ad man because he graduated? Small detail: he never finished the advertising program at FAAP.

What does that mean? That I’m against higher education? Absolutely not.

If Linus hadn’t gone through the University of Helsinki, he might never have created Linux. If Larry Page and Sergey Brin hadn’t met in Stanford’s PhD program, Google might never have existed. And the list goes on: James Gosling through Carnegie Mellon, Bill Joy through Berkeley, Bjarne Stroustrup through Cambridge, Dennis Ritchie through Harvard, Yukihiro Matsumoto through the University of Tsukuba.

Many of computing’s great names are graduates. Does that mean everyone else is doomed? 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 put it this way:

“Great programmers are not formed. Great programmers form themselves.”

Those great names finished degrees, graduate programs, and doctorates because they saw value in that education and went after it. I guarantee each of their classes had dozens of other graduates, many there out of sheer inertia. Only one of them has a Wikipedia page today.

A great artist travels to France for knowledge and inspiration on his own initiative, not because it’s homework. A great programmer reads Donald Knuth before bed because he grasps the value of algorithms, not because he needs next semester’s credits.

Brazilian Problems

The problem here is Brazil, as usual. And no, that’s not some “neoliberal right-wing” excuse.

The overwhelming majority of our universities, at least in computing, don’t come close to American ones. Sure, we have USP, Unicamp, a few federal schools. I’m not talking about the exceptions.

There’s almost no incentive for research, public or private. We have no Bell Labs, no Microsoft Research, no Google, none of the hundreds of companies that invest heavily in Research & Development. Brazilian companies don’t want to invest; they want to bill. OK, I’m generalizing; the exceptions don’t count in this argument.

Our tax and fiscal system is a national disgrace. It bleeds us every day and eats away at the country the way cancer eats away at a terminal patient. Protectionist laws that don’t work, taxes whose only purpose is to fill more public sinecures.

The original scientific research published by Brazilians is a hair next to the library of innovations coming out of the best American, European, and Asian universities. The technologies we use every day didn’t come from Brazil: we just license, import, and apply them. Even the rare exceptions of great Brazilian achievements get used more abroad than at home. The classic example: the Lua programming language, which ironically has a more complete Wikipedia page in English than in Portuguese.

If most of our colleges only teach what gets discovered abroad, what’s my incentive to graduate here? Anyone with a research vocation has to leave, like many of our best scientists do. In Brazil, scientists starve.

And if the point is to learn, years late, what’s already applied abroad, why waste the time? Luckily we have the internet now. Algorithms and data structures? Statistics and probability? Artificial intelligence, finite automata? Compilers? Non-relational databases? Modern operating systems? All of it is covered by books and the web. College to learn the principles behind modern languages? No, here college teaches Java. Sorry, that’s not nearly enough.

I spent two years at USP and simply lost the motivation to stay. I learned all the programming theory on my own. To find out the Tanenbaum book exists, I didn’t need to wait until senior year. To read Wirth’s book, I didn’t need to enroll at all. Where was the innovative research that would have kept me there? The great names publishing new work? The motivation to stick around for four years or more?

And after graduation? Is there any real incentive for grad school, a doctorate, my own research? In the private sector, would any company hire me to do research? And if I opened my own company, could I keep it alive?

Being an entrepreneur in Brazil is a Herculean task. You need to be Achilles to avoid getting crushed by the elephant of the government machine. Opening a company here practically makes you a criminal. Brazil rewards the “jeitinho” and the quick payoff, because long-term here is close to a synonym for losses. That’s why an iPhone would never come out of a Brazilian company, and the next quantum processor will never come out of a Brazilian institution. Importing technology is cheaper, easier, and more profitable than creating it, even with protectionist tariffs.

In short: if the only incentive is to collect a piece of paper after four years because some law demands it, keep my urine test. It’s cheaper.

“Jeitinho,” a National Pride

Bad universities, bad companies, unmotivated students, no new technology. In that downward spiral, the “regulatory law” makes even less sense.

First of all, a law that regulates what can’t be regulated serves one purpose: raising more funds for the brothels of Brasília.

Our universities, as a whole, are very bad. The way we popularized “generic medicines”, we created “generic universities”. Every day another Uni* pops up with two-year, MEC-approved programs churning out “professionals”. They exist precisely for the reasons I listed: once a degree became mandatory bureaucracy, Brazilians invented a way around it. If companies want paper, paper they shall have, costing less time and less money.

Let’s define what such an agency would regulate. “Certified” software would be whatever is made by diploma holders, under an ISO-whatever process, with the stamp of an “authorized inspector”, written in Java and running on Windows servers. Piece of cake.

It’s public and notorious that most software service providers, a.k.a. “consultancies”, are a byproduct of these conditions. A byproduct of the “jeitinho”. None of them has any interest in quality, research, or training. If they run “education centers” to certify employees, it’s solely and exclusively because government bids demand the paperwork.

They’re the ones who make a developer’s life harder. The government has no competence to run software projects, every project costs an order of magnitude more, and the easy conclusion is to blame the consultancies. Guilty they are, but here the spell backfires on the sorcerer: the government itself created these aberrations, with moves exactly like this “regulatory law”.

Creating regulatory bodies that have no clue what they’re regulating is my very definition of a patronage job factory: one more corps of inspectors to bribe. It’s one more cost every company will pay to keep operating, one more obstacle in the absurd daily bureaucracy. Overnight a new category of “fixers” is born to route around it, plus more work for lawyers.

What Does This Law Do for …

  • software company clients? Nothing. Whoever got bad service will keep getting it, only pricier. Whoever had good service may lose it, because many good professionals will be barred from working and the bad ones will take their seats.

  • software companies? Nothing. Hiring good people gets harder, bureaucracy costs go up, and early on there may even be price inflation for those already holding diplomas. One more cost to pass on to the client, one more pain in the neck.

  • micro-entrepreneurs investing in software? Nothing. Many lived off quality as their only edge and can’t afford the costs (bribes). Either they adapt with great difficulty, or they shut down.

  • good programmers? Nothing. The graduates keep working, now paying a CREA-style fee that protects no rights and still gets in the way all the time. Creativity loses, because the work will have to follow arbitrary, illogical “standards”. Whoever can afford it leaves the country.

  • bad programmers? Everything. The graduates just got a protectionist law that benefits them with or without effort, plus more demand and free sinecures to hang on. The ones without degrees will rush to get them, and the generic Uni* shops win too, selling paper at gold prices and getting rich in the process.

  • the middlemen? Everything. From the Uni* schools packing their bottom-quality “programs” to the connected fixers offering under-the-table exits through government offices to whoever can pay. On top of that, a new figure appears: the “licensed professional” who signs off on projects built by better “unlicensed” ones. A signature will be worth money.

  • the politicians? Everything. More sinecures, more jobs for relatives and friends, more executive positions to trade. More lobbyist bribes. More money squeezed from honest professionals paying arbitrary fees like this one. Most of the population, which doesn’t understand the subject, gets fooled again, and they get reelected. Absolutely nothing to lose.

  • the population at large? Zero. Brazilian tech was already moving slowly anyway; this is just one more brake. With luck we won’t start rolling downhill again. Combined with anachronistic laws like the market reserve, with its insane tariffs on imported electronics, this bill pushes 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, may tragically end up pushed into becoming terrible ones.”

“Terrible professionals are not formed. Terrible professionals will always be terrible. There’s no hope for them.”

I don’t care whether someone has a degree or not. I care whether the professional is good.

  • A good professional studies and researches on his own, since nobody encourages him.
  • A good professional is always concerned about the quality of his own work, even when nobody rewards it.
  • A good professional helps others, even when they stab him in the back.
  • A good professional spends his free time in communities, spreading information and trying to improve the field, even if it earns him a stress crisis.
  • A good professional, in Brazil, is a survivor: despite all this, he still wants to get better and learns to live in the jungle.
  • A good professional has to be practically Chuck Norris.
  • A good professional keeps fantasies of a .44 Magnum aimed at every politician’s head.

Terrible people are terrible professionals. Every politician, by definition, is a terrible professional.

  • A terrible professional is dead weight. He goes to college for the diploma; learning is the last thing on his mind.
  • A terrible professional lists his 10 certifications at the top of his résumé.
  • A terrible professional laughs at laws like this one: they only improve his situation.
  • A terrible professional roots for the sector’s decay, because in the short term he profits from it.
  • A terrible professional loves protectionist laws, because they always protect types like him. After all, the people writing those laws are terrible professionals themselves.
  • A terrible professional is like a cockroach: disgusting and hard to kill. Eventually, some terrible professionals become politicians.

Some say I’m just a pessimist. Am I?