"[This is] software designed in and for a particular social situation orcontext. This way of making software is in contrast with what I'll callthe Web School (the paradigm I learned to program in), where scalability, generality,and completeness were the key virtues."
Every new innovation, whether art or science, is a reaction to something else, the status quo - in this case, the "Web School" of programming. The idea is that not every app you write needs to be absolutely airtight, solid, won't fall down after 100 users, secure, etc, etc, because you probably won't even get that many people using the app. So, instead of solving for what could happen, make the app usable for the folks who are actually going to interact with it. Read the whole article - it's interesting what the class built and how they did it.
It strikes me that many Notes apps are (or were, I'm not sure) written this way - put together for a department, by someone who wan't exactly a programmer by trade, but could hack around enough and knew what people needed to do. Same with all those Access/VB apps out there. As Shirky says:
"It also has several obvious downsides, including less likelihood of use outside its original environment, greater brittleness if it is later called on to handle larger groups, and a potentially shorter lifespan."
Sound familiar? I've read the horror stories on various blogs about coming in to clean up after these apps - the spaghetti code, the ugly UI, the performance problems, etc. Still, they served a purpose at the time and led the way to the next iteration of that application. And, they wouldn't still be around if they weren't serving some useful purpose, right?
Are these situated applications still being written in the enterprise? Would you admit it, if they were? If you are in an enterprise, would you even know? Something to think about...
Chris RecklingSr. Product Manager