Principle of emergence

“As entities of a system are brought together, their interaction will cause function, behavior, performance, and other intrinsic properties to emerge”. Tai kuten Aristoteles sanoi: “kokonaisuus on suurempi kuin osiensa summa”. Tai Ackoff hieman pidemmin: “Järjestelmä ei ole osiensa summa vaan osien välisen vuorovaikutuksen tulo”. 

Miten tämän voisi ymmärtää? Ehkäpä siten, että vaikka tietäisimme jonkin järjestelmän kaikki osat, emme välttämättä tietäisi, mitä järjestelmä kokonaisuutena tekee, mikä on sen suorituskyky ja millaisia muita ominaisuuksia järjestelmällä on. Pelkkä osaluettelo ei kerro järjestelmästä paljoakaan. Kun osat liitetään yhteen järjestelmän konseptin mukaisesti, ne alkavat vaikuttaa toisiinsa ja tästä vuorovaikutuksesta syntyy sekä järjestelmän haluttu toiminnallisuus että järjestelmän epätoivotut viat. Yleisesti ei ole helppoa ennustaa miten kukin osa vaikuttaa järjestelmän toiminnallisuuteen - ja siksi järjestelmän suunnittelussa on tutkittava useita vaihtoehtoja ja simuloitava kokonaisuutta eri abstraktiotasoilla. Ja testattava prototyypein. 

Edellisestä seuraa, että mitä tahansa järjestelmää suunniteltaessa ja toteuttaessa on myös suunniteltava ja testattava järjestelmän simulointi- ja testausjärjestelmän. Ne saattavat olla jopa vaikeampia suunniteltavia ja toteutettavia kuin varsinainen järjestelmä. Tämä pätee erityisesti mekaanisiin järjestelmiin, mutta myös tietojärjestelmiin. On suuri virhe jättää arvioimatta simulointi- ja testausjärjestelmien kehittämiskulut projektin alussa - vaikka se on hyvin houkuttelevaa. Onneksi nykyään testijärjestelmien rakentaminen tietojärjestelmähankkeissa on helpottunut merkittävästi automaattisten DevOps-menetelmien myötä - ja myös pilvipalveluiden, joita käyttäen testiympäristöjä etc voi olla käytössä (lähes) rajattomasti, lähes viipeettä ja hyvin halvalla.

Kommentit

Tämän blogin suosituimmat tekstit

Velkavaalit - missä arvot?

TOP-5 lyhyttä pyöräretkeä Roihuvuoresta ja Itä-Helsingistä

Kaikki Helsingin kadut, aukiot etc