Shirky: Situated Software
From the article:
Part of the future I believe I’m seeing is a change in the software ecosystem which, for the moment, I’m calling situated software. This is software designed in and for a particular social situation or context. This way of making software is in contrast with what I’ll call the Web School (the paradigm I learned to program in), where scalability, generality, and completeness were the key virtues.
okay. what makes ‘situated software’ all that different from mud or spaghetti code?
mud code is situated and more.. its emergent too — how’s that for some buzz…
the only thing that makes ‘situated’ bla-bla interesting is spin. it’s nothing new. The part I will buy from his article is that in the future the number of average people hacking little personal apps that aren’t meant to scale will go up… but, until good housekeeping starts to publish mySql tutorials, i’d have to suggest, we’re not quite there..
honestly, clay needs to maybe go outside for a bit..go for a walk. look at some magnolia blossoms.
Hmmmn.. While I don’t think that the concept of situated software is new per se I do think that it is something that should be considered when designing an application.
Your comments about balls of mud and spaghetti code show that you miss the point. It has nothing to do with the code itself or how it is written and maintained. You can think of his concept of Situated software as development that doesn’t require every case to be accounted for that isn’t generally applicable and leaves portions out that are already taken care of by the group. We (my group) didn’t put in censorship or approval code into the Codeck because the community of users is self policing as is already and we didn’t need to duplicate that in code.
Actually, it has everything to do with how/why code is written — this is what ‘situates’ it in a give context. That is exactly what spaghetti/patch/mud/shanty/…and now i guess.. situated code does — it is software written with specific needs in mind that does not look very far, if at all, into a global need or accountability. The long-run/ wide-use/ scalablity questions are thrown out in these sorts of situations – this is what Shirky brings up, and really it is not anything new. Since before Turing folks have been writing code which fits into this sort of category…most times this is done for need to get something up and running quickly in a specific time. When something needs to be done and there is no time to plan or design with a future-mind, this is what happens – There is no difference. The thing about this phenomena in coding is not necessarily that it is something you take into account when designing, but also can be (or rather, is) is something that you take into account when you have no desire, luxury, or requirement for design before you dive in. I dont’ want this to sound like a rant, I am only pointing to the fact that Shirky’s article is nothing new – simply a repackaging for the blog-scape.
Of course, I agree, it isn’t new. I agree with most of your points with the exception of how it relates to the actual writing of the code. I don’t think that “situated software” necessitates spaghetti code or shanty town methods.