Arkkitehtuuritietoisku eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä
Esikysymys Kuinka moni aikoo suunnitella projektityönsä arkkitehtuurin?
Onko tämä arkkitehtuuria? Ohjelmisto toteutetaan siten, että se käyttää P2P-topologiaa Valitaan toteutusteknologiaksi QT Käytetään OpenSource-kirjastoa openssl Softa julkaistaan lisenssillä GPL Ohjelmisto toteutetaan käyttäen ketteriä menetelmiä Ohjelmiston pitää olla valmis tammikuussa 2013
Epäonnistuneen ohjelmistoarkkitehtuurin seurauksia 4 järjestelmää ei pystytä toteuttamaan järjestelmä ei valmistu suunnitellussa ajassa järjestelmä ei skaalaudu järjestelmä on tehoton järjestelmää on vaikea testata järjestelmää on vaikea ylläpitää järjestelmää ei pystytä uudelleenkäyttämään järjestelmää ei pystytä siirtämään toiseen ympäristöön
Mitkä asiat vaikuttavat arkkitehtuuriin? Arkkitehti (päättää mitä tekee) Onko erillistä tietokantaa (erillinen purkki, liitynnät) Sovelluksen käyttötarkoitus (lääketieteellinen järjestelmä vs. joku muu, käyttöliittymät) Asiakas ja muut sidosryhmän jäsenet (asiakkaan vaatimukset, johdon vaatimukset)
Mitkä asiat vaikuttavat arkkitehdin päätökseen? Resources: I have two Scrum teams Architect
Mitkä asiat vaikuttavat arkkitehdin päätökseen? Resources: I have two Scrum teams Requirements: The system should have response time under 1 s when there is 10000 users logged in the service. Architect
Mitkä asiat vaikuttavat arkkitehdin päätökseen? Resources: I have two Scrum teams Experience: I have had bad experiences using Struts Requirements: The system should have response time under 1 s when there is 10000 users logged in the service. Architect
Mitkä asiat vaikuttavat arkkitehdin päätökseen? Resources: I have two Scrum teams Experience: I have had bad experiences using Struts Requirements: The system should have response time under 1 s when there is 10000 users logged in the service. Business goals: Company should take technology X in use within two years. Architect
Mitkä asiat vaikuttavat arkkitehdin päätökseen? Resources: I have two Scrum teams Experience: I have had bad experiences using Struts Requirements: The system should have response time under 1 s when there is 10000 users logged in the service. Personal preference: I prefer to use open source components over commercial ones Business goals: Company should take technology X in use within two years. Architect
Mitkä asiat vaikuttavat arkkitehdin päätökseen? Resources: I have two Scrum teams Experience: I have had bad experiences using Struts Requirements: The system should have response time under 1 s when there is 10000 users logged in the service. Personal preference: I prefer to use open source components over commercial ones Architect Business goals: Company should take technology X in use within two years. Time-to-market: Product should be released next week, I just do this quick-n-dirty solution
Mitkä asiat vaikuttavat arkkitehdin päätökseen? Resources: I have two Scrum teams Experience: I have had bad experiences using Struts Requirements: The system should have response time under 1 s when there is 10000 users logged in the service. Personal preference: I prefer to use open source components over commercial ones..and many other concerns. Architect Business goals: Company should take technology X in use within two years. Time-to-market: Product should be released next week, I just do this quick-n-dirty solution
Mihin asioihin arkkitehtuuri vaikuttaa?
Case: Taurus Halutaan tehdä yksi muutos: Halutaan erotella tehdyt tunnit iteraatioittain. Mitä tietoa tarvitaan?
Mitä dokumentoida?
Mitä dokumentoida?
Ei kai ketterissä menetelmissä mitään arkkitehtuureja suunnitella, kun ei haluta olla kankeita ja byrokraattisia? Arkkitehtuuri ja Agile
The Myth Architecture is a heavy-weight activity, and the magic of Agile makes it unnecessary to bother with up-front design. Lainattu Jim Coplienin ja Kevlin Henneyn Esityksestä: Agile architecture is not fragile architecture
Agile ja arkkitehtuuri Arkkitehtuuri ei ole dokumentti, arkkitehtuuri pitää kommunikoida Plan vs. Planning Pohjimmiltaan arkkitehtuuri on joukko päätöksiä Pienemmässä järjestelmässä vähemmän päätöksiä, mutta yhtä tärkeitä Avainasemassa ovat päätökset, jotka laskevat muiden päätösten tärkeyttä (~=arkkitehtuuria). Tekevät helpommista päätöksistä entistä helpompia jatkossa
Scrum Analysis Product retrospective review Potentially shippable product increment 2-4 weeks Potentially shippable product increment 2-4 weeks Delivered product
Tehdään arkkitehtuuri up-front Analysis Product Architecture design retrospective review Potentially shippable product increment 2-4 weeks Potentially shippable product increment 2-4 weeks Delivered product
0 Analysis Product 0 retrospective review Architecture, development environment, etc.. 2-4 weeks Potentially shippable product increment 2-4 weeks Delivered product
Arkkitehtuuri sprinteissä Analysis Product retrospective review Architecture design Potentially shippable product increment 2-4 weeks Architecture design Potentially shippable product increment 2-4 weeks Architecture design Delivered product
Erillinen arkkitehtuuritiimi Analysis Product XOR Architecture team retrospective review Potentially shippable product increment 2-4 weeks Potentially shippable product increment 2-4 weeks Delivered product
Arkkitehdin rooli http://www.codingthearchitecture.com/
Arkkitehdin rooli http://www.codingthearchitecture.com/
Arkkitehdin rooli How to Avoid Being the Asshole Architect 1) Eat your own dog food 2) Standards apply to you too 3) Communicate like you are a Teacher, not a Preacher 4) Lead by example in Documentation 5) Command from the trenches, not the Ivory Tower 6) Throwing your prototype/framework/design/uml documentation into the hands of the unwashed masses is not the end of your involvement 7) Attitude may work in the military for commanding respect, but it rarely succeeds in IT http://www.lessonsoffailure.com/developers/avoid-assholearchitect/
Kysymyksiä?
Jälkikysymys Kuinka moni aikoo suunnitella projektityönsä arkkitehtuurin?