Ramblings and thoughts by a Mensch or two.

Sunday, March 20, 2005

Progressive values ARE American values

America is about opportunity. America is about freedom. America is about equality. All of these values are endangered species today. Why? Because a minority of those claiming that they are patriotic Americans have been framing public debate for the last 30-40 years.

George Lakoff, a professor at UC Berkeley and a fellow of the Rockridge Institute, has put together a careful analysis of what's been happening and what progressives have been doing wrong. His analysis is based on cognitive models of our belief systems, in other words how progressives and conservatives think. Every wonder why progressives have one set of values that on the surface appear unrelated, and conservatives seem to have diametrically opposed values? Why would, for example, conservatives be against abortion ("pro life") when they are also against the government providing prenatal care, postnatal care, and health care for children? If pro life were an accurate description, then you would expect conservatives to support everything that supports healthy children.

Lakoff's characterization of why the right opposes abortion is not as complimentary, at least from the point of view of someone who is progressive: Abortion is a means of birth control, a way for women to keep control of their own bodies. He posits that the core family value system that frames the policies of the right stem from a "strict father" family model. If you're a progressive reading this, you may not be familiar with the phrase, but the concepts are probably not entirely alien as much as distasteful. The prototypical strict father model assumes that:
  • The world is a dangerous place.
  • It always will be, because there is Evil out there.
  • The world is highly competitive, and there will be winners and losers.
  • There exists an absolute right and wrong.
  • Children are born bad, and must be made to be good, where good entails knowing what's right, and having the discipline to do what's right.
As a result, raising a family requires a strict father who:
  • Protects the family from a dangerous world.
  • Supports the family in a competitive world.
  • Teaches his children right from wrong.
Since following these values is the only way to succeed (according to this model), therefore:
  • If you're rich, that means that you were disciplined, and therefore good. And good people should be rewarded.
  • If you're poor, that means you weren't disciplined, and therefore you weren't good. And bad people should be punished. In this model, starting out as poor doesn't prevent you from being disciplined--and therefore if you're still poor, you deserve it.
This is paraphrased from Lakoff's book, "Don't think of an elephant!". To a progressive these ideas might seem rather extreme, antiquated, in poor taste, and, frankly, parodied. It turns out, though, that he pulled many of these ideas from another book, "Dare to Discipline," by James Dobson. While I was not familiar with the latter name myself, apparently Dobson is featured on thousands of radio stations and has sold millions of copies of his book. Physical punishment is part of this model on the theory that it will teach children not to do wrong--never mind the fact that it's not currently believed to be a good method of training.

How does this connect to abortion? Well, if you believe--as many seem to--that this strict father model is the best model to live by, then abortion, along with other forms of birth control, gives more freedom to women, with the side effect that they are not as beholden to men. As premarital sex is seen as lack of discipline, it is something that should be punished. As delaying child bearing to have a career gives women more power, it is seen as a dangerous thing. Anything that threatens the authority of the strict father is considered bad, even evil.

This is the theory underlying the way that conservatives are running the government. Why aren't we seeking consensus, why are we ignoring world opinion? Because our strict father (Bush) wouldn't be upholding his responsibilities if he didn't know right from wrong, and if he wouldn't do what he needed to protect his family. It would actually be considered wrong in that frame to ask permission: As he said in the debates and elsewhere, he doesn't feel the need to ask for a "permission slip" to defend the US. The image evoked is that of a child who must ask permission to go to the bathroom; the message is that he is the Authority, and that he is beholden to no one.

So how do progressive values stack up? Well, Lakoff describes the "nurturing parent" model as the one that progressives tend to use. To summarize Lakoff's nurturing parent model:
  • Both parents raise and nurture the children, who are seen to be born good, ready to be made better.
  • Empathy is a key value and skill, and you need to practice it to understand and fulfill the needs of your children.
  • This is hard work, and requires strength and competence.
Empathy as a value leads to a few other values:
  • Protection is important, as you empathize with your children and wouldn't want them to be hurt.
  • Fulfillment is important, as you want your children to be happy.
  • If you are unfulfilled and unhappy yourself, you won't want others to be happy, so it becomes a moral responsibility to seek fulfillment.
  • You want to teach your children to nurture, and who wants others to be happy and fulfilled.
  • Fairness is important, as you want your children to be treated fairly.
Which leads to a number of other values:
  • Freedom, since without freedom you can't seek out fulfillment.
  • Opportunity and prosperity, which are cornerstones of freedom.
  • Honest communication is required to form a bond of empathy with your children.
In this framework, the abortion issue is seen as a right: The freedom for women to live their lives as they see fit, to seek out their own fulfillment and opportunities. And the freedom of women is a well established American value, along with the complete set of progressive values.

If you haven't read and of Lakoff's books, I haven't even begun to scratch the surface of his conclusions, which include new ways to think about these models, and how to reframe the debate so that people will be able to hear our conclusions. All I've really hit on in this article is the foundations of his theory. If these concepts seem right to you, I would recommend Don't Think of an Elephant. Note that I'm not getting any commissions from these links--I'm just including them for convenience. If you want the complete analysis I would recommend Moral Politics--a much thicker though more complete book. If you just want the conclusions, the last chapter of Elephant is online: How to respond to conservatives.

Monday, November 01, 2004

"Later Bush" and other necessary reading

I came across a site called See Ya Later Bush!, and added the following message (though I've edited it slightly now that I've had a chance to re-read it) to its blog. I encourage anyone else who feels like getting a good Bush rant off their chest to do the same--it felt good. :) If you're considering voting for Bush, then you should really read this site, or you may seriously regret it later (as the world enters WW3, with the US as the Bad Guys).

It seems like the Bush supporters Aren't Listening. Bush either lies constantly or is incompetent. Either way, we know he's not qualified for the post of President of the US. The WORLD knows he's not qualified. In foreign policy, he's pissed off the rest of the world, pouring fertilizer on the roots of terrorism, while making nonsensical arguments like, 'They hate our freedom.' Like hell! They hate our arrogance and our killing and exploitation of their peoples! It doesn't make ANY sense to say they hate our freedoms! Hello!

And as to whether or not Kerry will be able to handle Iraq any better, IT DOESN'T MATTER. If he and Bush plan to do the exact same thing with Iraq, Kerry will still have an advantage--the world mistrusts Bush at the moment, and would be more likely to cooperate with ANYONE else. Further, on the home front Bush is trying to establish an oligarchy--that's rulership by an exclusive class, often those with money, and I DON'T mean those with a little bit of money: If your yearly income after taxes isn't in the 10's or 100's of millions, then you WON'T be part of the elite class, as much as you would like to think you will! So what you say? Well, so much for the American Dream: In Bush's America, everyone will stay where they're at. And guess what? Where they're at will keep sliding down, away from Those On Top. Social Security? He's trying to dissolve it. Environment? He's ready to chew it up and spit it out, as long as someone will pay him for it. Global warming? This one needs a rant all its own, but it will suffice to say that it is NOT controversial within the scientific community. It is only controversial within politics and the general populace, and that because companies like Exxon have been spreading lies about the science.

To summarize: Bush is NOT making us safer. Kerry has a chance of doing it, but will be hampered by the mess Bush got us into. Bush is trashing the environment and stacking the economy for his pals; Kerry will help protect the environment and restore a reasonable progressive tax system. How can any thinking person vote for Bush?

Sunday, October 17, 2004

Programmers as blacksmiths

Recently I stumbled across a three part article: The Blacksmith and the Bookkeeper, Part 1, Part 2, Part 3. The premise is that programming as a profession is doomed to go the way of the blacksmith, that it will create the tools that eventually bring about its end. In the article, Max Goff presents a hypothesis about why blacksmiths faded away while bookkeepers thrive today: In summary, blacksmithing was easily automated, streamlined, or assembly-lined, while bookkeeping required creative application of knowledge. Goff then posits that programming (except for embedded programming) falls into the same general category as smithing: Something that can be easily described and automated. But I think there are essential skills of programmers beyond being able to decipher assembly language or Java or Perl, and that those essential skills will be necessary for quite a long time.

I can easily see how he can come to his conclusion--the IT industry seems to be shrinking at an alarming rate, H1-B's and exported jobs are displacing native workers, and the premium that the average programmer once commanded has dwindled and become much more modest. In fact his conclusions are not unique: Another article in USA Today (Endangered species: US programmers) puts forth similar conclusions. It's not the first time I've encountered this concept. I've fielded questions on this topic from various friends and family members for years, in fact. And every new programming automation tool seems to herald the end of programming; there have been enough "silver bullet" software products and methodologies touted in the last twenty years to slay an army of werewolves, and yet none has lived up to the promises of its press releases.

As someone who has been a professional programmer and software engineer since 1987, I personally do not see the demand for my skills decreasing any time in the near future. Why am I not worried? In part because, as a video game programmer, my skills are in the minority--Goff makes reference to "Embedded Java" programmers in his article as being an exception to the rule, but I would put forth that many more programming specializations are going to need programmers for the foreseeable future.

With the dot com boom, the demand for programmers went way up along with their salaries, and many new programmers were being cranked out by universities. Many more companies than the supply of programmers could satisfy "needed" to have a Web presence as soon as possible, and so the demand created as if by magic a non-sustainable number of extra IT positions. With the bust, the demand necessarily goes down--partly because of market saturation, in that most companies now have a Web presence, and partly because putting an application up on the Web is a mature, understood process, and for a vast majority of typical Web sites, is not innovation--it's often just assembling the correct puzzle pieces at this point. I would guess that even in the heyday of smithing that during, e.g., wartime many more blacksmiths were trained and highly paid to produce weapons and armor than could be supported when the demand for hammered iron was lower. So part of the problem is certainly related to this: There are simply too many programmers for the positions that are available.

So will there be enough jobs for everyone who wants to make a living as a programmer? No, probably not. Which sucks for the thousands who lined up to get CS degrees for guaranteed high pay and job security--another broken promise of the "New Economy." The secret to getting steady work in the field is to find a niche where the programming that needs to be done isn't one that isn't easily generalized. I think this is a corollary to Goff's premise, in fact: If the job you're doing is something repetitive and predictable, if there's no (or very little) adaptation necessary for each new project, then it's going to be in the greatest danger of being automated or eliminated. There's more skill in adapting to a dynamic situation than in assembling components by rote. And having a skill that's in high demand is what raises your paycheck, not something magical about the titles "Programmer" and "Software Engineer". We're not just entitled to a high paycheck due by virtue of being able to speak Java or (in my case) C++. The high paycheck comes from providing a lot of value to a business.

This argues for restricting H1-B access, since the supply is truly greater than the demand for some positions. It turns out, though, that in niche industries like video game programming, where you really do need highly specialized talent that really is hard to find, even today, the H1-B applicant will often be the only one qualified for the position. Not just the cheapest one, but the only one. So it's not a simple issue--preventing H1-B access can prevent some companies from finding employees with the right skills. Which hurts the economy, etc. For a similar reason, video game outsourcing isn't thriving: I know that it does exist, though for the most part it exists as complete game development houses or component providers.

I think that another real problem facing the army of programmers out there right now is that many are working on similar problems, and that those problems are predominantly solved. Most Web sites and custom applications use the same features, many use off-the-shelf back ends with similar collections of components organized in slightly different ways, and one or two programmers can now do in a short time what it once took a small army of programmers many months. Note though that it still does require those few programmers--for the simple reason that programmers are trained to break a problem down analytically and debug it when it doesn't work as expected. Even if the programmers aren't manipulating anything like code, they will still be needed--maybe they'll be much more efficient, but they'll be around. Of course when they're more efficient, there won't be as many jobs...see above.

When a problem domain is well understood, however, it can often be analyzed, packaged, and automated into a wizard that you don't need a programmer for--as Paul Graham describes in his essay Beating the Averages, you can automate the process of creating an entire E-Commerce site. Now his software is used in Yahoo Stores, and while most of the Yahoo stores tend to have a similar look, they look professional and, with a custom graphics layer, would rival many custom-generated sites. In one wizard on a Web site, in under an hour, a person who knows nothing about programming can assemble an entire custom store with inventory management, payments, shipment tracking, and whatever other features Graham's group was able to squeeze in--with no direct programmer interaction at all. You might think I'm undermining my own argument here. But note this is a single problem domain, and however well it solves the Generic E-Commerce Site problem, it won't help in the slightest with creating a piece of software that tracks shipping containers for an export company, or that analyzes communication traffic to optimize switching, or any number of unrelated problems that still will need programmers until those problems are well understood, at which point they could potentially be automated and the programmers move on to new problems. And the Yahoo Store generating software still needs a team of programmers--who maintain 20000+ web sites rather than just a handful.

I do believe that companies are right to not want to pay premium salaries for programmers who are not really creating anything new. So programmers should always endeavor to keep their minds sharp, and always be in the position of creating new things rather than just pushing components around. I'm not against components--use components or any other tool that gives you greater leverage by all means!--just be sure you're personally adding value and not just running wizards. If a programmer isn't flexible enough to be able to adapt to a new industry or specialization, then unfortunately that programmer has become a blacksmith of programming, a specialist fit for one job on a programming assembly line, and unfortunately that's the position that's easiest to outsource or otherwise replace. So what you need to do is either reinvent yourself as a programmer, or reinvent yourself as something else. But don't just feel sorry for yourself that the bandwagon that you jumped on is overcrowded and that people keep falling off as its carrying capacity shrinks.

There are an infinite number of potential problem domains out there--and we're nowhere near putting together a tool that can solve any large fraction of them. To be able to generate a completely new program (presuming that the program is non-trivial, and understanding that what is meant by "trivial" evolves over time), you need to understand the motivations and needs of the people who will be using that program, distilling those concepts into a specification, sub-divide the specification into whatever logical units you have at your disposal, refine the implementation to improve its usefulness, and debug it when it doesn't work quite correctly. And these are the skills that epitomize a programmer or software engineer. I don't care if the "programming" is done by writing lines of code, dragging boxes around, talking into a microphone, or projecting thoughts into a brain-scanning UI. Programming will evolve. The only way to eliminate programmers from the equation entirely is to replace them with human-like AI entities with a breadth of understand of human endeavors, which, if created, would certainly do more than just put programmers out of business. Programming won't be the major that people flock to for easy money, certainly, but its oft-reported imminent death has been greatly exaggerated.