Programmers don’t need a union. We need a profession.

Every so often, I read a blog post or essay about the undesirable state of the software industry, and occasionally someone will suggest that we ought to unionize, in order to put an end to long hours and low pay compared to the value we produce. The argument is that, because software engineers are potentially worth millions per year to their employers, collective bargaining is the best way to capture more of this value. I disagree that a labor union is the way to go, because of the highly variable output of a software engineer, and the need for continuing education in this line of work. What we actually need is a profession.

Unions work best for commodity labor, and I use that term non-pejoratively. Commodity work is easily measurable and people can often be individually evaluated for performance. For example, a fishing boat operator is measured according to the quantity of fish she procures. A lot of very important work is commodity labor, so I don’t intend to disparage anyone by using that term. Commodity work can be unionized because there aren’t large and often intangible discrepancies in quality of output, and collective bargaining is often the best way to ensure that the workers are fairly compensated for the value they produce. Software is not commodity work, however. It’s difficult to measure quality, and the field is so specialized that engineers are not remotely interchangeable. When the work is difficult to measure and large disparities of quality exist, you have a situation in which a certain less-egalitarian (in the sense of allowing top performers to receive high compensation, because it’s essential to encourage people to improve themselves) and more self-regulatory structure is required: a profession.

The term professional is one of the most overused words in the English language, conflated often with white-collar work in general. If you work in an air-conditioned environment, someone will call you a professional. Most white-collar workers are not professionals, even in industries like investment banking, consulting, and management. Professionalism has nothing to do with social status, job category, or behavior (in the sense of an “unprofessional comment”). Rather, it’s all about a certain style of ethical structure, and the structure of a profession is nearly nonexistent in most white-collar industries (and under attack within the true professions).

What is a profession?

A profession is an attempt to impose global structure over a category of specialized, cognitively intensive work where the quality of output has substantial ramifications, but is difficult (if not, in the short term, impossible) to measure, giving ethics and competence primary importance. A profession is needed when it’s clear that not everyone can perform the work well, especially without specialized training. Here are some traits that signify the existence of a profession.

  1. Ethical obligations that supersede managerial authority. Professions have global ethical standards that the professional may not break, even under pressure from an employer. “Following orders” is not a defense. Therefore, the professional is both allowed and required to be autonomous in ethical judgment. It is rare for people to be fired, in true professions, because of disagreements with managers or political misfortune, but unethical behaviors are punished severely (in the worst cases, leading not only to termination but expulsion from the profession). This said, ethical demands on a profession may not match the common sense we have of ethics; they must be industry-specific. For example, attorneys’ stringent requirement to keep client information secret (attorney-client privilege) supersedes concerns regarding whether the client’s behavior itself is ethical; it’s not for the attorney to make that call.
  2. Weak power relationships. This is directly related to the above. In order to prevent the ethical lapses that are disturbingly common in non-professional work, and the abuses of power that are often behind those, professions deliberately weaken supervisory power relationships, with the intention of making it difficult for a manager to unilaterally fire an employee or damage his reputation. The result of this is that professionals answer to their companies or the profession directly. Professions attempt deliberately to be “bossless” so people will do what’s right rather than what’s politically expedient.
  3. Continuing improvement and self-direction as requirements. The professions assume change both in terms of what kinds of work will be valuable, and of what tools will be available to do it, and expect people to dedicate time to adapt to it without managerial permission or direction.
  4. Allowance for self-direction. Professionals are expected to place their career objectives at a high priority, since they serve the profession and their employers by becoming better at their work. Traditionally, metered work (that is, work directly relevant to the line of business) expectations in professions have been about 800 to 1200 hours per year, with the expectation that an equal amount will be spent on “off-meter” work such as attending conferences, reading journals, pursuing exploratory projects, mentoring others, and (at senior levels) looking for business or supporting the profession.
  5. Except in egregious cases, an agreement between employee and firm to serve each others’ interests, even after employment ends. Professionals are almost never fired, in the cinematic sense of the word. If a firm wants to get rid of someone, that person is encouraged to look for new employment on working time, and therefore allowed to represent himself as employed and retain an income during the job search. When people actually are fired, they’re typically offered a severance. In the rare case that a professional firm must lay people off or close an office for economic reasons, it gives as much notice as it can of the change, and announces the layoff in the public to protect departing employees’ images. That employee will almost always be given a positive reference (not the neutral “name and dates” reference that is often taken as negative) in exchange for his time. Efforts are made to protect the reputations of departing employees, who are expected to return the favor by speaking well of previous companies and colleagues. Additionally, employees who leave the firm are treated as alumni rather than deserters.

If I were to sum it up, I’d say that professionalism is about liberal service, and my use of the word “liberal” has nothing to do with political ideology. Rather, it’s the same etymology as “liberal arts”, where “liberal” means “pertaining to free people”. Professional service is that which is judged to be intellectually and ethically demanding enough that it should only be done by free people, not serfs or “wage slaves” who lack the autonomy for trust to be placed in them. The efforts that professions exert to curtail managerial authority are in place to prevent situations of ethical compromise, as well as political influences that might result in inferior work.

This is not to say that the professions are workplace utopias. I doubt that any workplace is perfectly clean, politically speaking, and the imperatives of a profession may improve behavior, but can’t change human nature wholesale. What I would argue, however, is that the global structure and protection of a profession protects the individual worker, to some degree, from local adversity. A doctor can be fired by his supervisor, but he’s still a doctor. Regular workers lose their credibility when their employment ends. Professionals don’t.

It’s all about the “Bozo Bit”.

The difference between a profession and regular work is the default assumption about an unknown person’s character, intellect, and competence. In typical industrial work, the “Bozo Bit” starts out in the “On” position, meaning that a typical worker is assumed to be stupid, treacherous, and useless. Since barriers to entry are low, the only thing that defines a worker is wanting money, and being willing to do unpleasant tasks in order to get it. There’s no respect for the average, individual member in such an industry; the default assumption is incompetence, ethical depravity, and childlike stupidity. One has to prove non-bozoism, which is usually established with a managerial role or other formal sanction: a “manager-equivalent” job title. (Non-professional companies typically make the work environment bad enough for non-managers that the default assumption is that anyone competent will become a manager.) Proving non-bozoism is often very difficult to do, because workers who attempt to do so are often fired for attempting to make their case instead of doing their assigned work. If you’re assumed to be a bozo, you probably won’t get the autonomy that would enable you to prove otherwise.

In this style of working environment, people without official managerial sanction (such as coveted job titles) have no credibility and therefore can be discarded on a whim. People with such decorations have only minimal power, because they can be deprived of these assets immediately, and often unilaterally. The result is an environment where all the power is held by the people who disburse funds, job titles, performance reviews, and authority, and in which the workers have none. Except at the top, there is no autonomy, because a manager can reduce the worker’s credibility to zero for any reason or no reason at all.

Professions clear the Bozo Bit (i.e. default it to “Off”) by making it difficult for incompetent people to enter, and punishing objectively unethical people severely. This gives people the assurance that a professional is highly likely to be both competent and ethical. In doing so, they create a high-trust zone. A person who completes medical school is a doctor and, unless the license is revoked because of a serious ethical lapse, has valuable expertise. No manager or employer can take that credibility away for political reasons.

Is software engineering a profession?

No. It’s not.

Professionals have the right to disobey managerial authority if they believe they are ethically right in doing so. On the other hand, a software engineer who refuses to cut corners or hide defects under managerial instruction has no recourse and will probably be fired.

Professionals take great pains to avoid disparaging others’ work in the public, preferring to keep feedback private. Many software engineers work in companies where performance reviews are part of an employee’s packet any time she wishes to transfer, and wherein a negative review can leave a person internally black-listed.

Professionals are allowed and expected to dedicate about half their working time to career development and continuing education. Many software engineers will get fired if they get caught in that.

Professionals have an external credibility that is independent of reporting to a specific manager or being employed at a specific firm, which enables them to serve the profession and the abstract ethical principles it values. The rest of workers don’t. They have managers who can unilaterally fire them from their current jobs (or, at least, damage their reputations through the aggressive performance review systems that are now the norm). Therefore, they have no option other than to serve their direct manager’s career goals, even if those diverge from the company’s needs or the employee’s long-term career objectives.

Most software engineers fall into the “rest of workers” category. They don’t have the right to buck managerial authority, and companies rarely allot time for their continuing education and career needs. Some have to fucking use vacation days to attend conferences!

Are the professions still relevant?

In Corporate America, the professions have been losing ground for at least half a century. Attorneys’ metered work demands have grown substantially, so that associates can’t participate in the off-meter work on which their careers depend, resulting in slowed development. It’s now typical that a “biglaw” associate is expected to log 2000 billable hours (metered work) and it’s therefore nearly impossible for her to build the business contacts necessary for transition into partnership. Academia and basic research have lost most of their funding and prominence. Professionalism remains in medicine for doctors, but the aggressively anti-professional insurance companies are working just as hard to deny care as doctors do to deliver it. Journalism is becoming more about entertainment, as objectivity is thrown to the wind by many participants. In sum, it seems that all of the professions have seen an erosion of status and, for lack of a better word, professionalism over the past few decades.

Why is the corporate world killing the professions? There’s an irreducible disparity between the professions and corporations. Professions are republics that exist to serve global, ethical objectives, and professionals happen to make money because the service they provide is valuable to others. Corporations are autocratic, amoral machines that exist to make money regardless of whether they provide any useful service, and the scope of service expected is local: take direct orders, don’t think for yourself. Workers serve their managers, who serve executives, and executives serve the short-term vacillations of the company’s stock price. A worker doesn’t have the right to prioritize work that she considers more beneficial (for the company, or the industry) than what her manager has told her to do. In the non-professional world, she doesn’t get to make that call.

Contemporary corporate leaders consider the professions to be archaic (I consider them to be archaic, but I won’t go there just yet) relics of a pre-capitalist era, unable to compete in a more ruthless business environment. This explains their scorn for government officials, journalists, and most especially professors who are “insulated” from the market. From a business person’s perspective, what the professions value is, if not supported by the market, then not worth preserving. (One exception: attorney-client privilege is a very strong ethical demand for lawyers, and business leaders are very glad for that one!) For this reason, they’re hostile toward the core ideas coming out of professions: the right to resist authority, the expectation of doing what is right rather than what is expedient, the diversion of half one’s working time into continuing growth and development, and the encouragement to seek external visibility that gives a person credibility independent of employment status. Finally, business leaders view professions, which intercede against managerial authority and thereby confer benefits on the professionals, as extortive institutions like guilds, or perhaps even command economies.

Why are the business leaders wrong? They are right about the superiority of market economies over command economies, but I don’t think that point is in contention anymore. They are wrong because they believe the professions can’t thrive in the market. That they can has been proven by a Seattle video game company called Valve, one of the only companies to truly professionalize software development, and one of the most successful software companies on Earth.

I’ve written a lot about Valve and its open allocation policy, under which engineers are trusted to move their desks to join another team as they wish. There’s no transfer process, and teams don’t have “headcount” constraints. Projects that no one wants to do don’t get done, unless they are genuinely important enough for the executives to create an incentive for it. Project supervision is driven by leadership and consensus rather than executive authority. What is open allocation about, philosophically? (For more about Valve’s open allocation, read this excellent blog post by Yanis Varoufakis.) It’s about professionalizing game and software development. Engineers are actually trusted to work for the company, rather than a manager who might use authority to divert their efforts toward the manager’s own goals (including preservation of the power relationship). Valve’s employees have an ethical commitment– make Valve better– they are expected to hold, but they have autonomy in how they do so. They live in the sort of high-trust zone that professions exist to create.

Not only do I believe that the professions can thrive in the market, but I think that professionalized software development will be superior to the industrial-age managed framework. Most of the progress in software comes from creative successes, which can be thought of as black swans. It is impossible to manage them into existence, and subordination will kill them before they are born. The best you can do, if you have managerial authority, is to use it as rarely as possible. At scale, you can be confident that people will come up with great ideas, and that enough of them will be profitable to justify the time and resources committed.

Ethics of a Technologist

Should software become a profession? I would say that the answer is a resounding “yes”. This emerging profession should not require expensive schooling. One of the things that’s great about programming is that no educational credential is required to enter, and I think we should keep it that way. However, I think that the idea of a global ethical structure is a sound one, and here are some thoughts.

I am using the term “technologist” for two reasons. The first is that I don’t want to limit my scope to software engineers, but to include a larger set of people who work on technology, such as designers and software testers and startup founders. The second is that the most important thing for a technologist to do, at a given time, may not be to write code. Sometimes, writing more code is not the answer: cleaning the existing stuff is better. As professionals, we should expect ourselves to do what is right for the problem we are trying to solve, not what allows us to write the most code.

Here are some basic, bedrock ethical principles that I think should be part of the technologist profession.

  1. Technologists do not create an inferior product for personal or single-party gain. We do not create “logic bombs” to extort clients or “back doors” that allow us to exploit systems we create. We do not create bugs for the purpose of “finding” them later. While we cannot ensure perfect software quality (it’s mathematically impossible to do so) we will not compromise on quality unless we believe it to be in the interest of all parties involved. We deliver the best product or service we can with the resources given to us, and if the resources given are not enough, we voice that concern.
  2. Technologists collaborate. We do not compete by harming another’s performance. We believe the world to be positive-sum and our industry is structurally cooperative. Therefore, to the extent that we compete, it’s in the direction of making ourselves better at our jobs, not making others worse. We also do not make technical decisions for the purpose of reducing another technologist’s ability to perform.
  3. Technologists do not disparage another’s performance to a non-technologist. Ever. All people with managerial authority are considered “non-technologists”, in the context of this item. Put simply: we don’t sell each other to outsiders. People who break this policy are fired for life from the profession. We handle our own affairs, period. If we need to remove a technologist from our team for reasons of incompetence or non-performance, we have the right to tell a non-technologist that this person cannot continue as a member of the team, and we are neither obligated nor allowed to give further reasons. We handle matters among ourselves, and do not attempt to use managerial warlords for personal gain. It’s up to us to form and disband teams, and to expel problematic members.
  4. Technologists choose their own leaders. It is not for non-technologist meddlers to decide who are the leaders of our groups. We shall not answer to stooges selected by executives. We choose our leaders, typically through democratic processes, and leaders who fail to serve the groups they are supposed to lead shall lose that distinction.
  5. Technologists work for the greater good of the company that employs them, the Technologist profession, and the greater good of the world. We serve the world first; our job is to make it better by improving technical processes, solving difficult but important problems, and advancing the state of science and rationality. Secondarily, we serve the Technologist profession and its values. As a tertiary concern, we act in the interests of our employers. We solve their technical problems and work to improve their infrastructure. Technologists are trusted to serve their employers directly, and any management that exists must be purely for providing guidance, not an irresistible authority. As a quaternary concern, technologists are expected and allowed to prioritize their own career growth, making themselves more valuable in the future.
  6. Technologists are trusted to work on any project that will have them. It is the right of the project owner to allow (or expel) members. Projects shall not be constrained by “head count” limitations set by non-technologists, who are to be deemed unqualified to make such distinctions.
  7. Technologists deliver on commitments they make. If a technologist cannot meet a commitment, he or she explains the cause as soon as possible, and attempts in earnest to address the shortfall. Additionally, it is not for managers to pressure technologists into making commitments that they would otherwise consider unreasonable. This “always deliver” policy only applies to freely made commitments, not any made under managerial duress.
  8. Technologists have the right to refuse work, unless it is of existential importance to the firm, or work that they have freely committed to doing. The only time a technologist can be required to complete a project he or she did not choose is when the company is at credible risk of failure or catastrophic loss if the work is not completed. Even then, it is best for the company to try to provide incentives (such as bonuses or promotions) before resorting to authority.
  9. Technologists have the right to inquire about other specialties without facing professional repercussions. Technologists are not fired or dismissed as “not a team player” when they voice concerns about a discrepancy between the work expected of them and the direction they want to take in their career, or the specialties into which they want to grow. Rather, technologists are encouraged to be direct and forthright about the specialties that interest them, and companies shall make reasonable efforts to allow them to find appropriate work.
  10. Making mistakes is tolerable; honesty about mistakes is required. The employment arena for a technologist must be one where people are not punished for making mistakes, or for discovering and revealing mistakes made by others. However, knowingly hiding a mistake, when it risks harm to others, is a grave ethical fault.
  11. Terminated employees recieve proper career support. Companies will sometimes need to fire a technologist, if he is unable to lead (as determined by other technologists) or follow within the context of the firm. When companies terminate, they always grant the right to represent oneself as employed during the job search, and provide a positive reference unless the employee was fired for a grave ethical breach. Companies that would be considered (reasonable person standard) able to afford severance pay it, in a large enough amount to cover the expected time for a job search. This does not apply to pre-funded startups (the risk is well-known) or companies in financial distress (that can’t afford it).
  12. Companies and investors do not create “no poach” or “do not hire” lists. Anyone who breaks these rules is censured severely and turned over to law enforcement. Investors are also disallowed from communicating any information about a technologist that might prevent him from getting further investment, unless a formal breach of ethics was involved.
  13. 1200 hours of metered work, per year, as a maximal obligation under normal circumstances. The general expectation is that a full-time technologist will deliver 400 to 1200 hours per year of metered work (work that is relevant to the direct line of business, and non-discretionary) per year. Companies have the right to increase metered work expectations in unusual circumstances. It is up to the company to decide what those circumstances are, but if they exist, they should be disclosed before an employment agreement begins (e.g. these are situations we consider abnormal, and these are the expectations we’ll have if they occur). Otherwise, the default assumption is that the company should expect no more than this level of direct dedication. Expecting anything more is to expect the employee to take on unreasonable risk of career stagnation. This 1200-hour standard shall be pro-rated for people who have part-time employment agreements.
  14. 800 hours of off-meter work as a minimal expectation of the technologist. “Full time” (2000 hours per year) technologists are usually expected to dedicate the remaining (800 or more) hours to off-meter work: continuing education, attending conferences, exploratory work and research, career-directed open source work, and pursuit of other specialties. This is not an obligation per se, but technologists should expect to spend this time if they wish to be maximally relevant, and companies shall be expected to allow time for it. This eliminates the excuse that many programmers have currently for stagnation and mediocrity, which is that their bosses won’t allocate time for growth. If we become a technologist profession, we will make allowance for such time an inflexible pillar.

This is just a starting set of principles. I’m sure I will remember more, but my intent here is to indicate what a technologist profession will look like.

One final thought: selectivity

My word count’s getting high, indicating that I should wrap this up, but I’d like to address one other concern: Who do we let in? What’s the barrier to entry? Here are my initial thoughts.

No formal education is required to become a technologist. Technologists are expected to have the breadth of knowledge of an average college graduate from a top-50 university, but how they get it is up to them. Age, socioeconomic status, educational matriculations, and national origin are irrelevant. Anyone with the competence can be a technologist, but we shall set the bar for competence very high. I think the best model for this is actuarial science in the United States, where progress is exam-based. Classes and study guides are available, but not required. Additionally, the profession requires and expects that associates will dedicate a significant fraction of their working time to studying for the exams.

There are a few tweaks I’d make to this system. The first is that, instead of a linear series of eight or ten exams, there shall be a larger number, with some being elective. The courses on technological ethics, basic mathematics, code quality and scientific thought would generally be required, for example. Machine learning, startup economics, and compilers courses would be optional. The second is that some courses would require code, and most courses would have a non-exam option whereby, for example, a high-quality open-source contribution could be substituted for a typical exam. (This is because, while most people who are “not a good test taker” are just lazy, the condition does exist and alternative evaluation is appropriate for making the profession maximally inclusive of talent.)

The purpose of these exams would be to provide an alternative path to success and true independent credibility for technologists, and to deprive parochial managers of the ability to reduce a technologist’s credibility to zero. They would not necessarily be required for a technologist to have employment, but they would be designed to be difficult and relevant enough to increase a professional’s employability dramatically– so dramatically as to give the technologist true independence of managerial authority.

That is all I have to say on this matter tonight, so I yield the floor.

About these ads

40 thoughts on “Programmers don’t need a union. We need a profession.

  1. Quite thought-provoking. Almost reads like a manifesto!

    I still disagree with some of your terminology, though. Last week you wrote “the end of management” when you were referring mostly to managers in the software industry. Now you use “programmers” = “engineers”, despite the fact that most programmers are “digital artisans” who have no idea what actual engineering is. Jamie Zawinski put it more eloquently:

    I wear my unprofessionalism as a badge of honor. Professionalism has no place in art, and hacking is art. Software Engineering might be science; but that’s not what I do. I’m a hacker, not an engineer.

    This quote is especially ironic in the context of this post since Zawinski used the commonplace definition of professionalism, not your definition.

    You also make “technologists” = “programmers”, although many technologists are not programmers. How can one form a profession under the umbrella of the term “technologist” when the tribe of technologists contains rocket-propulsion engineers, bridge designers, aircraft designers, machinists, power systems engineers, electronics / photonics engineers, Java programmers, operating systems people, compilers people, functional programming acolytes, etc? I would claim that, even though Medicine is a very broad field, a cardiologist has more in common with an oncologist, than a LISP programmer has in common with a web apps developer.

    It would be incredibly interesting to research the history of the legal and medical professions. How did they acquire such power? I suppose that part of their success is owed to 1) the fact that lawyers and doctors consolidated their position before globalization, 2) the fact that they are in a strong position to negotiate because one cannot outsource legal / medical work as easily as one can outsource software-related work. Outsourcing hardware is harder, since atoms have more inertia than bits ;-)

    • I don’t know what to make of Jamie’s dislike for “professionalism”, but I think one problem is that the word is so abused. It has become a synonym for white-collar servility and emasculation– showing up at a certain time, refraining from coarse language, not wearing silly ties or bawdy shirts. Usually, when someone is called “unprofessional”, he’s being criticized for some bullshit cosmetic shortfall, like getting into the office at 9:15.

      I think the truest example of a profession (which is why corporates hate it so much) is academia. Academics and scientists are held to very high ethical standards. If you falsify results, plagiarize, or have a sexual relationship with a student, you get fired, possibly for life. (On the other hand, a corporate social-climber who takes credit for another’s work is a “go-getter”, not a plagiarist.) On the other hand, no one cares what hours a research professor keeps, or if he swears occasionally, or if he wears sandals and a ridiculous hat. They’re expected to serve the field (publish or perish) and punished severely if they knowingly act outside of its interests, but no one cares about the cosmetic nonsense.

      Professions require service (working to benefit others) but not servility (taking direct orders, which hampers creativity and eliminates ethical autonomy). Where the concept of “professionalism” goes wrong is in the misuse of it by corporate managers as an excuse to expect the latter.

      Regarding the power retained by the legal and medical professions, I think the answer is that the ethical ramifications of these fields remain very stark. No one wants a “mercenary” attorney who will drop a client and sell secrets when someone offers to pay triple-rate, or a doctor who would quit a surgery mid-flight because his boss told him that a “higher value” (richer) patient was just wheeled in and the “low value” patient needed to be dropped on the floor. Even the most degenerate, anti-professional corporates don’t want to fuck with these professions.

      I think of technology as a post-industrial profession. The old professional structure was pre-industrial. It was a reincarnation of the guild structure, put together to protect people from industrial capitalism. It persisted in law and medicine because it made a lot of sense: these ethical principles really are more important than short-term profit, and letting them slide will damage the profession’s reputation and ruin it in the long term.

      The new professionalism that Valve symbolizes with its open allocation philosophy (and that Google symbolized until it was destroyed from within by professionalism’s mortal enemies– corporate managers, mostly transplants tracking in bad culture from elsewhere) is one that embraces the market. The old professional doctrine is based on ethical principles that axiomatically supersede market imperatives, and it has a lot of value. The new one, for creators and engineers, falls back on a market argument: we deliver a lot more value when we have autonomy and the right to directly work for the company (or industry).

      One example of the need for a true profession is age discrimination. Average programmers, around 40, start to become less employable. Doctors and lawyers don’t. Why is there a difference? Because people in these professions are allowed and expected to keep current, attend conferences, and build connections on “working time”, so middle-age obsolescence is very uncommon. Software engineers don’t get this liberty, and corporate programming is mediocritizing, so after 20 years of mediocre experience with no allowance to direct working time to professional growth, they’re washed up and unemployable. I see this as strong evidence that it’s time for a change.

      Regarding the use of “technologist” and the fact that the term is more inclusive, that’s my intention. I don’t intend for this designation to apply only to people who write source code on a daily basis. Sometimes the best (most “professional”?) thing to do is not write code. Sometimes it’s to delete code, or something else entirely, like fixing broken business processes or starting a new company.

      • Thanks for your detailed answer.

        You have diagnosed an illness in the status quo. You have proposed a solution. What I do not see, however, is how to implement what you propose. How can one treat the illness? Is there a step-by-step plan?

        I may be wrong, but I think programmers are in a very weak position. It seems to me that the powers-that-be in the software industry have put a lot of effort into ensuring that programmers are easily replaceable and, thus, powerless.

        • There once was a King, a Priest, and a Merchant, and a Mercenary. Everyone ordered the Mercenary to slay the other too, in exchange for lands, salvation, or gold, respectively. What did the Mercenary do?

          Answer: whatever he pleased. The other three have only as much power as the Mercenary gives them. The Mercenary has the sword after all. There are consequences however. Killing the King would forfeit status. Killing the Priest would forfeit the soul. Killing the Merchant would forfeit wealth. Which is more important? Which the Mercenary believes is more important?

          Back to reality: instead of a King, a Priest, and a Merchant, we have Lawyers, Doctors, and Technologists. Instead of the Mercenary, we have Corporate Decision Makers. It appears the Corporate killed the Technologist, and spared the Lawyer and the Doctor. Why?

          Simple: Lawyers and Doctors are obviously precious: they keep you from jail, and from dying, respectively. Technologists, on the other hand, are not.

          Oh, we are precious, the Corporate just doesn’t see it. Their ultimate goal in life seems to be the bottom line, and their predictive power seems to be limited to a few years at most. (I talk about the Corporate as a whole. Any particular Corporate may be better than this.)

          And so we were slain.

          In the end, we must convince whoever wield the sword we are valuable enough to spare. The most obvious avenue I can think of is, hold companies accountable for the quality of software. When software is sold, the user should have guarantees, such as suitability for some particular purpose. If we were sued for bad software, the field would change quickly.

          And we should be sued for bad software. The cost of some software mistakes are sometimes in the order of lifetimes of salaries, if not lives, period. Now, we don’t want to become too harsh. A Doctor can make a bad decision in good faith, like failing to notice a rare condition from common symptoms. On the other hand, she would never ever fail to wash her hand before surgery. Conversely we can still let bugs slip despite our best efforts. But we would never ever fail to set up continuous integration for Huge Systems. Riiight?

          • You can’t have an arrangement where programmers are legally accountable for software quality for many reasons:

            (a) programmers having to buy malpractice insurance would be turning over an awful leaf.

            (b) in a world where programmers don’t set their own deadlines or pick their own tools, holding them responsible for defects is unfair.

            • (a) Oops. I don’t have a counter to that one.

              (b) Actually, I was thinking of holding the company responsible. The idea being that maybe it wouldn’t take so much heat if it let its programmers chose better tools.

              My main point about getting sued is to internalize costs. When defects are an externality, we don’t pay for their elimination before hand (the same is true for oversees pollution, for instance). My hope is that if we find a way to ensure bugs have visible negative impact on the bottom line, we will finally be allowed to use better, safer tools. No more C++ for anything but CPU bound programs!

              • Ok, now that I agree with, at least in many areas, but I wouldn’t be surprised if it’s already the case.

                Companies have plenty of incentives to care about software quality already. The problem is that managers and executives don’t understand what it requires. They’re already too risk-averse as it is. That’s why they fall back on mainstays like Java, even though Scala and Clojure are better languages for 99% of modern development.

    • The story of legal professionalism begins with the ABA, which was started in 1878 but didn’t really come into prominence until the 20th century. They actively sought to “professionalize” the practice of law by erecting barriers like the bar exam and accreditation of law schools. Before that, one generally became a lawyer through apprenticeship but you didn’t really need to do anything to call yourself a lawyer. What’s curious is that by the 1950s 50% of lawyers were still educated via apprenticeship rather than ABA accredited schools. You can still become an attorney in California without going to law school.

  2. I’m an actuary so I’m in probably one of the most stereotypical professions you talking about. We have a guild (the SOA or CAS), we have official liscence and barriers to entry, we have legal “protections” at least on paper.

    And yet all my real life experience is a perversion of everything you talk about.

    1) Barriers to entry are the exams. I guess they might have been useful a long time ago before the use of computers, but today they mostly test things you rarely actually do in the profession (or that you do very differentely now that we have computers). It amouts to little more then an inefficient IQ and conscientousness filter. I won’t even get into the absurdities of various exam programs. There is little chance of effective change because existing stakeholders benefit from it.

    Also, while graduate education has largely been avoided in the profession your still generally expected to get a BS at a respectable university so its not like we are cutting out the cost of college.

    Finally, since the exams are arbitrary, long, and pointless they scare off a lot of good talent. The sterotypical actuary is a socially awkward math nerd who is good at passing tests but terrible at interacting with people or being particularly insightful. These people aren’t necessarily great for doing real work, or even very good at standing up to corporate managers. I think most really smart capable people go into software where they can spend their 20s on startups and learning skills rather then taking arbitrary exams so they can get a cushy job at a megacorp.

    2) Continuing ed was introduced recentely and has basically become a racket. X hours are required a year but they can only be provided by approved providers. As such its mostly an excuse to charge money for a low quality product. I’ve watched many a person sleep through a boring continuing ed session.

    3) While we are in theory protected if we want to go against out companies this is not true in practice. I’m about to leave my job because I was pressured to sign off on false actuarial statements. When I wouldn’t they simply found someone that would. There are lots of actuaries, someone out there will be willing to do it. And while I haven’t been fired my working environment has been made miserable enough that I don’t want to remain. Similair things happen all the time throughout the industry. Functionally this all seems equivilaint.

    4) As with all guilds there will be entrenched insiders and guild managers with special interests that aren’t matched up with members or potential members. Democratic election often descends into popularity contests or favor trading.

    Honestely I’ve always considered the non-professional nature of technology a huge selling point over the arbitrary bullshit involved with an established guild. My guess is that you are more judged on the quality of your work then those in a guild (who are used solely because they have a credential and are willing to play ball). Having a credentialed guild with legal protections turns you into a rent seeking interest group over time. The actuarial profession has mostly spent the last few decades selling its reputation for money (a lot of this stuff has or will blow up over time).

    “This explains their scorn for government officials, journalists, and most especially professors who are “insulated” from the market”

    They aren’t insulated from “market forces”. Their market forces simply aren’t dictated by voluntary market transaction (or in the case of journalists by passive eyeballs). Most of these professions are very corrupt and turn out low quality product. Also, they are all part of what many dub “The Cathedral”, an uncoordinated force of evil I’ve become all too familair with during my time in civil service.

    “If you falsify results, plagiarize, or have a sexual relationship with a student, you get fired, possibly for life.”

    Actually they do all of those things. In fact I’ve talked to lots of people in academia that say its all a rediculous scam and that grants are a racket. I’ve heard university life is more political and bullshit then the private sector (though, yes, you don’t have to show up at 9:00 wearing certain clothes).

    However, this is all a big distraction from your main point.

    • Your point seems to be not that professionalism is bad, but that it’s weakly enforced and that the self-regulation of the professions is in decline. And I agree. The corporates are killing professionalism, because (a) it doesn’t suit their needs, and (b) they can. Professionalism isn’t a silver bullet that magically removes the problems with human nature. It simply alters the balance of power in favor of the professional, by giving that person a certain independent credibility and, therefore, autonomy.

      I think that the structure of a real profession can make things better, by reducing (not eliminating) managerial power and curtailing the pernicious politics surrounding who gets to take these roles. There’s no perfect solution, because people are people. For example, people will always be excluded from groups (fired) for unfair and stupid reasons. In a law firm, you get “The Talk” and you’re now allowed (and expected) to find another job during working time. You’ll be terminated if you can’t find one within half a year, and given another 3 months of severance. “The Talk” usually includes what kind of reference you can expect for your time, and unless you broke laws, it’s glowing. Unless the market is dead and absolutely no one is hiring, the lawyer won’t experience a loss of income or reputation. What do software engineers get when their firms decide to part ways? If they’re lucky, the rest of the pay period, largely because HR doesn’t know who to pro-rate a partial pay period.

      Law and medicine succeeded by creating a legal structure in which a member can’t answer to a non-member. For example, law firms can’t IPO because a non-lawyer can never own a law firm. Lawyers answer only to other lawyers, up to the GC, who answers to the board. Same with doctors. The rest of the “professions” (e.g. accounting and, from the way you described it) didn’t protect themselves against management and have been losing ground because of it.

      • Obviously, if professionalism was like what you have in your essay it would be great. However, like all groups it tends to become a rent seeking interest group with lots of principal/agent and asymetric information problems that also gets all wrapped up a kind of opporunistic orgy between government, corporatations, and the professionals themselves.

        The two groups you cite as the strongest are probably the worst for society. Lawyers should be obvious. However, medical professionals come in too. They are bankrupting the country largely for personal greed. People hate insurance companies but insurance companies aren’t the ones demanding high medical cost trend, the providers are. I’ve seen some of the practices in the medical industry and they are intensely unethical and I know people in the industry that back that up with their own observation.

        The medical profession has allied with government (to pass laws and provide subsidies which result in ever increases funds toward medical care and protection from competition) and media (to portray doctors and hospitals positively even though they are the ones driving medical cost trend and often lobbying for things they know will bankrupt the country).

        So to the extent a profession is successful its because they have allied other sectors in creating large economic rents for the sector at the expense of society.

        I don’t think there is a way to true professionalism in the world of the atomically individual “rational economic man”. Professions reached their height at a time when the entire cultural and business eco system supported their being a certain way. You need people to buy into society, but rational economic man doesn’t buy into society, he buys into himself. You need a broader societal vision and value system for him to buy into. You need self sacrifice and virtue, and those things don’t come from professional commitees or regulations.

        • The medical profession seems to be getting a bit of karma. They did something evil a few decades ago, which was fighting against “socialized medicine” (see: those atrocious Reagan tapes, sponsored by the AMA). Now they are getting robbed blind by those health insurance scumbags they worked so hard for.

          I think this is illustrative of the general point. Professions fall apart when individuals within them erode professional integrity (an example being doctors who collaborate with health insurance scumbags) for personal benefit. Professions are the Chinese in the first half of the 2nd millennium: the most advanced civilization in the world, which probably would have had an industrial revolution _600_ years ahead of Europe, were it not for the regular barbarian attacks that put it back into stagnation. There was nothing wrong with the Great Wall. The problem was people. Individual nobles would let barbarians in for advantage in their internal conflicts, and had little success getting them to go back behind the Wall.

          This is also why I hate Uncle Tom programmers who attempt to sway executive authority (barbarian outsiders) in their internecine disputes. It turns out to be possible to get the barbarians to go back behind the Wall after you do this. If we don’t respect ourselves as a profession, then no one will.

          For example, I’ve come to the conclusion that it is extremely rarely if not never right to disparage a software engineer to a non-technologist (especially a manager). If we want to settle our own affairs and get out of this humiliating arrangement where another tribe (management) does it for us then we, as technologists, need to stop selling each other out.

  3. They did something evil a few decades ago, which was fighting against socialized medicine”

    The AMA was a force for evil in the last reform round too. Nothing changes.

    “Now they are getting robbed blind by those health insurance scumbags they worked so hard for.”

    Except no. I’m going to smash this liberal talking point for you because I’m getting tired of it.

    Insurance companies make a tiny margin on major med. And before Obamacare (which introduces really perverse incentives) they were firmly on the side of trying to hold down medical cost trend. Companies spent a lot of money trying to find ways to slow trend and negotiated as hard as they could with doctors. Insurance companies are not the reason healthcare has become expensive (the insurance system is, but individual companies are not meeting in a back room planning evil).

    Healthcare is expensive because medical cost trend is higher then inflation. Medical cost trend is higher then inflation because providers (doctors, etc) demand it. Providers make a lot of money in this country. It’s a racket. Yes, that money isn’t distributed evenly (family practitioners are getting squeezed while specialist often make out like bandits) but overall there is a ton of money sloshing around in the provider pool.

    This is because the insurance companies are pit against each other. In a normal market increased competition drives down prices. However, in the health insurance market its the opposite. If an insurance company tries to get tough on provides to hold down medical cost trend the provider will simply swtich to another insurance companies network. It’s a huge scandal if someone loses doctors from their network and all of a sudden policy holders need to switch doctors. It’s easier for insurance companies to just give in to the providers demands. The only cap on that is people being unable to afford the insurance at all over time, but Obamacare fixes that (makes other people pay for it while costs continue to spiral out of control, which I suppose “works” for awhile which was good enough for the AMA). Providers, not insurance companies, are the reason for such high rates. Premium dollars = their compensation.

    You know why single payer works? Because the doctors can’t threaten to pull out. There is only one payer. If you won’t play ball you can’t do business. So if the governemnt targets X% medical cost trend they will get X% medical cost trend and the doctors will have to shut up and accept it. Even in countries without single payer that are successful (like Singapore) the government has regulated price controls so that its still effectively negotiating with one entity.

    The AMA is against both price controls and single payer because it would lower their bargaining power. It is pro-Obamacare because it offers to pay for health care but doesn’t really introduce any effective methods for cost control.

    “Professions fall apart when individuals within them erode professional integrity.”

    Correct. However, I think we are at an impasse on exactely what creates virtue and integrity.

    • At least the only reason Obamacare has been declared constitutional is that the only consequence is a surcharge and it tries to exempt poor people, and that does put a cap.

    • “And before Obamacare (which introduces really perverse incentives)”
      I think the reason that provision was put in there was that the insurance companies’s attempts to hold down medical cost did more harm than good. Yes, I agree it is not the best solution.

  4. Michael:

    If I’m answerable to my manager, I’m at least only answerable to him while I keep the job and during working hours. If I am answerable to my Lord Worshipful Guild Master, I’m answerable 24/7. Both have essentially uncontrolled authority over me, but the latter is worse because the only escape from him is to change professions altogether. In short, two cheers for cash nexus: it sucks, but it sucks less.

    Guild structures used to be tolerable because of two constraints which no longer apply: short lives and weak retirement plans. Junior members would put up with absolute domination from senior members because they expected the seniors to die off soon enough, leaving them in the senior spots. Now “soon enough” is 40-50 years. Seniors no longer need juniors to keep them fed, clothed, and housed after they can no longer work: government plus get-rich-quick shortsightedness takes care of that.

    asdf:

    There is nothing at all liberal (in the modern American sense) about Obamacare: it is a purely conservative reform which liberals have supported so as to have some sort of plan at all, as distinct from the status quo ante. I don’t know a single liberal who thinks of it as anything but the lesser of evils.

    But I agree with you about virtue and integrity, though I suspect you think you know how to achieve it, and I am fully agnostic: I don’t know how, and I doubt you do either.

    • “Insurance companies are the evil and are what’s causing higher health insurance costs.”

      That’s the liberal line I’m railing against. It’s just not true (at least in the market, as far as political lobbying goes they are just as guilty as the AMA, drug companies, and every other lobbying group that made Obamacare happen). Medical cost trend is driven by providers, full stop. However, doctors get their own shows on TV where they are heroes and insurance companies are faceless corporations so that is the extent of people’s “research” into the field. If you wanted to make healthcare affordable you’d be going after the providers.

      As to Obamacare itself I’m now firmly of the belief that its a net negative, worse then the status quo ante. Beforehand I was rather on the fence. I really liked guaranteed issue and the mandate (the start of single payer), but I was really suspicious of the other 2,000 pages of the legislation I thought were written by lobbyists. I wasn’t sure I would have voted for it at the time but wasn’t terribly against it (this got worse and worse as the bill got revised). Before I took this job working on the legislation I figured whatever hangups I have about the law at least I’d have the power to make a difference instead of complaining. My time in government working on reform has left me immensely demoralized. Both to the content of Obamacare and the governments ability to accomplish any good in the world in its current state (and yes, I’m in a firmly liberal area surrounded by secure democrats so its not conservatives fault). I think that liberals wanted to “win” so bad that they convinced themselves that *anything* was better then the status quo ante. This was not true. It’s worse.

      As to the issue of virtue I don’t claim to have all the answers either. However, like all people with an opinion I believe the weight of evidence favors my interpretation more then the alternatives (or else I’d adopt those alternatives).

  5. “Professionals take great pains to avoid disparaging others’ work in the public, preferring to keep feedback private.”

    Critique is a necessary to maintain the quality of a profession, otherwise the entire professional field risks to be contaminated by “pseudo-professionals” (which can be indistinguishable from real professionals in the eyes of potential benefiting clients) and thus affecting the general profession’s image. I’m sorry to say this, but the research in academia is very much affected by this. A central licencing authority can not deal with this, for it itself being exposed to the risk of that kind of contamination and corruption, so the task of segregating real professional value from “other kinds” of professional values ultimately falls on the individual profession-serving subjective critique of each professional. This of course opens the door to politics (and I suppose that’s a reason for preferred silence that you’ve mentioned), but I would go with one of your assumptions and just trust in the professional (and in professional’s attachment and loyalty to profession before other things). It’s your home, keep it clean and hygienic both from external and internal mess.

    • There’s a difference between critique and disparagement.

      Criticism is when you say, “that algorithm is O(n^2) and O(n*log n) is possible” or “that function would be more obvious if it were renamed”. That’s fine.

      Disparagement is when a programmer sells out his ethics and goes to another programmer’s manager and says bad things about him (often non-technical) for personal gain.

      The latter is what should have people barred from the profession. If you try to involve managerial authority in your internal disputes, then you’re the reason engineers don’t have the sovereignty to handle our own affairs and you have no business programming computers.

  6. Pingback: Programmer autonomy is a $1 trillion issue. « Michael O.Church

  7. Pingback: Gervais / MacLeod 7: Defining organizational health, the Mike Test, and VC-istan’s fate. | Michael O.Church

  8. Pingback: Damaso and Chickenhawking: the forces that power Silicon Valley douchebaggery | Michael O. Church

  9. Pingback: Damaso and Chickenhawking: the forces that power VC-land douchebaggery | Michael O. Church

  10. Oh man. I was thinking almost the same thing when this popped up on proggit. Thanks for articulating some of my thoughts for me. I’ve been a corporate programmer for about a year now and pretty much everything you mentioned is valid where I work except it is dialled up 10x. I want to be part of this guild of professionals but I’m not sure where to even begin.

  11. It sounds like you have worked for some terrible managers that left you pretty unhappy about it. I feel like ideally a manager should be arbitrating disputes between engineers and generally making the team happier than they would be with no management. Rather than calling an engineer an “Uncle Tom” if they go to management with a concern about another engineer, that should be the right mechanism for a problem with a coworker. Don’t try to rally a democratic vote against them, just make it a management problem.

    Also, while headcount is frustrating, often the folks who figure out how much money there is to be spent also need to make sure some projects are sufficiently staffed. Letting every engineer work on whatever they want doesn’t seem like a very good way to run a business. If you think it is, by all means start a business that operates that way and see how it goes.

    • We did make a business where programmers self-determine what’s worth working on. It’s called Valve – right now they’re earning enough money that they’re having problems with cartoon ducks taking a swim in it.

  12. This was great, and I agree with most of what you write.

    However, on the subject of unions I think you are wrong. Points #2 and #5 in the first list are in fact exactly the sort of thing unions help people with (at least here in Norway). Having a union representative with financial muscle to hire legal assistance behind you can make a big difference, and a good union provides exactly that.

    Of course, your point still stands, because joining a union isn’t going to do the rest of what you describe. I fully agree that software engineers have an ethical responsibility, and that it would be of great benefit for software engineers and society in general to accept that. I’ve seen several disastrous public-sector IT projects at close hand over the last few years, and all of these would have benefited from a better understanding of the obligations of dedicated professionals.

    Food for thought. Thank you.

  13. I’ve been telling people this over and over again. Everyone calling themselves Software Engineers really need to band together and focus on turning Software Engineering into a real honest Engineering profession.

    The key item for professionals though, that I don’t see in your article, is liability. A surgeon can be liable for botching an operation. A civil engineer can be personally (or even criminally) responsible for signing off on a bridge that he knows is unsound. This is where the professions get the “teeth” to be able to say no to management, because it is the professional, not the firm that can be held liable.

    Today if management came to me and said to store passwords in plain text, and I implemented that solution and the database was subsequently stolen and used to commit fraud the liability would fall on my firm (and if that considering how much bugging, insecure software is put out without any repercussions to the firms responsible for them). I might be scapegoated and fired for this indiscretion but I could always just go get another development job elsewhere. Now, if liability fell on me, I could refuse to implement the plain text passwords and have the backing of the profession (who if I did knowingly implement the feature would push me out of the profession) and the courts (if I was fired for refusing to implement the feature).

  14. Pingback: From the Web: Programmers don’t need a union. We need a profession. : David Wayne Baxter

  15. sadly, this ignores the fact that excel is the most used programming language.

    which is to say that programming is not a profession. it is an act. anyone can do it, and most white collar workers i meet benefit from doing it (many of whom would benefit even more with access to and knowlege of basic scripting languages).

    i cry elitism whenever anyone claims that people who program need to be held to some standard. never forget that even the most ugly, unmaintainable code can have huge value to a business.

    • This is a silly argument, and I’m sure later in life, you will be embarrassed to have written it. It’s a lot like saying medicine isn’t a profession because your auntie makes herbal remedy tea, and it’s “elitism” to suggest that a doctor might be better at relieving illness.

      • Well, he does have a point though. Either we are to admit that there should be a clear line delimiting whether something is or isn’t, or we have to recognize a progressive scale and a need to assess one’s level/quality. For both medicine and programming I see a scale, and I wish to add that this does not contradict elitism as higher up-scale the circle of experts is small on both domains.

  16. Pingback: VC-istan 8: the Damaso Effect | Michael O. Church

  17. Pingback: Street fighting, HR, and the importance of collective action. | Michael O. Church

  18. I’m sorry, but out of all the articles of yours I’ve read so far, this strikes me as the worst by far. It just seems incredibly idealistic. First of all, the umbrella term “technologists” is far too broad. What do a self-taught graphic designer and a “Java shop guy” have in common with a data scientist with a PhD in statistics, or a electrical/computer engineer who designs circuits, or a fellow at a HFT firm who writes mega-optimized C++, or a theoretical computer scientist who designs algorithms or programming languages, etc? Pretty much zero. While I won’t deny some of the things you suggest sound quite cool, a “profession” just doesn’t seem to logically mesh with the role of “technologists.” Doctors and lawyers are by nature quite independent workers who work on several different cases alone (at least I know that doctors normally work on cases alone or sometimes in small groups (anesthesiologist, etc.); I don’t know much about lawyers). Many doctors (and lawyers, I think) have their own practices. I’m not really sure what a technologist’s “practice” would look like – perhaps the closest analogue is a freelance developer? Anyway, your idea that technologists would all be under the same umbrella is like suggesting that nurses become part of the doctor ‘profession,’ or paralegals become part of the lawyers’ ‘profession.’ Finally, you mention the actuarial exams, but I don’t think actuaries themselves are even a profession – and I fail to see what is so fundamentally different between actuaries and technologists.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s