Clay Shirky has just posted a terrific (and fairly long) article on what he calls Situational Software.
By that, he means software that is written by members of a small group for its own use. He contrasts that sharply with what he calls Web software, by which he means more traditional software, written by programmers for large, generic groups of users, which must be written to scale, and be durable.
He makes great arguments for why such software can be much more useful, since it can omit things that the group already know about itself (such as the reputations of individual members) and it can rely upon group dynamics for some tasks not included in the software itself. (For example, it offers a student buying system with no formal method for dealing with non-payment, since the students could deal with that via suasion or ostracism.)
This is not an argument for abandoning formal software development, but rather a recognition that it is useful to also have informal software that is developed closer to its users, and intended for less formal, shorter usage, just for a particular group or purpose. He also makes the argument that as the number of formal sw developers in the U.S. may diminish (which has been predicted), this informal programming, a new part of many people's skill sets as how we program changes, may grow — just as typists and secretaries have all but disappeared, but all of us create and enter our own data today. [amywohl News]