Thursday, April 16, 2009

Scale of software

A friend and I had dinner in a neighborhood restaurant eariler this week. After dinner, I gave her a short walking tour of the neighborhood. I live in the old part of the city, with houses and churches from the turn of the century. (That is, the previous century.)

My friend commented that the city looked very different when viewed on foot. She was familiar with that part of the city but only while driving in a car, and walking was a new experience for her. The city is different on foot. Or, more accurately, our perceptions of the city are different.

In a car, we move along at twenty-five to thirty miles an hour, and we must pay attention to traffic, street signs, and pedestrians. We have no spare attention for architecture. On foot we can focus on other things. Yes, one must be aware of cars and other pedestrians, but the amount of attention required for them is small. You can spend attention on other things. If you want, you can stop and look at buildings while everyon else goes about their business.

The city (at least the downtown portion in which I live) is designed for pedestrians. It is scaled for foot traffic. Buildings are close; many abut their neighbors. There are sidewalks. Some streets are one-way. The result is that it is easier for me to walk to the grocery store than to drive.

Suburbia is scaled for automobiles. The buildings are placed further apart, and surrounded by parking lots. Some suburban developments have no sidewalks. Suburban malls are often built in areas that are unapproachable on foot.

The scales of city and suburb are different.

Are there similar scaling in software? I think that there are. Software is not scaled along the axis of pedestrians and drivers, but for individuals and organizations. Some software works well for the individual and poorly for a large organization. The traditional PC packages (word processor, spreadsheet) are scaled for individuals and do not allow for collaboration. In contrast, databases are designed for multiple users and database applications are better for teams than individuals.

Instant messaging is scaled for individuals, but small sets of individuals. Instant messaging is useless for a single person; you have to have a partner for messages. But it is limited to two (or maybe three or four) people at a time. 

E-mail is interesting in that it can scale from two users to a large number of users. Two people can use e-mail easily. A team of people can use e-mail with distribution lists.

Microsoft has taken some interesting steps with Sharepoint and their Office suite. They are moving the word processor and spreadsheet out of the single-user realm and into the multi-user realm. This is why they hawk their Sharepoint product as a "collaboration tool".

Most web applications are designed for multiple, collaborating users. PCs are efficient at private information, the web is efficient at shared information.

When building an application, be aware of its scale. Think about the users and their needs. Software built at the right scale will be well-received. Software built at the wrong scale will be ignored.

No comments: