Mjukvarudesign är intellektuell
Vad sägs om denna tanke: att mjukvarudesign är intellektuell.1
Med det menar jag att källkoden och samtliga övriga dokument beskriver en struktur som lever i medvetandet hos deltagarna i ett utvecklingsprojekt.
Ett projekt där designprocessen prioriteras, hur denna än ser ut, använder sig av verktyg för att stödja denna strukturs internaliserande.
Med internaliserande menar jag när källkod och dokumentation läses, diagram studeras samt när systemet beskrivs muntligen av andra deltagare. Då gör sig läsaren, betraktaren, lyssnaren (mottagaren) en bild av strukturen.
Ett förbisett viktigt syfte med designarbetet är att underlätta internalisering.
Internalisering handlar om förståelse, om logik, sammanhang, tydlighet, om att dra nytta av det välbekanta. Det handlar om att säkerställa att deltagarnas respektive uppfattning av designen stämmer överens, att den förstås på samma sätt. Ytterligare en aspekt är minnet: hur kan man åstadkomma en design som är så oberoende av yttre beskrivningar som möjligt, dvs. en som är lättare att minnas?
Är detta en aspekt som är unik för systemutveckling? Övrig design är ju riktad mot en slutlig fysisk produkt och på vägen mot denna kan man oftast göra fysiska prototyper och modeller; övrig design är inte lika ‘intellektuell’.
1 Detta är en redigerad version av ett mejl till en mejlinglista.