On Programming Productivity

.. when you hand people a complex tool like a computer, the variation in what they can do with it is enormous. That’s not a new idea. Fred Brooks wrote about it in 1974, and the study he quoted was published in 1968. But I think he underestimated the variation between programmers. He wrote about productivity in lines of code: the best programmers can solve a given problem in a tenth the time.
But what if the problem isn’t given? In programming, as in many fields, the hard part isn’t solving problems, but deciding what problems to solve. Imagination is hard to measure, but in practice it dominates the kind of productivity that’s measured in lines of code.
My favorite quote from Paul Graham‘s essay, based on his OSCON talk and book, Hackers and Painters. I need to go read the book, carrying questions about the craft vs manufacturing models of software development.
The article also repeats some unhelpful stereotypes about hacker’s lack of empathy. Graham appreciates the Mac and Google as examples of beauty. But he also describes the natural habitat of the geek as tools rather than applications.
Graham suggests optimizing a tech company’s development process by sic’ing the best developers on infrastructure, far away from customer applications. “have the smart people work as toolmakers. If your company makes software to do x, have one group that builds tools for writing software of that type, and another that uses these tools to write the applications.”
Graham says that hacker’s hate having to “customize something for an individual client’s complex and ill-defined needs.” To use Martin Fowler’s image of “bad smells in code” that hint at poor design, this is a bad smell that suggests poor account management — somebody on the developer’s team hasn’t done the hard work of understanding the customer’s needs, and helping the customer prioritize. (though it is a genuine problem sometimes — customer truly is internally conflicted, hopelessly confused, and is impossible to please.)
The stereotype isn’t 100% right — there are counterexamples of software developers with empathy — but Graham echoes the cultural prestige given to hackers who stay the furthest away from the people who use their work.

“Donor maintenance”

In case you were wondering about the point of the party convention: here’s one of the main reasons. In addition to an infomercial, with delegates as “cheer track”; and a celebration for rank and file party faithful, it’s about “donor maintence.”
Even as John Edwards gives a rousing speech about “Two Americas”, here’s who’s looking down on the populace from the Fleet Center Sky Boxes (as reported by Michah Sifry)
Level 9 boxes
902 DLCC
903 IAFF
904 B04/IBM & Verizon
905 DNC Vice Chairs
906 Kerry Faithful
907 Mayors
908 Trial Lawyers
909 USSS
910 MA Cong Delegation
Level 9 boxes:
901 DNCC Operation
916 B04 Org Labor/AFSCME
915 B04 Org Labor/SEIU
914 B04 Org Labor/AFT
913 New Balance and Simon Properties
912 Boston Foundation and Fidelity
911 B04 Org Labor
Like the Republican machine (Enron, Halliburton), the Democratic party machine is currently about raising millions of dollars for television ads.
Money buys access. A partial list of those being feted in the “Mayor’s club” includes: Daimler Chrysler, Diageo’s, DTE Energy, Faulker USA, Hinton, Communications, Goldman Sachs, JP Morgan Chase, KNP/Dutko, Microsoft
Here are the advertised benefits for participating in the “Mayor’s Club”, for a $5000 donation. “an opportunity to share ideas and interact with the nation’s Democratic mayors

War on an idea

The Washington Post has the first articulate explanation I’ve seen for declaring war on “terror.” I don’t agree with the explanation, but at least I understand it.
Caleb Carr, a professor of military history, describes terrorism in the same category as slavery and piracy — practices that were once common, but have been rendered unacceptable.

It’s true that both slavery and piracy are still practiced, but only in remote corners of the world; certainly genocide is still with us, but its employment is now cause for immediate sanction and forceful reaction (theoretically, at any rate) by the United Nations. Banning such tactics and actively stamping out their practice has been the work of some of the great political and military minds and leaders of the past two centuries. Now it is time — past time, really — for terrorism to take its place as a similarly proscribed and anachronistic practice.”

The trouble with this argument is a Robbean one. Guerrilla warfare is an ancient tactic used by rebels to fight more powerful foes, using tactics of sabotage, assassination, and terror. Contemporary terrorists are fighting guerrilla wars, using modern techniques of organizing networks, and disrupting modern infrastructure.
Slavery and piracy could be banned because they were mainstream. They were practiced by states, which could be persuaded or compelled to obey laws. In England, abolitionists used political persuasion to outslaw slavery. The US fought a civil war, and the slave states were defeated. Piracy was once a common technique of interstate warfare and extralegal taxation (see wikipedia on Privateering. In the mid-1800s, nations signed treaties to ban privateering, and the tactic faded away. Meanwhile, criminal piracy appears to be on the increase.
Guerrilla groups behave the way they do because they cast themselves as outsiders. They don’t have empathy for the civilians of the enemy, so abolitionist-style appeals to morality won’t work. They’re using military tactics that are effective when you don’t have access to an army.
Carr damns explanations of guerrilla tactics as misplaced moral relativism. But you don’t have to sympathize with rebel groups, or morally justify killing civilians, in order to see that these tactics can be perceived as a rational way of fighting a war, for groups who see enemy civilians as infidels or occupiers.
It is possible to defeat particular guerrilla groups. But you can’t just dissuade groups who see themselves as outsiders from using the the tactics available to them. Some argue that terrorist tactics are a sign of desperation. Some groups may be desperate. Others are just calculating and smart. It is a very efficient way of using minimal resources to create maximum damage and distress to an enemy.
Terrorist groups aren’t states that will sign treaties and then abide by them. Getting involved in every guerrilla war on the planet is a way of ensuring perpetual warfare, and creating more enemies.
The September 11 commission suggests that we should give up trying to fight a war against a tactic, and should instead focus our efforts against Islamic militants, especially Al Qaeda, who have declared war on us.
Carr thinks that this will confuse Muslims, who will believe that we’re fighting a Crusade, in the medieval sense. I think this is bogus. If we don’t actually declare that we’re fighting a Crusade, and don’t make as if to invade and occupy
multiple Muslim nations, most Muslims will understand that we’re fighting particular groups of radicals.
I think the September 11 recommendation is sensible. Identify and defeat an enemy that has declared war on us. Build alliances around the world to help defeat a global network.
But the US shouldn’t storm into every guerrilla conflict from South America to South Asia, just because a given group of outsiders decides to bomb a power plant or a restaurant.

What made Obama’s speech great

“If there’s a child on the south side of Chicago who can’t read, that matters to me, even if it’s not my child,” Obama said. “If there’s a senior citizen somewhere who can’t pay for her prescription and has to choose between medicine and the rent, that makes my life poorer, even if it’s not my grandmother. If there’s an Arab American family being rounded up without benefit of an attorney or due process, that threatens my civil liberties. It’s that fundamental belief — I am my brother’s keeper, I am my sisters’ keeper — that makes this country work. It’s what allows us to pursue our individual dreams, yet still come together as a single American family. ‘E pluribus unum.’ Out of many, one.”

“The pundits like to slice-and-dice our country into Red States and Blue States; Red States for Republicans, Blue States for Democrats,” he said. “But I’ve got news for them, too. We worship an awesome God in the Blue States, and we don’t like federal agents poking around our libraries in the Red States. We coach Little League in the Blue States and have gay friends in the Red States. There are patriots who opposed the war in Iraq and patriots who supported it. We are one people, all of us pledging allegiance to the stars and stripes, all of us defending the United States of America.”

I hate speechifying most of the time, and reading that had me teary. Here’s the transcript, and video.
Appealing to common feelings and ideas, from the heart. Reaching for the good part of American patriotism – tolerance and community, entrepreneurialism and political freedom – rather than the bad part – arrogance and self-righteousness.
Politics and policies through people. His stories don’t sound like a politician’s theoretical concept of the common man – trekking to a supermarket for a photo-op, trailing camera-men and handlers. He sounds like a guy who talks to people.

You know, a while back, I met a young man named Shamus at the VFW Hall in East Moline, Illinois. He was a good-looking kid, 6-2 or 6-3, clear eyed, with an easy smile. He told me he’d joined the Marines and was heading to Iraq the following week. And as I listened to him explain why he’d enlisted, his absolute faith in our country and its leaders, his devotion to duty and service, I thought this young man was all that any of us might hope for in a child. But then I asked myself: Are we serving Shamus as well as he was serving us?

And he’s not an anchorman — doing a bit of background research, Obama has the policy details, enjoys the game, and has guts. From a New Yorker profile

In Springfield, Obama led a campaign for death-penalty reforms that resulted in unprecedented legislation, requiring the police to videotape all interrogations in cases involving capital crimes…. When he talks about the maneuvering it took to line up the state

Augmented meetings

Neural implants are a science fiction cliche — folks in the future have the net wired into their brains.
Leave off the wetware, and the experience is here today.
In his write-up about blogon,Jerry Michalski comments on the discomfort of not having meetings augmented by Social Software:

It’s a slightly spooky scenario, but I’ll confess to having wished for a heads-up display that projects inside a pair of glasses who’s who at a cocktail party, including who used to work with whom, who’s friends with whom (hey, orkut) and who’s dating whom.

.
Ross Mayfield adds,

At Socialtext, our meetings are augmented by voice, IRC (with a bot to post to the wiki) and Workspace. By the end of each meeting, enough artifacts are captured in a social context to enable group memory. Similar to using an Eventspace at a conference. When we meet in person we find it to be terribly inefficient. But that said, there is no such thing as virtual beer, the kind of schmooze we go to events for anyway.

Perhaps the the meaning time spent together in person has already changed without us knowing it. One of my favorite Pete Kaminski quotes — time together in person is too important to spend working.

Technorati Bricolage

Wrote a little Technorati plugin in Kwiki, running here, and in Socialtext Will put it up on a public ST wiki in the next few days, too. All the better to keep track of the blogging of OSCON.
It’s a proof of concept on the ease of moving plugins between Kwiki, a super-modular geek-friendly wiki, and Socialtext, the business-friendly workspace application build on Kwiki. The core object model and formatter are identical, so migration was easy.

Blogging in Tongues

Just read a lovely review of October Sky by Victor Ruiz, in Spanish, with the help of a bookmarklet phrase translator.
The brouhaha about Ublog’s acqusition by 6Apart and some conversations with Spanish bloggers on Joiito was inducement to read blogs in Spanish and French. But I don’t have enough vocabulary to read fluently. Picking up a dictionary — or even opening another browser window to google-translate — is sufficiently slow enough that I just won’t incorporate non-english blogs into daily browsing.
I really wanted a one-click method of translating an unfamiliar word. So I modified a couple of these translation bookmarklets to accept phrases instead of whole pages.
Words that give meaning and context to the story — cohete = rocket, huelgas = strikes — are suddenly a click away.

Groupforming around the INDUCE Act

An impromptu discussion group gathered in Ed Felten’s blog comments as the Senate Judiciary Committee discussed the INDUCE act, another bill that bans innovative technology in the guise of protecting copyright.
I picked up a link to the hearing from a blog, discussed on #joiito at the time, and found the Felten conversation yesterday, through a Technorati search.
Technology vendors and tech activists were able to swarm and organize strong, cohesive opposition to the bill, which was submitted close to a deadline.
Unlike the DMCA a decade ago, technology vendors and public interest groups like EFF and Public Knowledge are sticking together, and acting cohesively to fight threats to innovation and creativity.
It’s incredibly cool for interested citizens to be able to organize an ad-hoc crowd to watch the hearings. I can’t wait for the day when the senate committee will use Technorati and its cousins, and the virtual gallery will be visible to the government.