- Det er mange utviklere og systemarkitekter som ikke vil høre dette: Virkeligheten er preget av usikkerhet. Den kan ikke brytes ned til de minste bestanddelene, sier Barry O'Reilly, som har hatt sjefsarkitektstillinger hos iDesign og Microsoft, til kode24.
O'Reilly var nylig en av foredragsholderne under konferansen Ark 2021, arrangert i samarbeid mellom Dataforeningen og Sopra Steria.
Dette er arkitektens største frykt når Ladeklar skal skalere
Avhengihetsforhold
Ifølge O'Reilly er dagens utviklerprosjekter preget av kompleksitet. Ikke bare teknologiske utfordringer, men også dynamiske markeder og høye endringsrater.
For å overleve må utviklerprosjektet håndtere forholdet mellom det komplekse, dynamiske miljøet og den statiske applikasjonen.
- Dette er ekstremt vanskelig å gjøre, og de som kan gjøre det er, etter min mening, arkitektene.
Han mener at utvikling som skjer uten å ha noen som kan møte disse utfordringene er risikabelt.
- Hvis denne evnen ikke finnes i et prosjekt, må den tilegnes. Utviklere og arkitekter er avhengige av hverandre for å lykkes. Dette krever også arkitekter med høy teknisk kompetanse.
En kompleks verden
Ett av problemene er at den tradisjonelle måten å gjøre systemarkitektur er «ekstremt utdatert», ifølge O'Reilly.
- Vi sitter fremdeles fast i en verden styrt av protokoller. For å være relevant må vi gjøre noe med hvordan vi ser på virkeligheten.
Han forteller at han og andre vellykkede systemarkitekter ofte slet med å forklare hvorfor de gjorde det de gjorde. Nå mener O'Reilly at gode systemarkitekter mestrer å håndtere usikkerhet, både i organisasjonen og samspillet med omverdenen.
- De vellykkede systemarkitektene klarte å håndtere brukerbehov som ikke ble forstått og forretningsfolk som ikke artikulerte klare forventninger. De forstod at virkeligheten alltid er kompleks, sier O'Reilly.
«Utviklerne stoler ikke på systemarkitektene og vil ikke ha dem i rommet.»
Store problemer
Microsoft-veteranen mener det er et stort skille mellom systemarkitekter som kommer rett fra skolebenken og folk med lang erfaring i bransjen.
- Juniorer vil ofte kreve konkrete detaljer og spesifikasjoner i arbeidet. En seniorarkitekt vil aldri forvente dette. De forstår at det ikke er mulig å gi helt konkrete svar, og at en forretning eller virksomhet alltid forandrer seg.
Ifølge O'Reilly lærer dagens systemarkitekter først og fremst å bli forretningseksperter. Konsekvensen er at de blir fremmedgjort fra teknologien de skal jobbe med.
Han mener at dette har ført til at systemarkitekter ikke lenger blir tatt seriøst. I flere av de store selskapene har systemarkitektene blitt isolert fra teknologiutviklingen.
- Utviklerne stoler ikke på systemarkitektene og vil ikke ha dem i rommet, fordi systemarkitekten gjør en rekke rare avgjørelser med retningslinjer som ingen egentlig forstår.
De beste tipsene fra de norske GitHub-stjernene
Skyldes utdanningen
- Den siste tiden har det blitt satt søkelys på at man i større grad må ta med andre faktorer i programmeringen enn det rent tekniske. Er dette et sted hvor systemarkitektene kan finne sin rolle?
- Det er noe som systemarkitekter må forstå. En av tingene som har skjedd de siste 30 årene er at programvare har gått fra å være noe som gjør forretningsdriften mer effektiv til å få en større rolle i samfunnet. Det er viktig for systemarkitekten å forstå denne rollen.
O'Reilly legger til at hvordan programmeringen reflekterer omverdenen ikke er godt nok forstått av verken utviklerne, systemarkitektene eller teknologiindustrien.
- Hvorfor er det slik?
- Mye av det skyldes utdanningen. For eksempel i matematikk eller datavitenskap reduserer du et problem til de minste bestanddelene for å løse problemet. Du kan ikke gjøre det samme med sosiale systemer.
Utviklere mangler etiske regler: - Ser ikke konsekvensene av koden sin
Filosofi og humaniora
- Innenfor økonomifaget er det flere bevegelser som forsøker å reformere det, ettersom at de ser at kartet ikke stemmer med terrenget. Står systemarkitekter og utviklere overfor det samme problemet?
- Ja. 100 prosent. De har arvet mye fra datavitenskap, nemlig at det er mulig å forutse framtiden. Men design av programvarearkitektur handler om å ta avgjørelser under usikkerhet, sier O'reilly.
Han mener at vi står overfor krefter som gjør at vi hele tiden må gjøre kompromisser. For å håndtere usikkerhet bør man bruke tid på å lese om kompleksitet og programvareutvikling, ifølge Microsoft-veteranen.
- Man kan begynne med arbeidet mitt om residuality theory, og om du vil kan du dykke litt dypere ved å lese referansene.
O'Reilly er tilhenger av å kombinere programmering og datavitenskap med andre fagfelt. Selv har han lest seg opp på filosofi, kompleksitetsteori og flere andre vitenskaper.
- Vi må eksponere programmerere for humaniora og sosialvitenskapene.