I presented at the Oz-IA conference today in Sydney on "Succeeding at IA in the enterprise". I'll share the presentation file as soon as I work out why it won't let me upload the file to my site. In the... 2006-10-01T16:56:24+10:00
(link) [ Column Two ]

I gave a presentation today at the inaugural Oz-IA conference in Sydney. The topic of the talk was on "Succeeding at IA in the enterprise", covering: Reworking our methodologies Taking a strategic approach Tackling organisational change Understanding technology Taking a... 2006-10-01T17:23:11+10:00
(link) [ Column Two ]

Many intranet teams see themselves as battling resistance to change when attempting to grow the intranet or deliver new functionality. The challenge is perceived as overcoming these barriers to a successful intranet. In practice, though, the real enemy of intranets... 2006-09-30T14:44:18+10:00
(link) [ Column Two ]

The intranet homepage can be the most coveted piece of online real estate in your organisation. Everyone will have their own firm view as to how the homepage should be used to drive organisational imperatives. Managing these competing priorities is... 2006-09-30T14:37:57+10:00
(link) [ Column Two ]

There are two major elements to most web redevelopment projects: the redesign of the existing site, and the selection of a new (or replacement) content management system (CMS). These two elements reflect the underlying issues that typically drive web projects:... 2006-09-30T14:50:28+10:00
(link) [ Column Two ]

Scott Berkun has written an article on the ideal designer and project manager. To quote: One question I'm often asked is what is the ideal designer? - I get this from managers or VPs in tech companies, trying to figure... 2006-09-30T15:32:48+10:00
(link) [ Column Two ]

This week I participated in a workshop with the CIA on blogs and wikis. What was fascinating was not just that the participants included Clay Shirky, David Weinberger, Jerry Michalski, Eugene Kim, Marcia Conner and Jay Cross. The agency perhaps... 2006-09-28T07:54:13-07:00
(link) [ Ross Mayfield's Weblog ]

Toby Ward has written an article on branding the intranet. To quote: Does this mean though that the intranet home page should look like the Internet home page? No it doesn't. It should not be a replication of the external... 2006-09-28T11:41:42+10:00
(link) [ Column Two ]

The only public class I’m giving in the U.S. this year will be in Wisconsin, on October 18-19. It will be a version of my Rapid Software Testing Class, focusing on Exploratory Testing.
Details can be found at http://wisqa.org/bachclasses.htm
Wed, 27 Sep 2006 18:57:05 +0000
(link) [ James Bach's Blog ]

My examples below use a simple rule for deciding what values
of a boolean expression to test. I should probably describe it and
justify it.

Given an expression with all ands like X1
and X2 and ... and Xn, you use these
test values:

One case: all the Xi's are true.

N cases. In each, all
the Xi's are true except
for one that's false. (A different one every time.)
The way I think about it is that, for
each Xi, there's an example that shows the
whole expression is false exactly and only because of it.

So the table for (A and B and C) would be this:

A and B and C

A

B

C

expected result

t

t

t

t

F

t

t

F

t

F

t

F

t

t

F

F

The case for or-expressions is similar: just flip all
the trues and falses:

A or B or C

A

B

C

expected result

f

f

f

f

T

f

f

T

f

T

f

T

f

f

T

T

The reasoning behind these rules is based on mutation
testing, the name for a long thread of academic research on
testing. The way I state it (which is different in an unimportant
way from how it's usually put) is that mutation testing involves
assuming that the code is incorrect in some definable way, then
asking for a test suite that can distinguish the incorrect code you
have from the correct code you should have.

Now, for any given program, there are an infinite number of
variants, so mutation testing depends on picking a
definition-of-incorrectness that (a) lets you generate a reasonably
small set of alternatives, but (b) gives you confidence that you've
caught all the plausible errors. The usual approach is to
assume one-token errors.

For example, suppose you are given (A and B or C). Maybe
it should be (A or B and C) or (A and not
B or C) or (A and (B or C)).1

One-token errors aren't the only ones you could make. For example,
you might completely forget that D ought to be involved in the
expression—it should be (A and B and C and
D). That's
a fault of
omission, and mechanical techniques aren't good at
them. Nevertheless, one-token errors seem to work pretty well for
boolean expressions.

Suppose you have the original (A and B or C) and a
variant (not A and B or C). The test
value (A=true,B=true,C=true) distinguishes the two,
because the given expression yields true while the
possibly-more-correct variant would yield false. So,
when you run the original program and its variant2, that test case will produce
one answer in the original and a different one in the variant. One
of them's got to be wrong. If it's the original program, you've
found a bug. If it's the variant, you know that variant cannot be
the correct program (the original is not incorrect in that way). In
the jargon, the mutant is killed.

Trying all the possible combinations of variable values will either
find a one-token error or kill all the mutants. But you never have
to try all of them. There will be some test inputs that don't add
anything: any mutant they kill will be killed by some other test
input. So you can construct a minimal set for any given expression.

If you look at the table below, you can see that the rule
for and-expressions I gave above is justified; the
cases I give kill all the mutants. (In the table, the first row is
for the expression as given; each row below it is a mutant. The X's
in a cell means that column's test case kills that mutant.)

A

B

C

T

T

T

A

B

C

T

T

f

A

B

C

T

f

T

A

B

C

f

T

T

A

B

C

T

f

f

A

B

C

f

T

f

A

B

C

f

f

T

A

B

C

f

f

f

A && B && C

T

f

f

f

f

f

f

f

!A && B && C

f / X

f /

f /

T / X

f /

f /

f /

f /

A && !B && C

f / X

f /

T / X

f /

f /

f /

f /

f /

A && B && !C

f / X

T / X

f /

f /

f /

f /

f /

f /

A && B || C

T /

T / X

T / X

T / X

f /

f /

T / X

f /

A || B && C

T /

T / X

T / X

T / X

T / X

f /

f /

f /

A && B

T /

T / X

f /

f /

f /

f /

f /

f /

A && C

T /

f /

T / X

f /

f /

f /

f /

f /

B && C

T /

f /

f /

T / X

f /

f /

f /

f /

Remember all this assumes that tests powerful enough to catch
one-token errors will catch more complicated (but still plausible)
errors. A way to convince yourself is to try and find a variant
of (A and B and C) that won't be caught by these test
cases. Ask yourself if it's at all plausible that you'd make such an
error. (Remember: we've already conceded faults of omission.)

These rules are easy to memorize. The cases for expressions that
mix and and or are not. A long time ago, I
wrote a program that generates probably-minimal test sets for any
given boolean expression (including relational operators
like a<b). Timothy Coulter and Curtis Pettit,
students of Cem Kaner, made it
more capable and gave it a web UI. Here it
is: http://www.oneofthewolves.com/multi/applet.html.

When using the style I described earlier, I don't think you need
multi, because I'm tentatively advocating always breaking tables that
combine ands and ors into separate tables
that do not.

1 I can't remember if the transformations I used when
working all this out included substituting one variable for another
(like (A and B and A)). Multi, described after this
footnote, doesn't. I don't think it would make a
difference—certainly it doesn't in this particular example—but I'm not
going to bother to check.

2 I'm leaving what it means to "run
a program" vague. That gets to the difference of whether the
mutation is "weak" or
"strong". See this post
by Ivan Moore. I didn't find
much in the online literature about mutation testing; if you want to
know more, you'll have to go to the library. There are some starting
references at the end
of this
paper (PDF).

I'm too sick to write what I should be writing, and I can't sleep, so
I decided to
collect my thoughts and references about a current political
topic I've been studying as I have time. The normal sort of
posts will return shortly, but for the moment I'll use whatever reputation I have for careful-but-sympathetic
thought to push back against an all-but-inevitable failure.

My understanding is
that habeas
corpus is a method by which prisoners can challenge their
imprisonment before a judge. The idea has worked pretty well
for 700 years. It fits with John Adam's phrase
"a government of
laws, not men": no one has exclusive power; everyone is subject
to being checked and balanced.

The bill allows for review of detentions by military commissions, but to date
only ten have
been held. People can be held forever without any
recourse. (Some people have continued to be held even after review found them innocent, though a large number have
been released.) In newer versions of the bill, "people" can
include US
citizens. Unlike the military's current definition of unlawful combatant, which covers only
"those who engage in acts against the United States or its coalition
partners in violation of the laws of war and customs of war during
an armed conflict," the new one covers anyone who "has engaged in hostilities or who
has purposefully and materially supported hostilities against the
United States" or its military allies. Who are our allies? What does
"material support" mean? I guess some of us might just find out.

During detention, what? It is simply not the case, as the President
stated, that Geneva Convention Common Article 3 is impossibly
vague about the treatment of prisoners. Ironically, on the same day as that statement, the US
military released
its new
procedures, which explicitly conform to the Geneva
Conventions. It's not surprising that, in over fifty years, we've
been able to come to agreement about what the Conventions require. But now we're
going to replace them with new language that will have to be
freshly interpreted. Everyone, save the people who'll actually be
making the decisions—who refuse to commit themselves—is running around saying
"waterboarding
is allowable" or "waterboarding is not allowable", but that's
silly. In the absence of court review, what's allowable is whatever's
done. The legal principle is that
"there is
no right without a remedy."

(Stories about what's being done will leak, I suppose, as they always
do. That could lead to some sort of remedy. I wonder if
leaking, receiving, or reporting leaks counts as "material
support"?)

I am absolutely convinced [that] no good intelligence is going to come
from abusive practices. I think history tells us that. I think the
empirical evidence of the last five years, hard years, tell us
that. . . . Moreover, any piece of intelligence which is obtained
under duress, through the use of abusive techniques, would be of
questionable credibility, and additionally it would do more harm than
good when it inevitably became known that abusive practices were
used. And we can't afford to go there.

Some of our most significant successes on the battlefield have been --
in fact, I would say all of them, almost categorically all of them,
have accrued from expert interrogators using mixtures of authorized
humane interrogation practices in clever ways, that you would hope
Americans would use them, to push the envelope within the bookends of
legal, moral and ethical, now as further refined by this field manual.

We don't need abusive practices in there. Nothing good will come from them.

(From the announcement of the new procedures, above.)

But there's no institutional check on the non-professionals or the
rogue professionals. We'll just have to rely on
the moral character of everyone involved. That's of course entirely
opposed to the American tradition of rule by laws, not men, but
<sarcasm&gt apparently we face a threat more grave than the 45,000
nuclear warheads the Soviet Union had at its peak and a struggle
more threatening than World War II, and so cannot afford the
traditions that have
worked for more than two hundred years </sarcasm>.

We certainly face
threats—always have, always will—but I don't see any
reason to give into the "this time it's
different" fallacy.

All this matters to me because my parents grew up in Nazi
Germany. I grew up knowing that cultures can descend into
madness, and that it can happen without the majority ever really
explicitly willing it or being really conscious of it. No, I'm not saying that America is
just like Nazi Germany; I'm saying that men like my
grandfather—not politically involved, just trying to live
their lives—somehow, through fear or anger or depression or
just passivity, let decency slip out of their grasp.

It also matters because I grew up knowing that the Americans were the
good guys. My father (in the German Navy) was captured near
Marseille. He didn't mind; he and his fellows didn't fight
back. They wanted out of the war, and they wanted to surrender to the
safest force: the Americans. Prisoner of war camp (American and
French) was no picnic—my father weighed 130 pounds when he got
out—and there was abuse, but it was not institutionalized
(except in one camp, for a short time). He got what he expected, and
he believes he has no cause for complaint.

In contrast, my Uncle Paul was captured by the Soviets on the
eastern front. I imagine he fought harder than my father to avoid
capture, because everyone knew what happened to Russian prisoners. And it
did happen: it was 1950 before he even knew the war was over, and he
came home broken for life.

There's practical value to being seen as the good guys, the just
guys, the humane guys. That's not just true when fighting Germans;
it
works in the middle east, too.

Out of fear or anger or depression or
just passivity, we're letting our elected representatives—our
employees—reinforce hysteria to no effective end.
If that bothers you,
here
is your Senator's contact information,
and here is
your Representative's.

Although this bill is being pushed by Republicans, I believe it
should not be a partisan issue. The bill does not square with
the conservative tradition
of Chesterton's
gate. It's being rushed through because what being a Republican
politician
today means is all about winning at domestic politics. (Just as
being a
Democratic politician appears to be all about not losing.) I
can echo the
the author of this
fantastic essay: I miss Republicans. I miss Eisenhower;
he'd surprise
you.

Steve Yegge: “Up until maybe a year ago, I had a pretty one-dimensional view of so-called ‘Agile’ programming, namely that it’s an idiotic fad-diet of a marketing scam making the rounds as yet another technological virus implanting itself in naive programmers who’ve never read ‘No Silver Bullet’, the kinds of programmers who buy extended warranties and self-help books and believe their bosses genuinely care about them as people, the kinds of programmers who attend conferences to make friends and who don’t know how to avoid eye contact with leaflet-waving fanatics in airports and who believe writing shit on index cards will suddenly make software development easier.”

“If you limit your choices only to what seems possible or reasonable, you disconnect yourself from what you truly want, and all that is left is compromise.”Over the past couple of weeks, I've reached my Gmail storage limit, currently 2768... 2006-09-27T07:48:42-07:00
(link) [ Ross Mayfield's Weblog ]

Introducing collaboration technologies to the enterprise is a challenge ( Column Two )

Dennis McDonald has written a piece on the challenge of introducing collaboration technologies in the enterprise. To quote: Successful collaboration tool introduction is based less on the characteristics of the tool itself than on the motivation users have to use... 2006-09-27T13:26:59+10:00
(link) [ Column Two ]

I was too busy to blog this yesterday, but Socialtext became one of the first sponsors of Techmeme's new ad format and it might be helpful to share the rationale. What is appealing about the format itself is the ability... 2006-09-26T22:00:30-07:00
(link) [ Ross Mayfield's Weblog ]

Using Fit to describe boolean (yes/no) decisions can be much
clearer if you just insist that all decisions be expressed in
multiple, uniform, simple tables. No boolean expressions in the code
may mix ands and ors, but that's not a bad
idea anyway in this age of small methods and ubiquitous languages.

Suppose you're given a jumble of three packs of cards. You are to
pick out every red numbered card that's a prime, not rumpled, and is from
either the Bicycle pack or the Bingo pack (but not from the Zed
pack). Here is a way you could write a test for that using
CalculateFixture:

which pack?

color?

prime?

rumpled?

select?

Bicycle

red

3

no

yes

Bingo

red

3

no

yes

Zed

red

3

no

no

Bingo

black

3

no

no

Bingo

red

4

no

no

Bingo

red

Queen

no

no

Bingo

red

Ace

no

no

Bingo

red

3

yes

no

I bet you skimmed over that, read at most a few lines.
The problem is that the detail needed to be an
executable test fights with the need to show what's
important. This is better:

which pack?

color?

prime?

rumpled?

select?

Bicycle

red

3

no

yes

Bingo

red

3

no

yes

Zed

red

3

no

no

Bingo

black

3

no

no

Bingo

red

4

no

no

Bingo

red

Queen

no

no

Bingo

red

Ace

no

no

Bingo

red

3

yes

no

That highlights what's important: any card must
successfully pass a series of checks before it is accepted. This test
better matches what you'd do by hand. Suppose the cards were face
down. I'd probably first check if it were rumpled. If so, I'd toss
it out. Then I'd probably check the back of the card to see if it
had one of the right logos, flip it over, check if it's black or a
face card (two easy, fast checks), then more laboriously check if it
matches one of the prime numbers between 2 and 10 (discarding Aces
at that point).

The code would be slightly different because it has
different perceptual apparatus, but still pretty much the same:

It does bug me that the table looks so much more complex than the
code it describes. It still contains a lot of words that don't
matter to either the programmer or someone trying to understand what
the program is to do. How about this?

All the following must be true to accept a card:

description

example

counterexample

the right manufacturer

Bicycle, Bingo

Zed

the right color

red

black

the number is prime

2, 3, 5, 7

4, Ace, Queen, etc.

the card is unrumpled

yes

no

From this, the Fit fixture could generate a complete table of all
the given possibilities, run that, and report on it.
(Side note: why did I pick Queen as a counterexample instead of Jack
or King? Because if the program is storing all cards by number, the
Queen will be card 11. Since I'm not going to show all
non-primes—believing that more trouble than it's worth—I
should pick the best non-primes.)

The same sort of table could be created for cases where any one
of a list of conditions must be true.

Now, many conditions are more complicated than all of
or none of or any one of. However, all conditions
can be converted into one of those forms. Here's an example.

Suppose
you're allowed to pay a bill from an account if it has enough
money and either the account or the "account view" allows
outbound transfers. That would be code like this:

I claim that code is just as good or even better. It's better
because there's less of a chance of a typo leading to a bug
(writing a && b || c instead of a && (b ||
c)). It's also arguably better because a new word and perhaps
idea have been introduced into the project language: "money
source". I think finding the right words is often important.

The corresponding tables would be like this:

All of the following are required to pay a bill:

the balance must be sufficient

the account must be a money source

One of the following is required to be a money source

the account may transfer

the accounts view may transfer

In this particular case, I left off the Example
and Counterexample columns because they're obvious. I'd
expect the fixture to fill them in form me. I didn't include a table about
the balance being correct because I wouldn't think the programmers
would need it, nor would others need it to believe the programmers
understand it.

One thing that worries me about this is that the table doesn't rub
your nose in combinations. Such a table is more likely to force
you to discover business rules you'd forgotten about, that you'd
never
known about, or that no one ever knew about. (Well, it does that for
a while - until the
tedium makes your mind glaze over.) In a way, this fixture makes
things too easy.

On the other hand, there's something to be said for protecting later
readers from the process through which you convinced yourself you
understood the problem.

I'm tempted to launch into implementing this, but I have other
things to work on first.

It's going to be a busy few weeks in terms of conferences, four in three weeks: Southern Currents (Melbourne) I'm going to be giving an extended presentation to a room full of legal librarians on the design and enhancement of... 2006-09-24T20:17:12+10:00
(link) [ Column Two ]

Toomas Hendrik Originally uploaded by MukiFuki. The first Estonian diplomat I ever met, Toomas has been elected President of Estonia. Back when I worked at the U.S.-Baltic Foundation and through when I worked for Lennart Meri, Toomas was the ambassador... 2006-09-23T19:32:52-07:00
(link) [ Ross Mayfield's Weblog ]

Press! I have a 50mm macro lens for my camera, and it's a joy to work with. What I love the most is being able to make extraordinary photos out of the most mundane of situations, such as this... 2006-09-23T23:31:21+10:00
(link) [ Column Two ]

Jane McConnell has written a piece on the compelling reason for a global intranet. To quote: I was recently asked to help a company define the compelling reasons they should have a global intranet. In other words, why not just... 2006-09-23T17:06:27+10:00
(link) [ Column Two ]

Frank Spillers has posted details on the poster presenting the importance of user experience. To quote: Here's a poster that reflects some thoughts about user experience...all of the bottom row items (outcomes of positive user experiences) in the poster are... 2006-09-23T18:58:07+10:00
(link) [ Column Two ]

Maria writes:
A) Your presentation “Test Strategy: What is it? What does it look like?” applies to creating a test strategy for a specific application (I’ve also read Ingrid B. Ottevanger’s article on “A Risk-Based Test Strategy”). How can I apply the idea to an overall test strategy for the company that I’m working for? Is [...] Fri, 22 Sep 2006 20:46:00 +0000
(link) [ James Bach's Blog ]

I read Tom Wolfe's The Right Stuff a zillion years ago. One
passage hit me then, and it's stuck with me. The time is somewhere
in the beginning of the Mercury program:

Asking
Gus [Grissom]
to "just say a few words" was like handing him a knife
and asking him to open a main vein. But hundreds of workers are
gathered in the main auditorium of the Convair plant to see Gus and
the other six, and they're beaming at them, and the Convair brass
say a few words and then the astronauts are supposed to say a few
words, and all at once Gus realizes it's his turn to say something,
and he is petrified. He opens his mouth and out come the words:
"Well... do good work!" It's an ironic remark, implying "... because
it's my ass that'll be sitting on your freaking rocket." But the
workers start cheering like mad. They started cheering as if they
had just heard the most moving and inspiring message of their
lives: Do good work! After all, it's little Gus's ass on top
of our rocket! They stood there for an eternity and cheered their
brains out while Gus gazed blankly on them from the Pope's
balcony. Not only that, the workers—the workers, not the
management but the workers!—had a flag company make up a huge
banner, and they strung it up high in the main work bay, and it
said: DO GOOD WORK.

This paper presents a fully independent security study of a Diebold
AccuVote-TS voting machine, including its hardware and software. We
obtained the machine from a private party. Analysis of the machine,
in light of real election procedures, shows that it is vulnerable to
extremely serious attacks. For example, an attacker who gets physical
access to a machine or its removable memory card for as little as one
minute could install malicious code; malicious code on a machine
could steal votes undetectably, modifying all records, logs, and
counters to be consistent with the fraudulent vote count it
creates. An attacker could also create malicious code that spreads
automatically and silently from machine to machine during normal
election activities—a voting-machine virus. We have constructed
working demonstrations of these attacks in our lab. Mitigating these
threats will require changes to the voting machine's hardware and
software and the adoption of more rigorous election procedures.

Since this is by no means the first report, I feel safe in saying
Diebold is not DOING GOOD WORK.

I wish people who could matter—that especially means
you, Fourth
Estate—cared. We're all on top of the freaking
rocket. (Not just the US, since the size of our military and economy
puts much or all of the world on the rocket too.)

I'm sure there are people at Diebold who feel embarrassed or even
humiliated by what their company is selling. If any one of them wants
throw caution and good sense to the winds and hang up a DO GOOD WORK
banner, I'll buy it for you. Seriously.

“So, to make RSS much easier to understand, in Oprah speak, RSS stands for: I’m ‘Ready for Some Stories’. It is a way online for you to get a quick list of the latest story headlines from all your favorite websites and blogs all in one place. ” — RSS the Oprah Way

This morning we announced Socialtext 2.0. Techcrunch has the story. This screencast gives an overview of the first major enhancement, the UI: Charlie Wood highlights the second part, Wiki Web Services.In addition to UI enhancements, SocialText 2.0 adds what the... 2006-09-21T12:07:44-07:00
(link) [ Ross Mayfield's Weblog ]

This totally corresponded to what I was seeing... suddenly any app that tried to do a DNS lookup of any sort would go into permanent beachball mode and never recover.

Some Googling around led me to a page by John Bafford that said "Lookupd has a bug (rdar://3632865) in its cache cleanup code that causes it to randomly crash. CrashReporter, the system crash log agent, does not properly handle lookupd crashes, and as a result, when lookupd crashes, the process is not terminated. Since lookupd has not terminated, mach_init does not respawn lookupd. From this point, any application that attempts to access lookupd, either directly or indirectly, will hang."

Hmmph. Kindly, John provides Unlockupd, a daemon that watches lookupd and restarts it if it gets jammed up.

I'll try this for a while and see if it helps. In the meantime, if it's true, it's odd that Apple hasn't fixed this bug in over two years. If somebody inside Apple wants to peek into that bug (link only works inside Apple) and let me know what they see there, I'll update this article!

Lou Rosenfeld has published the results of IA surveys conducted over the last few months. To quote: For the new edition of the polar bear book (almost done!), Peter Morville and I conducted five surveys of the information architecture community.... 2006-09-21T20:16:16+10:00
(link) [ Column Two ]

As revealed a few days ago, we've embarked on a brand new initiative, the setting up of the Intranet Leadership Forum. We're still pulling together all the details, but I can provide a sneak peak into the structure of the... 2006-09-21T20:45:02+10:00
(link) [ Column Two ]

Shawn Callahan has posted an entry on why people don't use collaboration tools. To quote: David Pollard offered for anyone on the net to join him is a joint collaboration project using Writely. The topic: Why are conversation and collaboration... 2006-09-21T20:34:13+10:00
(link) [ Column Two ]

I've been invited to
the Software
Practice Advancement Conference. The idea appeals: expense-paid
trip to London, opportunity to rouse the rabble along some lines
I'll be previewing here as I have time, and a conference that's said to be
good (I've never been). On the other hand, I hate overseas flights
because I can't sleep on planes, and Dawn almost certainly can't come
with.

Here's what would tip me over the edge. There are lots of people I
could learn from in London. If there are teams there who do
something really well (making small stories, writing FIT tests,
release planning, etc. - anything), I would like to come work with
you for several days. Not just visit and watch, but act as much like
a team member as I can. Let me
know.

P.S. The idea of visiting practice is part of what I want to rouse the rabble
to, something that lives in the same space as
the MFA for
Software, something that's part of my formal discussion of Jim
Waldo's OOPSLA essay
On
System Design, which will be titled something
like Surviving in a World of Ever-Looming Malignity: Or,
Monasticism for the Married.

If you use Blogger.com for your blog, you’ve just lost a subscriber. Sorry, I really liked your content, but the constant and random switches that Blogger makes between full and partial feeds has finally broken my will.

Several times a day I end up with dozens of “new” items in my reader simply because the feed contents changed from a full to a partial feed or vice versa. For a while, I just told my reader not to re-display updated feed items, but it seemed that every time a feed was actually updated, Blogger decided to show a partial item.

Blogger was a pioneer — even I used Blogger for a year shortly after starting this blog. But it seems that Google’s ignoring their acquisition. Things aren’t getting better, they’re getting worse.

Scott Berkun has posted the results of an innovation survey that he conducted. To quote: Last month I ran an open survey on innovation to help with my book in progress. Nearly 100 people from scientists, to programers, to writers... 2006-09-20T10:19:10+10:00
(link) [ Column Two ]

One of the techniques I use for my own technical education is to ask someone a question or present them with a problem, then think through the same issue while listening to them work it out. As it proceeds, I ask handfuls of Socratic questions. As I ask each question out loud, I answer it [...] Wed, 20 Sep 2006 01:58:15 +0000
(link) [ James Bach's Blog ]

Over the last six months, Sprint has been trying to get bloggers (like me) to write about their new Power Vision Network by sending us free phones and letting us download music and movies and use the phones for free.

That’s rather nice of them, but honestly, I have a really strong aversion to writing about things just because some PR person wanted me to. Basically, there’s no better way to make me not want to write about something than to ask me to write about it. I accepted the free phone because, gosh, well, it’s a free phone, but I decided that I simply wouldn’t write about it no matter how much I liked it.

As it turns out, I had the opposite problem. The phone they sent me, an LG Fusic, is really quite awful, and the service, Power Vision, is tremendously misconceived and full of dumb features that don’t work right and cost way too much. So I’m going to review the dang phone anyway, even though if anybody from Sprint is paying attention they’re going to lose their lunch and some executive bonehead over there is going to go nuts and I sincerely hope that this doesn’t put an end to the entire free-phones-for-bloggers boondoggle, because I’d hate to get beaten up at Etech next year by all the other bloggers who would hate me for spoiling all the fun.

Now, on to the review. I was pretty excited to try out this phone because I’ve been longing for one that could double as a decent MP3 player. Most days, I get to work via a combination of subway and walking, which takes about half an hour, and listening to podcasts makes the commute much more pleasant. So I’ve been carrying a phone (a Motorola RAZR) and an iPod (Nano) with me everywhere. Merging the two into one device would be great.

When it finally arrived, the physical appearance of the phone was rather disappointing. If you’ve been spoiled by Motorola’s latest phones, or the seamless, screwless, elegant iPod, the LG Fusic will strike you as butt-ugly. Where a Motorola RAZR has a solid case made out of almost sensual matte-black steel that just feels great, the LG Fusic is made out of the cheapest kind of gray plastic, the same material you find on a $3 toy. Where Motorola goes to great lengths to hide the screws, and minimize bumps and seams, the LG Fusic has dozens of ugly protuberances, gaps, holes, screws, seams, etc. Worst of all, the LG Fusic has no less than three of those evil, flimsy, rubbery plug-caps that are connected to the phone by the thinnest of filaments. You know, those stupid rubber plugs that you have to pull away to plug anything into the phone, and then they just dangle there like chicken wattles (when they’re not getting in the way of the thing you’re trying to plug in) for a couple of weeks until they finally tear off. The phone is almost twice as thick as a RAZR. It comes with a break-offable front plate which can be used to change the accent color of the very front of the phone. Your choices are Barbie Pink, Barbie Green, Barbie Blue, and Black which would be the only stylish choice, if only it didn’t clash so badly with the rest of the phone. (Believe me, it is hard to make black clash with anything, but LG did it.) Overall this phone seriously looks like a Fisher Price toy, not a top-of-the-line cell phone.

OK, maybe you’re not so vain that appearances are a big deal. I tried to get over it. I really did. I promise I won’t talk about the style thing any more.

I opened the clamshell and turned on the phone.

The screen lit up instantly! Wow, something about this phone is nice.

Oh, wait a minute. What’s going on there?

The main screen shifts between pictures of Mount Fuji, the Eiffel Tower, etc. That’s charming. But what’s that bus?

There’s a cheezy little black and white child’s drawing of a bus bouncing up and down in front of the cheezy tourist pictures. Again with the Fisher Price Toy theme. The first thing I try to do is find a better screen saver. Everything looks like some kid’s 6th grade BASIC graphics project. Oooh, look, colored squares flying around. Terrible clip art of a “DJ”. One of the screen savers is called “Funny.” You get a silhouette of a lizard climbing around on a pink background. Bwa ha ha! That is funny. TO TWO YEAR OLDS.

OK, ok, I promised I’d stop talking about style. On to UI design.

The main menu was really, really confusing.

The first thing you see when you click on the Menu button is that you missed some alerts:

Although, it turns out, you didn’t, that's just the name of the menu item that comes up first.

You can’t see all the icons at once because someone had the bright idea of using a weird 3-D perspective, and the currently selected icon comes zooming out in front, covering up some of the other icons. All the unselected icons are shown in silhouette, so at first they just look like a background. It took me quite a while to figure out just what the menu was and how to find things I wanted from the main menu.

But don’t worry… there are random bits of sparkle that fly around on the screen. That’s the important part. The random bits of sparkle, again, a 6th grader’s BASIC graphics project.

Now, on to the whole reason I wanted this phone: the MP3 player.

There’s no desktop integration, no ITunes integration, no feature for subscribing to Podcasts, nothing like that. When you plug the phone into your computer using the supplied USB cable, it thinks you want to use the phone as a modem. Yes, one day I might want to do that, that’s true, but for now I just wanted to get MP3s onto the thing. Somehow, somewhere, I managed to stumble on a menu that made the phone act like a USB hard drive. Tada! The phone pops up on my computer looking like a hard drive. And then there was already a MUSIC folder there, and I could drag MP3 files in. Yay! I downloaded TWiT episode 69 manually and headed off to the subway to listen to it.

Wait… I need headphones. Ahh, here they are. Wait a minute. The headphone cord is only about 8 inches long. Am I supposed to hold the phone up to my chin to listen to music?

Oh, I see, there are two cords. You have to plug the headphone cord into the microphone cord and plug that into the phone. Now it’s long enough. OK, it’s awkward, but I can live with that.

To listen to the MP3s you’ve downloaded:

Hit the MENU button

Find the ON DEMAND menu item (I demand to hear MP3s!)

Nope, that’s not what you wanted

Hit BACK

Nothing happens (darn!)

OK, try END

Do you want to exit this application?

YES is already highlighted. Click OK.

Huh? The application didn’t exit.

Click END again.

YES is already highlighted… oh… wait a minute! Maybe NO is highlighted? There’s no way to tell the difference. There are two choices, one is white and one is blue, it’s hard to see which is highlighted.

Fool around with the cursor keys until you’re pretty sure that YES is highlighted. This is confusing, because the two-item menu wraps around, so the up button moves down and the down button moves up, or vice versa.

Remove the battery and put it in again. That should get you back to the main menu.

Media player? Is that what you want?

Yeah, there’s something in here called Music…

It has about 50 options. What do they mean? SIRIUS hits? MUSIC CHOICE? SIRIUS MUSIC? Some of them are listed as My Channels and some are listed as Available Channels. Which is which? The UI here is really getting confusing.

OK, none of those options lets you listen to MP3s. It turns out there’s something called MUSIC on the Main Menu.

Ahh, that brings up the happy “booting Java” screen which is so heartwarming. Thank you Sun Microsystems for bringing programming language advertisements into consumer electronics.

The Java applet has two tabs, “Store” and “Player.” Try buying a song. It’s $5 for 3 songs. That’s a ripoff, Sprint. Apple already established that the fair price for one song is $0.99.

OK, I just want to listen to Leo Laporte, dammit. Maybe the Player tab?

Gotta choose between “All My Music” and “Create Playlist…”.

W00t! THERE’S TWiT!

Click on it, and listen to TWiT.

All right. TWiT is more than an hour long, and I only listened to half of the episode by the time I got home. Luckily, there’s a handy PAUSE button on the outside of the clamshell. Unluckily, it doesn’t work. Pressing it once informs you that the buttons are locked, and you have to press and hold the pause button to unlock. So you do that, and the key guard goes off, and you press the pause button again, and nothing happens, so you press it again, and finally you’ve paused the music.

In the meantime, if, say, hypothetically, you were pausing because you live in a country where the police brutalize people, and a policeman was brutalizing you, and you wanted to stop the music so you could try to figure out what the policeman wanted and perhaps there was some way if you could just hear him that you could get him to stop beating you with a riot bat, you’re already DEAD by the time you figure out how to make the pause button actually pause.

While the MP3 player is paused, the backlight on the external display just won’t go off. So inadvertently, the phone almost completely runs down its battery overnight staying in “Pause” mode.

Why not turn the phone off overnight? Well, because then I’d have to listen to the first half of TWiT all over again. Can’t you fast forward? No. Doesn’t it remember where you’re up to like an iPod? No. Pause is your only hope.

The next morning, with a single bar of battery juice left, I got into the subway and resumed listening to the podcast, and I’m a wise guy, so I decided to see what the battery looked like, and of course, the phone lost power, oops, lost my place in the Podcast.

Put back the battery. Turn on the phone. Go into the MP3 player again. There’s no signal, and, guess what? You can’t get into to the MP3 player unless you can establish a network connection to the Sprint Music Store. Even to play your own MP3s!

OK, so this is an MP3 player that doesn’t really work on the subway and won’t work on a plane, the two places I’m most likely to listen to MP3s. Not very appealing.

A little bit more exploring and I discovered that there’s another entirely separate MP3 player on this device. It’s hard to find. You have to go to Tools, then Memory Card, then to the Music folder, and another MP3 player starts up which you can use to listen to your MP3s. For this player, you don’t have to be on the network, so it works in the subway, but—get this—the minute you close the clamshell, the music stops! I am literally not making this up. There are two bad MP3 players on this device, neither one of which remembers where you’re up to, neither one of which can be used on the subway with the phone folded in my pocket, neither one of which has a fast-forward feature.

I have literally never seen such a useless MP3 player.

OK, onward. Yes, you can watch movies on this phone. For example, for $5.95 a month, you can get something called mFLIX. Until you pay the money, there’s no way to find out what mFLIX is or what it is you’re getting for your $5.95. I’ll tell you what you get: a bunch of garbage film-student videos that nobody would ever vote up on YouTube, in a tiny blurry window that reminds you of QuickTime 1.0 (“look! It’s on a computer but it’s moving!”).

That was disappointing. I thought this thing was supposed to have full length movies somewhere. Ah yes, how about “MSpot Movies?” It says I’m going to get “Full-length Hollywood movies.” Only $6.95 a month. Yes. Buy buy buy. (Thankfully Uncle Sprint is paying for this). Oh look… you can preview before you commit to spending! Clicking Preview brings up a page that says PREVIEW with a “Done” button. That’s it.

OK, maybe they don’t want me to preview. Fine. After you click Buy, you’re thrown back to a main menu somewhere and then you have to remember what the hell you bought and go find it again. Annoying UI, again.

OK, MSpot Movies. A menu comes up with a bunch of folders:

Animaland

Classic Cartoons

Freestyle Motorcross

Nightmare In Blood

The Projectionist

Heart of a Champion

One Love

I don’t understand. Are these movie titles? Not movie titles I’ve ever heard of. Yep, it’s true. What you get for $7/month is about 10 movies that seem to be in the public domain. Literally nothing worth watching, least of all on a smudgy 1 5/8” (diagonal), pixelated screen. I did, actually, as a part of my sacred duty as a reviewer, try to watch a whole movie. I could only stand about the first 1/3rd of it, and the battery was dying, and the phone was getting too hot to hold. I cannot imagine anybody finding any value in MSpot Movies. If Sprint makes any money off of them, it’s probably by mistake. This service is literally as much of a scam as those X-Ray glasses they used to advertise in comic books to steal a few bucks from some little kids.

The only kind of content you might really want to watch on this device is the stuff you find on YouTube, or video podcasts like The Show with zefrank. But that’s not what Sprint gives you. Instead they give you $7/month, ripoff, non-previewable scammy garbage.

A long time ago, I was working on MSN 1.0, and there was a long line of content providers working to make deals with Microsoft to put their content on the Microsoft Network, but in those days, it wasn’t clear exactly who should be paying who, so hardly any deals got made. In the meantime, the whole Web thing happened, where anybody could provide content without signing a deal with a Microsoft executive, and there was tons of content, and some of it was garbage, yes, but some of it was good, and we found the good stuff, and it floated to the top, and all was well, but Sprint doesn’t get this. They relish their ability to serve as the gatekeeper to what they hope will become a new medium, because the gatekeeper gets to charge tolls. And it’s 2006, and I almost can’t believe I’m writing this, because way back in 2000 I wrote almost exactly the same thing about WAP, and how cell phone companies keep failing to insert themselves as toll collectors because they’re so darn clueless about how the Internet works, and about the value of many-to-many networks instead of broadcast networks.

And now suddenly someone at Sprint read some book by Scoble and then they read Malcolm Gladwell’s theories of tipping points in the airport and Hey Presto! Maybe we can make this work by finding the tipping point people! You know, the bloggers! And all the bloggers get free cell phones, and Sprint gets tons of publicity, but frankly all the publicity in the world is not going to help them foist on us a product that is utterly pathetic. The phones they send us are so lame there is literally no area you can go into without being disappointed and shocked at just how shoddy everything is and how much it costs and what a rip off scam they’re trying to run here with the music that costs too much and the movies that you don’t want to watch on the screen that makes them unwatchable and you just KNOW that if you call to cancel the extra $7/month, their customer service department is going to give you the phone menu runaround and then put you on hold for an hour and then you’ll get some cancellation specialist with an incomprehensible accent who will spend 15 minutes trying to talk you out of canceling the useless service until you just give up and let them have the goddamned $7 a month. No amount of pampering bloggers and calling them Ambassadors is going to get around the fact that you’re sending us plastic junk phones that look like bath toys. (Hey, does it float?) All the “tipping point” theories in the world won’t protect Sprint from the basic truth that the LG Fusic user interface could basically serve as an almost complete textbook for a semester-long course in user interface design, teaching students of usability exactly what NOT to do.

Wait a minute.

Wait just one minute.

Maybe I completely missed the point.

Maybe this phone is for four year olds!

It all makes sense now!

The nonsensical menus don’t matter—four year olds can’t read! The toy-like appearance—duh! The ripoff movies—who cares, as long as the kids press BUY by mistake and the parents keep paying the bills!

Now I get it.

So really the only stupid thing that Sprint did is to send this phone to a bunch of know-it-all, hipster-wannabe, pretentious early-adopter engadget-reading 41-year-old bloggers, with our pretentious black iPods and our sleek gun metal RAZRs and our MacBook Pros and our so-called “Podcast” listening habits, watching zefrank tell potty jokes about The Decider.

No no no no no. This phone is for 4 year olds, albeit spoiled 4 year olds with rich parents. They’ll love the colors, the plastic, the impossible UI, they can watch the one 1936 movie that inadvertently fell into the public domain in class when the teacher is getting boring, and they sure as heck aren’t going on a subway with that thing.

MarkDown is a simple processor that converts text to HTML. For example, it converts &42;text surrounded by asterisks&42; to italics.

SmartyPants replaces "straight quotes" with “curly quotes” and makes a few other typographic improvements.

EditPad Pro is a very respectable text editor for Windows. It’s fast and contains scrillions of useful features. It’s not the fanciest thing in the world, but if you’re still using Notepad for the occasional bits of text, it’s a fine drop-in replacement.

Here’s what it takes to get them all working together on a typical Windows setup:

Install Perl, if you don’t already have it. For Windows, the easiest way to do this is from ActiveState’s download page. Just download the Windows MSI package and run it. Make sure to choose the option to associate .pl files with Perl.

Go into c:Perl and make a directory called markdown.

Download Markdown and SmartyPants. Open the ZIP files and put Markdown.pl and SmartyPants.pl in the directory you just made, c:perlMarkdown.

(You may have to change the path to the web browser you want to use to preview).

In EditPad Pro, choose Tools | Configure Tools. Click New. Set the Caption to “MarkDown”, and set the Command Line to c:perlmarkdownmd.bat %FILE%. You may want to check the box in the Files tab that says “Save the current file if it has unsaved changes.”

Now you have a menu item Tools|Markdown which will save the file you’re working on and generate an HTML version of it (replacing the extension you used with .html), then it pops it up in a web browser so you can check it.

CITCON London registration will be closing this week, it is just hard to know if we will hit the deadline of Friday September 22nd or the cap of 120 people first! At last count we have 85 people signed up and if history is a guide the remaining spots will go fast.

For those who aren't aware CITCON is the Continuous Integration and Testing Conference, a free open spaces (or unconference) event on continuous integration and the testing that goes with it.

Given the open spaces format it is impossible to predict what the exact session topics will be but a sampling of the topics (and notes) from the CITCON Chicago event from earlier this year is available on the wiki. Also available are some photos, feedback, links to related blog entries and more... More than enough to be convinced that you should sign up today!

Rod Boothby has written a blog post that provides answers to Enterprise 2.0 barriers (which were listed by Jerry Bowles). To quote: In the end, the adoption of Enterprise Web 2.0 technology is an issue of both risk and reward.... 2006-09-18T18:57:40+10:00
(link) [ Column Two ]

Indus Khaitan has written a piece introducing the concept of the writable intranet, as a way of explaining 'enterprise 2.0'. To quote: "Writable Intranet" is the corporate intranet of the future where employees collaborate using Wikis, Blogs and applications interoperate... 2006-09-18T18:44:05+10:00
(link) [ Column Two ]

Rahel Bailie writes about the process for selecting a CMS, using a vehicle metaphor. To quote: To extend this metaphor, let's look at typical pre-purchase exercises. A couple setting out to buy a car responsibly will discuss, first and foremost,... 2006-09-18T21:34:49+10:00
(link) [ Column Two ]

I personally think there are two remarkable results in this survey. (1) The average length of time a company had been using agile was only 1.9 years, (2) when asked who instigated agile in your organization, 28% responded that it was a VP or Director, and when you add in the numbers for Project Manager and CEO the total adds up to 50%. We often assume that agile is a grass roots movement instigated by developers. It would appear that as agile has crossed the chasm in to mainstream adoption, the people driving adoption have changed. The message is clear, if you are in the business of selling tools, services, consulting or training to the agile community then you need to be targeting managers.

Additionally, these results are very encouraging for the future of the Agile Project Leadership Network that I helped to start. The APLN should grow rapidly and remain healthy as there is clearly a strong pool of pro-agile managers emerging. If you are one of those managers, reading this and looking for advice on managing agile projects, then I'd recommend that you join the APLN and get involved in a local chapter. If you don't have one then form one.

Racing through the Argyle cutting On Saturday night I headed down to The Rocks to take some night photos. This was one of my favourite shots, of cars "racing" through the Argyle cutting.... 2006-09-17T22:07:44+10:00
(link) [ Column Two ]

I've seen a lot of discussion recently about what truly represents an agile method or not. It's being discussed in agile community discussion lists and Yahoo! groups, executives in commercially companies are discussing it, some authors like Boehm & Turner, Highsmith, Larman and others have tried to classify or identify agile methods, and most recently I've heard that analyst research firms are getting in on the act.

I'm increasingly seeing Ken Schwaber's criteria use to classify what represents an agile method used as the standard measure. As a reminder, Ken said, an agile process is

iterative

incremental

self-organizing

and emergent

and if it is not all 4 of these then it is merely a lightweight defined process

Frankly, I think the whole debate about which processes are agile or not is somewhat pointless and particularly is this is the criteria used to determine the result. Why am I disillusioned with this? Because some of us in the agile community have lost sight of the goal. Agile for agile's own sake is pointless. The agile movement ought to be about delivering value to the wider community. So how about my criteria for whether a process represents the spirit of the agile community?...

A process is agile if it

enables companies to reasily espond to change

delivers working code to market faster (than previously or with other methods)

delivers high quality working code

improves productivity

improves customer satisfaction

and provides an environment for a well motivated team with high job satisfaction

Before we become a community of inward focused homogenous navel gazers, let's remember the goal! Technorati tag: Agile, David+Anderson

Dennis D. McDonald has written an article providing a possible definition for expertise management systems. To quote: Expertise Management Systems help people identify other people who can be contacted to "... answer a question or solve a problem." The system... 2006-09-16T09:56:41+10:00
(link) [ Column Two ]

There continues to be some confusion over the definition and meaning of scenario in MSF. We know this is causing some pain for our customers. It's been pointed out to me that Scott Ambler has a definition of usage scenario in his agile modeling body of knowledge. This is fueling the confusion.

Last Tuesday I offered our new definitive definition of scenario in MSF. Scenario in MSF is indeed short for usage scenario but those usage scenarios have nothing to do with legacy from OOSE and the requirements and analysis technique called use cases. There are no use cases in MSF. MSF does not describe procedures of interaction in the system architecture. And there are no abstract analysis concepts such as actors and the use cases they perform. MSF uses very specific, detailed definitions called personas and scenarios. I hope this helps to clear up any confusion. Technorati tag: Agile, David+Anderson, MSF

Our team has just grown again, with the addition of Catherine Grenfell, who is a former manager of a successful intranet team, along with other roles in the corporate world. In the last 8 years she has been dedicated... 2006-09-15T12:59:05+10:00
(link) [ Column Two ]

Brandon Schauer has published the initial results from an Adaptive Path survey, looking at the terms used for 'user experience'. To quote: There's a range of vocabulary that can be used to refer to user experience: 'usability', 'interface', 'human centered... 2006-09-15T16:31:49+10:00
(link) [ Column Two ]

Blasts from the Past - 9/10-9/16 -- From this week in 2003, Predicting Uncertain Futures, using familiar weather maps as a metaphor. (One of my favorite posts.)

Looking into the future, we move from points in time to ranges of time within which we can expect completion of a project. The further out we look -- the more work subject to uncertainty that remains -- the wider the range of promises needs to be. As the leading edge of the projected path of the storm starts touching land, that could relate to having the maximum of the range of project promise exceeding the desired due date.

Do you know how to author reports for Team Foundation Server? Are you interested in a temporary position with the MSF team in Redmond that might grow in to something more permanent? Would you like to be responsible for developing the next generation of reports for MSF? If so then drop me an email and I'll forward it on to Steve Elston the Group Manager for MSF. Technorati tag: Agile, David+Anderson, MSF, TFS, Team+Foundation+Server, Visual+Studio, Microsoft Wednesday, September 13, 2006
(link) [ Agile Management Blog ]

2 - Free it - Put it out there without walls around it or strings on it.

3 - Syndicate it - Let anyone take it and run with it.

4 - Monetize it - Put the monetization and tracking systems into the microchunk.

I don’t think Fred really read the details on the announcement. He’s excited that he can show The Office on his blog, but NBBC won’t allow that. He thinks he’ll get a share of the revenue for showing NBC clips, but that’s not in the plan. He thinks NBC is opening up, but this is a case of same thing, different pipe.

NBBC gets a failing grade on every one of Fred’s four points. They’re trying to build a walled garden. Lazy Sunday on YouTube scared them because they lost control over the distribution. “In the future, when we have a Lazy Sunday clip, NBBC will make a lot of money on it.”

This venture shows that. They’re deciding what content I can see. “NBBC is going to keep a distance from the hottest trend in online video — programs created and uploaded by users. The company wants to work only with established producers.”

They’re deciding where I can see it and how I can consume it. “NBBC is not going to allow the programs it distributes to be inserted on personal blogs or Web pages.”

It’s microchunked — for now. “NBBC will distribute programs under seven minutes. Over time, it may experiment with longer programs.”

Broadcast networks are about lead-ins — making Scrubs a success because it played right after Friends. Microchunking is about quality — making Scrubs a success because it’s entertaining and smart.

NBBC’s “longer programs” are going to mean that the great Lazy Sunday video is going to be embedded in a group of other videos so NBBC can force-feed me a couple of videos they want me to watch before I can watch the one I want to watch.

Sure they’ve got the monetization down, but if I can’t create the content and participate, what’s the point? To help existing media companies find new revenue streams for existing content?

“No, fool, you made a lot of money from YouTube because your long-dead stinker of a show, SNL, got new audience because your public — the ones you don’t trust — put the video up and got it seen … until you foolishly made them cease and desist.”

Jeff Nolan has moved on from SAP. He has really served as a model to follow for others working in a large company that hope to move it forward. I'm sure he rustled some feathers along the way, but it... 2006-09-13T07:25:16-07:00
(link) [ Ross Mayfield's Weblog ]

Intranet teams need to be clear on where they are heading, and what they will deliver. Typically, this involves writing either a bullet-point list of goals or a 20-page intranet strategy. In practice, the list of goals is too short... 2006-09-13T15:50:03+10:00
(link) [ Column Two ]

The intranet is not a one-off project. Instead, it must be supported by an ongoing process that ensures that the site continues to be effective. Beyond this, the intranet must also grow to match the ongoing evolution of the organisation... 2006-09-13T16:07:51+10:00
(link) [ Column Two ]

Lou Rosenfeld has published the results of their search analytics survey. To quote: To help us (Lou Rosenfeld and Rich Wiggins) gather information for our forthcoming book on local site search analytics, we invited 206 people to complete a brief... 2006-09-13T11:20:09+10:00
(link) [ Column Two ]

Portals are not a one size fits all solution. Although the term portal is often treated as synonymous with enterprise information portals there are actually many, different types of portals; each one tailored to meet a specific business need. This... 2006-09-13T15:57:44+10:00
(link) [ Column Two ]

We've had some problems with the somewhat loose wording that sneaked in to the MSF Glossary in the process guidance. The in-the-box wording has conjured up a lot of use case type imagery and confused a lot of people. We'll be correcting the definition in the next release of the guidance. In the meantime, here is the new definition.

scenario

A type of work item, describing a specific usage of the envisaged software system by a particular persona. Scenarios should be goal directed. As a persona attempts to reach a goal, the scenario records the specific steps taken in attempting to reach that goal.

This new definition is intended to underline the origins of personas and usage scenarios from the human computer interaction and user experience design community. MSF is intended as a methodology that encourages good user experience and interaction design and is founded on requirements techniques from the user experience community. Specifically, personas originate from Alan Cooper and Kim Goodwin and Usage Scenarios from the HCI department at Virginia Tech. [As an interesting footnote: Alan Cooper was the creator of Visual Basic and by incorporating some of his work on user experience and interaction we are re-connecting with an old friend.]

As I've mentioned before, I'm presenting at this year's Project World Conference in Orlando in November. As a reader of Agile Management Blog, the organizers are offering you a discount on the attendance fee. Use priority code SPKRM1820DA to insure you get your discount.

Eric Lee from the VSTS marketing team has been busy building a demo that shows some neat integration between VSTS and BizTalk server. He has chosen to show how to implement a virtual kanban system similar to the one Dragos Dumitriu implemented with the XIT Sustained Engineering team at Microsoft. This is very cool. It is clear evidence to me that I had a positive influence on the direction of MSF and VSTS and that it will be live on after my departure next week. Technorati tag: Agile, David+Anderson, Eric+Lee, Kanban, MSF, VSTS, Visual+Studio+Team+System, BizTalk Monday, September 11, 2006
(link) [ Agile Management Blog ]

I had a breakfast meeting with Steven Huber from the User Experience team at Sprintpcs.com. He arrived a little late and reported to me that he'd heard on the radio that a small plane had crashed in to the World Trade Center building in New York. I remember we talked about a similar incident that had happened many years earlier to the Empire State Building then we got on with business.

A couple of hours later, I was in my office on the Kansas City side of State Line Road, standing on the balcony of the 2nd floor overlooking the lobby. The security guard had dragged a TV set to a location where a crowd could gather to watch the first tower burning and hear the emerging news. Clearly that early radio report had been misinformed. I arrived back just in time to see the second tower hit. Quite simply a World changing event was unfolding in front of me. I tried to call my wife to tell her to put on the TV. She didn't believe what I told her. She had photos of her standing in the restaurant at the top of World Trade Center. She couldn't believe it was gone.

Later that day all the Sprint staff got an email from top management asking us not to use our cell phones in order to free bandwidth for emergency services. This wasn't actually an issue in Kansas City. Next day the doors to the office buildings were locked. This heightened security lasted for months. You had to wave your badge at the security guard who would come and open the door.

My boss was stranded in Alaska with a bunch of my colleagues who were attending a WAP Forum meeting in Anchorage. Some other colleagues were in Seattle at a conference. They rented a mini-van and drove it back to KC. The team in Anchorage rented a private jet after the ban on small planes was lifted several days later.

As a kid who grew up in Britain in the Cold War, during the 1970's when the BBC carried public information video showing how to build a nuclear bomb shelter under the kitchen table and gave advice on what kind of tinned food to store for the aftermath of disaster, I truly thought my children would grow up in a kinder world where such security concerns were history. Anyone, like me, who had to make business travel in the weeks and months after September 11th - we launched the Sprint PCS Developers Network and our Sprint PCS Vision (and WAM) initiative one month later in Las Vegas - was quickly to realize that our children will grow up in a World with its own set of challenges. A four hour queue to get out of Las Vegas was evidence enough of that. The line was backed up out in to the parking lot in 100 degree heat. Staff from Southwest Airlines were walking the line giving out bottles of water. At least back then we could still carry bottled water on to the aircraft.

For me personally, the most moving thing happened a couple of weeks later. I got an email from Jeff De Luca. He was simply checking up on all his US resident friends to make sure none of them had been involved.

This morning Socialtext released SocialCalc Beta 1, the Commercial-Open Source version of wikiCalc. Dan Bricklin has made great progress with the wiki-based spreadsheet since we started working together. Download it now on SourceForge and let us know what you think.... 2006-09-12T14:28:34-07:00
(link) [ Ross Mayfield's Weblog ]

Jack Herrington emailed me, in reference to the issue of Ruby on Rails performance, to write:

I agree with you about unicode. And I agree that Rails needs some time to evolve. But I use a bunch of web technologies and they all have issues.

I do disagree with the scalability statements. I don't think Rails has scaling issues that can't be gotten around, and which don't have cousins in other technologies.

What I would ask is that you at least put some framing around your scalability comments. Tell us about the scalability problems. Even if we don't fix it for you, the entire community can gain from your experience.

David Heinemeier Hansson wrote:

Rails is for the vast majority of web applications Fast Enough. We got sites doing millions of dynamic page views per day. If you end up being with the Yahoo or Amazon front page, it's unlikely that an off-the-shelve framework in ANY language will do you much good. You'll probably have to roll your own. But sure, I'd like free CPU cycles too. I just happen to care much more about free developer cycles and am willing to trade the former for the latter.

By way of clarification, I'm not concerned with Rails performance, I'm concerned with Ruby performance, and here's why.

I've seen lots of comparisons of Ruby's performance with bytecode languages like Java which I would consider slow, and I see a lot of reports of performance claiming Ruby is 10x slower, 50x slower, etc. Besides the random blogobuzz, Ruby comes pretty darn close to dead last in the Computer Language Shootout Benchmarks.

Without knowing much about the implementation of Ruby, I would guess that the biggest issue is around late binding and especially duck typing, which prevents type inference or strong typing, which means that function calls will always be slow because you can never get something compiled down to the point where a function call is just a single CALL instruction (on x86)... you always have to be exploring the object, possibly even scanning a hash table to find the function you want to call. Calling methods on objects is really, really, really, really common, especially in pure OO languages, and that bit of the code needs to get down to at least a CALL indirect on the CPU for Ruby to offer the same performance as languages where the type of the object can be determined at compile time and therefore the instruction where you're jumping to can be gotten either at compile time (like in C) or with a single indirection through a single vtable (like in C++).

I understand the philosophy that developer cycles are more important than cpu cycles, but frankly that's just a bumper-sticker slogan and not fair to the people who are complaining about performance. Even though our product, FogBugz, seems like something that should be perfect for Ruby on Rails, we have several parts of code where performance is extremely important. In FogBugz 6 there's one place where we need to do literally millions of calculations to display a single chart on a single web page. We have gotten it down to 3 seconds or so in our current development environment with a lot of optimization, but frankly with a duck-typed function call I really don't think we could do it before the web browser gave up and timed out and the sun cooled down a couple of degrees. We also have to scan incoming email messages for spam using Bayesian filtering. This is compute-intensive can take 1 sec. per message. Receiving one email per second is not unreasonable for many of our customers so we are very close to being CPU pegged. That is using a language which we know to be orders of magnitude faster than Ruby at this type of code. We would be absolutely dead on Ruby.

Even classic, simple CRUD applications -- the kind of application that basically just shows you a table from a database and gives you operations to add, delete, and edit records -- often discover somewhere down the line that there's something enormously computationally intensive that they want to do, for example, blog software might want to add Bayesian filtering to eliminate spam from comments. This is where you suddenly realize that if your language of choice is 10x slower than the competition, you may be simply unable to add that feature, or you may have to call out to another language (with all the marshalling overhead that implies).

This doesn't apply to everyone, but when people say they have performance problems with Ruby or that they just need to be able to run code faster than the core Ruby language engine can run it, it doesn't help to have Ruby advocates singing hymns about developer cycles vs. CPU cycles. Even if you aren't doing compute-intensive things, if you find yourself needing to buy 100 servers instead of 10 servers, you may suddenly revisit the whole developer cycle vs. CPU cycle equation.

I understand that there are plans for Ruby to address performance with some kind of bytecode compiler and that will be nice. When these things happen and when Ruby starts getting competitive benchmarks it will be a lot more appropriate for a lot more types of applications. In the meantime I stand by my claim that it's not appropriate for every situation.

I gave a presentation today at the Enhancing the potential of your taxonomy conference in Sydney. This was on "Understanding and evaluating your taxonomy", covering: Three goals of a taxonomy Records management case study Information architecture Card-based classification evaluation Understanding... 2006-09-12T18:29:30+10:00
(link) [ Column Two ]

I'm in Boston tonight, in town for Software Development Best Practices. I'll be giving a talk on Wednesday, along with Alistair Cockburn, on "Creating Change One Tic-Tac At a Time". The idea for this talk grew out of a conversation that Alistair and I had back at the Jolt Awards in March and it incorporates information and ideas from a wide range of sources. For my part I'm drawing on The Moral Animal for the importance of status, Taking Charge of ADHD for the idea of a token economy, Flow for insights into what people consider rewarding, Influence for some "weapons of persuasion", not to mention a host of others I can't name, plus my own experiences leading development teams and our experiences at Agitar helping our customers adopt developer testing. These last two categories are probably the most important, because that is where I've come to believe that cultural change is simply the most difficult task anyone can undertake, and changing the practices of a development team in any significant way require a change of culture. Alistiar has a similar view on the importantance and difficulty of cultural change and brings his own diverse and illustrious experiences to bear on the discussion. If you're at SDBP hope to see you there, but if you're not I'd be interested in your thoughts on the topic (j t f at a g i t a r dot c o m).

A couple of years at the Agile conference in Calgary, a big topic of
discussion was whether Agile was poised to cross the chasm from
visionary early adopter types to the early mainstream. This year at
Agile2006 it sure seemed to me we had.

If I recall the high-tech adoption curve correctly, a big difference
between the Visionary early adopters and the Pragmatist early
mainstream is who they talk to. The Visionaries talk to the
Technology Enthusiasts to find ways to have big wins. The
Pragmatists talk to other Pragmatists, especially ones in the same
industry, to find ways to have safe wins.

My main client these days is a good example of a Pragmatist. Before
adopting Scrum, they methodically went to visit other companies that had been
using Scrum successfully. That's the first time I've seen that.

Agile in the mainstream is definitely a good thing, but every silver
lining comes with a cloud. I worry that the clear sunshine of
innovation will be obscured by the mists of scale. (Sorry about that...)

If
you believe Moore, the mainstream market naturally shakes out into a
single dominant "gorilla" and several "chimps" that scrabble for the
leavings. He uses Oracle as an example of the gorilla, companies
like Sybase as examples of chimps. Or you could think of the
relational model in general vs. other ways of organizing and
accessing persistent data.

On the one hand, that's good for innovation: the chimps have to find
some angle to distinguish themselves from the safer gorilla
choice. On the other hand, the innovation is constrained: it can't
be too wildly different from the gorilla or else you're no longer in
the mainstream market. (The distinction here might be between
object databases—never made it in the mainstream—and
adding object-ish features to relational databases or just figuring
out how to make object-relational mapping work.)

But more important, to me, is a redirection of talent. The gorilla
of Agile is Scrum + a selection of XP practices (perhaps most often
the more technical ones like continuous integration or
TDD). Consultants and consultancies can make more money, grow
their practice faster, and have more influence by helping new teams
start with Scrum+XP and by taking steps to make Scrum+XP more
palatable to large segments of the mainstream market (the later
mainstream, what Moore calls Conservatives). People doing that don't
have time to do other things.

We saw that at Agile 2006, where the proportion of novices perhaps
reached some sort of tipping point that made it more like a
conventional conference. That's not a criticism: the Agile Alliance
is there to help Agile projects start and Agile teams
perform—says so right on the website—and making sure the beginner is served is absolutely
necessary to those goals.

So that's all good. But I'm not comfortable unless I've got the
feeling that there's something just beyond the horizon poised
to surprise me. I'm not usually the one to find it: I'm more of a synthesizer, amplifier, or
explainer
than an innovator. So I selfishly need people out there searching,
not teaching Scrum+XP.

I'm getting a sense that some significant chunk of people are ready
for Agile to take a surprising jump forward. See, for example, what
Ron Jeffries has recently written. Some part of my
next year will be spent in support of that. I have at least one
whacky idea, a bit related to
the MFA in
software.

I'll be poised to spring into action soonish. Just let me get this book done, please let me get it done, without
any of the changes in response to reviewer comments introducing a
nasty bug.

In Skype on OSX, the contact information window doesn’t allow you to copy fields to the clipboard. If you want to put one of your contacts mobile phone numbers into another application, like your address book, you have to manually type them. But the information window is only visible if Skype is the active application. Once you click another window, the information window vanishes.

This means that you have to memorize the phone number in order to type it in as you can’t see it on the screen when you’re adding it to the address book. This is just poor usability on Skype’s part.

I'm guestblogging for Shane Richmond at Telegraph.co.uk. First post: share control to create value. Most of my posts will probably be relating what's readers of this blog already know. But if I make good fun of British newspapers or come... 2006-09-11T21:59:04-07:00
(link) [ Ross Mayfield's Weblog ]

Normally I use CityDesk to compose things for Joel on Software, but the long articles on recruiting were written from home where I have a MacBook Pro (CityDesk is Windows only).

I was trying to find appropriate software that I could use to compose long articles that felt smooth on a Mac, that generated extremely clean HTML, and that generated curly quotes (“”) which I've grown fond of, especially for longer articles.

The combination I found that made me happiest was TextMate in Markdown mode. It was a surprisingly good experience. TextMate is an "emacs inspired" editor for the Mac, with tons of build-in stuff for editing different types of text files that they call Bundles. Markdown is a very simple way to format text, for example, putting &42;asterisks&42; around text that you want italicized; it generates nice clean HTML. Even Markdown source is quite clean and still highly readable, useful if you need to post the same content to Usenet or use it in plain text somewhere.

I have a few complaints though:

OS X antialiasing, especially, it seems, with the monospaced fonts, just isn't as good as Windows ClearType. Apple has some room to improve in this area; the fonts were blurry on the edges.

Also, I don't understand all these people who say that Macs never crash. I probably had to reboot the MacBook Pro (hard reboot -- hold down the power button for five seconds) about every two hours. It was always the same problem: the Wifi network would go down for a second, something which happens to everyone, but on Windows, it just comes back, while on the Mac, I get a spinning colored ball and everything is frozen. Everything. Forever. If I try to wait it out the beachball will still be spinning the next morning. If anybody is aware of this problem and knows of a specific fix I'd love to hear of it. It was like a Windows 3.1 deja vu all over again thing.

I still have to say that composing large amounts of text with Word 2007 on Windows XP is a better experience, all told, because of the autocorrection and the better screen display.

One more note -- all the pictures I've published in the last few days are of the Fog Creek office, of course, taken recently by photographer Gregg Conde.

Another wave of Enterprise 2.0 definition has been kicked off by MR Rangaswami's otherwise good post on the trend. He defines it as enterprise software using the latest in technology, development and delivery methodologies. Andrew McAfee rightly brings it back... 2006-09-10T09:21:58-07:00
(link) [ Ross Mayfield's Weblog ]

In my tradition of bringing you old news in an untimely fashion, here are a few shots of my trip to Taipei. I was there from August 12th to 17th and on the 16th I was part of a Software Engineering day event organized by the local Microsoft office. The event at the Grand Hyatt in Taipei attracted 450 visitors. I gave the keynote speech and then appeared on a panel with some local experts to talk about CMMI, agile and software engineering in general. You can read all about it in this press release (PDF, traditional Chinese).

This is me opening the proceeding in the morning with the keynote speech.

And later on the panel session with Nien Chen (NC) Liu and Peter Hu from Microsoft to my left and the panel of local experts to my right: Professor Cheng, Professor Chou and Mr. Hu (the first CMMI Lead Appraiser in Taiwan.)

A few empty seats in the front row but otherwise it was a full house at the Grand Hyatt.

As you can see better from this angle.

We got quite a few questions from the floor.

Here I am giving a press interview earlier in the week. Everything involved eating. I put on 5 lbs over the 3 week trip to Asia. So lots of biking to work for me to take it all off again, now that I'm back in Seattle. Technorati tag: Agile, David+Anderson, Taipei, MSF, Microsoft, Software+Engineering

Janus Boye has written an article on improving portal usability. To quote: In organizations worldwide, the enterprise portal has increasingly become the default interface for employees and business partners to interact digitally with each other. Many useful services -- such... 2006-09-09T11:54:06+10:00
(link) [ Column Two ]

Luke Wroblewski has written an article on the process of defining the problem. To quote: Several years ago, I was called in to help redesign the registration process for a large European e-commerce site. The company had put together two... 2006-09-09T12:28:31+10:00
(link) [ Column Two ]

Some people have been asking me whether or not I'll be fulfilling my scheduled speaking engagements following the news of my departure from Microsoft.

The simple answer is that I will be fulfilling all my obligations. There are only three, namely, the PNSQC in Portland Oregon in October, Project World in Orlando in November and OOP in Munich in January. Technorati tag: Agile, David+Anderson, PNSQC, Project+World, OOP

I gave up my speaking slot at Office 2.0 to my co-founder and VP of Products, Adina Levin. Hopefully this guesture restores the gender balance and brings harmony to the blogosophere. Or perhaps inspires others to attend this great event.... 2006-09-08T10:09:02-07:00
(link) [ Ross Mayfield's Weblog ]

If you are trying to install Windows Vista RC1 in VMWare Workstation, you may see setup appear to hang on the text-mode screen that says "Windows is loading files...".

Actually what has happened is that Vista Setup is already in graphics mode trying to do things, but something about the way it switches the display adapter into graphics mode is not working right on VMWare.

If I were VMWare I'd be pretty ticked off at Microsoft right now; since Microsoft makes a competitive product, Virtual PC, it is Highly Suspicious that they come out with a major new test release of an operating system that just happens to not work on VMWare Workstation, something which is practically the de facto standard for developers testing new operating systems. Shabby and slimy, Microsoft. They're probably testing Windows Vista with tens of thousands of applications; not testing with VMWare is inexcusable.

There's a workaround, for now, while VMWare works on the problem: edit the virtual machine's .vmx file to include

svga.maxWidth = "640" svga.maxHeight = "480"

You can get Vista installed in VGA 16 color 640x480 mode (it will look awful) and then when you get everything running, install VMWare tools and take out those two lines and you'll be good to go. Thanks to anonymous user echelon9 from the VMWare board for this tip.

I'm assuming that the Aero/Glass UI's heavy demands on the graphic card may mean that it can't be tested under VMWare, but I'd love to be wrong.

Last year we set the application deadline for internships to February 1st, which was fine, and the deadline did a good job of forcing students to get off their butts and apply, but we made the mistake of not considering applications until they were all in, which we thought would be most fair. It was fair, but it also meant that by the time we even looked at the resumes, some great applicants had already accepted summer jobs at Microsoft. Grr...

This year summer internship applications will be accepted on a first-come, first-served basis, so basically, if you're a college student looking for an internship, you pretty much should just apply now, instead of puttering around indecisively.

A nice thing about open-source software is that you can change the code yourself if necessary. If you want to fix a bug or add a feature you can make the change yourself. You don’t need to get permission... 2006-09-09T04:46:38-06:00
(link) [ Testing Hotlist Update ]

“To top programmers, the most maddening thing about recruiters is their almost morbid fascination with keywords and buzzwords. The entire industry of professional headhunters and recruiters is bizarrely fixated on the simple algorithm of matching candidates to positions by looking for candidates that have the complete list of technology acronyms that the employer happens to be looking for. It becomes especially infuriating to realize that most of these recruiters have no idea what any of these technologies are. ‘Oh, you don’t have MSMQ experience? Never mind.’ At least when real estate agents prattle on about Subzero refrigerators and Viking stoves, they at least know what these things are (although any stainless steel refrigerator counts as ‘Subzero’ these days). The easiest way to catch-out a technical recruiter is when they inevitably insist on 5 years of experience with Ruby on Rails, or refuse to consider someone for a ‘Windows API’ job when they only have ‘Win32’ on their resume.”

-- From today's third and final installment in The Guerrilla Guide to Hiring, Sorting Resumes.

When I picked up my temporary card from Wells Fargo, they told me that my wife couldn’t get a temporary one because she wasn’t cancelling an old card, just ordering a new one. No one could explain to me why this arbitrary restriction exists. The fact that she did cancel a card doesn’t matter; this new card isn’t being ordered in direct response to a cancellation, so no temporary card for her. Not that it matters, since we can only use the temporary card on Tuesdays in November following a heavy rain after a full moon. And then only if we’re wearing red. Or something.

Wells Fargo screwed up. They didn’t send a card when they were supposed to. They’re unable to provide a ready replacement, and the reason is they didn’t send the card when they were supposed to. Their mistake is triggering this bad business process and keeping me from my money.

And get this… when I picked up my temporary card, I got the same old song. It doesn’t appear that a card has been ordered. So let’s do that now. And it will take 7-10 days for the new one to arrive. That’s four times in a row this has happened to my wife. And now once for me. That’s right, they had no record that my card had been ordered either.

Oddly, however, when I called Wells Fargo tonight about the missing deposit, they were able to see repeated orders for new cards, followed by cancellations. So someone is lying. Or their systems are seriously in trouble. Either way, I don’t have a whole lot of confidence in my bank anymore.

It was only a matter of time before the new job board got its first policy violation: a recruiter posting a job without disclosing the name of the company that it was for.

The reason we require a company name, as opposed to a recruiter's name, is because I think that job seekers are sick of looking at generic lists of seemingly anonymous companies. The reason recruiters don't like to post company names is because they don't get a commission unless they refer the employee, so they don't want to take any risk that the candidate will go directly to the company and cut them out of their commission. Also, once the recruiter establishes a relationship with you, they can convince you to apply to all their other jobs, further increasing the chance that they'll get a commission. And they want to build up their resume-files so they can do their job well in the future.

There's a place for recruiters; many of them are very ethical and do great work for their clients on both sides. However, I think there's also a place for a more open market where people can look directly at jobs, then jump to the company's website and decide if that's the kind of company they might want to work for. As I wrote earlier, top developers have a choice of where to work, and they're not very enchanted with the prospects of working for a "leading developer of software products" that needs a "C/C++/XML/HTTP/HTML" to fill a slot.

This is something of a dilemma. I'm pretty sure that job seekers have no interest in a seeing list of pseudo-jobs that are often nothing more than invitations to call a headhunter. On the other hand, headhunters are probably the biggest single spenders on job boards, so I might be antagonizing my biggest potential audience of paying customers.

Wow, I have never seen such developers all over the world so unanimous on any issue. If anything, I underestimated how much people hate job boards clogged with anonymous posts put up by commission- and resume-fishing recruiters.

The jobs board policy will remain: We will continue to require a company name and take down posts that don't disclose the actual company.

Recruiters can use it if they post the name of the company that is actually hiring. This, I think, will only be of interest to recruiters doing exclusive searches (also known as "retained searches").

Finally, summer intern Noah has added a feature to display the Joel Test score on the main page for companies that choose to fill it out, which seems to be quite a lot of them. Thanks, summer intern Noah!

“So my experience has been that a number of excuses all pile up until it’s virtually impossible to get private offices for developers in any but the most enlightened of companies, and even in those companies, the decision of where to move and where people should work is often taken once every ten years by a committee consisting of the office manager’s secretary and a junior associate from a big architecture firm, who is apt to believe architecture-school fairy tales about how open spaces mean open companies, or whatever, with close to zero input from the developers or the development team.”

Marketing Project Management -- No, that's not marketing Project Management, but rather Marketing project management. From DM News, an article by Jane Eggers of Quickbase plays up how to support the collaborative needs of managing marketing projects via (no surprise, given what Quickbase is all about) technology. In Five Steps to Simple Marketing Project Management, Eggers offers up steps to get started:

Know your processes...

Don't forget your partners...

Focus on workflow...

Expect simplicity...

Start now and iterate...

Not sure if those are steps or tips (don't really see a "workflow" there), but the supporting material does make sense.

I'm about to take her fifth point at in setting up a small internal wiki to document our processes, and as suggested, I was planning to forgo all the bells and whistles and fancy look and feel and perfection (for now), and just get it started.

I am leaving Microsoft and my job as the architect for the MSF methodology. I am taking up a new position as the Senior Director for Software Engineering at Corbis. The company is owned by Bill Gates. So I might be changing employers but my ultimate boss remains the same.

In any career move, like this one, the decision is always complicated. People might want to jump to conclusions. There have been lots of people leaving Microsoft recently. However, whatever people may conclude, I loved working for Microsoft and I thought I had a really cool job. Working on MSF as part of Patterns and Practices and Visual Studio Team Architect was a great place to be. The team is changing the way we engineer software and manage software projects. It's been a privilege to work with each and every one of them and I wish them all well. I have made many friends at Microsoft.

However, when I took the job I told Sam Guckenheimer that I could only do it for two years. After that I needed to get back to managing a team and leading people doing real work. If I stayed too long in the MSF ivory tower I'd lose my credibility to talk about management and agility and software engineering. So when the chance came up to go to Corbis and get back to leading a team I jumped at it.

Just as I have sad feelings about leaving Microsoft and an unfinished job with MSF, I am equally excited about the opportunities and challenges at Corbis. So stay tuned to Agile Management blog. I'm not going away. Instead I'm going to show how to scale agile and achieve enterprise-wide results.

[Oh and I won't mind the easier commute from Ballard to downtown Seattle - giving me back about 60 minutes of every day.] Technorati tag: Agile, David+Anderson, MSF, Microsoft

all content is copyright its respective owner or owners. this page is
built on aggregation technology, created entirely by recycling content
from others. syndicated content is parsed, sorted by date, and then
formatted for web presentation. this leads to ease of use but, on
ocassion, failures to parse properly. this can lead to duplication of
entries or missing entries altogether. problems are addressed when
they can be.