Convivial design heuristics for software systems
Illich’s notion of conviviality centres on the balance between individual freedom to act and collective freedom from domination. This balance, or tension, is present in the design of most user-facing computer systems, and especially in the design of programming systems, but software lore has arisen so far with at best a skewed perspective on such issues, having developed mostly from an industrial viewpoint. While the free software movement has shown regard for collective freedom on the levels of enterprise and licensing, there is far less evidence of such regard in the design of programming systems and other influential user-facing software.
In this paper I survey some examples which (perhaps by accident) do show such regard, and propose some tentative design principles which I have extracted from them. Although preliminary, my hope is that these principles may yet develop into a set of concepts, memes and dictums at least equal, and largely countervailing, to their many non-convivial peers as learned by today’s software creators and computer science undergraduates. Relevant topics may include language semantics, information hiding, language virtual machines, portability, declarative programming, classical logic, and layered system design.
Thu 7 May Times are displayed in time zone: (GMT+01:00) Greenwich Mean Time : Belfast change
16:00 - 21:00: Salon 2020 - Thu May 7, 4-9 pm London
|16:00 - 17:00|
|17:00 - 18:00|
Stephen KellUniversity of Kent
|18:00 - 19:00|
|19:00 - 20:00|
|20:00 - 21:00|