Arkitektur og smidighet

Slides:



Advertisements
Liknende presentasjoner
Hvor stor er en fisk? Yggdrasil Hvor stor er en fisk?  Vanlige kundetyper og prosjekter  Faktorer som påvirker.
Advertisements

Agile utviklere og firkanta driftere
Teknologi i klasserommet
TDD over BDD why and how XP meetup Johannes Brodwall, Programming artist Steria Norway.
PUG Norway – 12. nov 09Thomas Skjørten / Jan Kolstad.
Dag Dag 10:30 Velkommen til samlingen Mette H. og Jostein Soland
Praktisk info til prosjektkunder
Elementer av en utviklingsprosess
Smidig forvaltning – En pragmatisk tilnærming
Smidig 2010 "Culture eats agile for breakfast" Smidig krever en organisasjonskultur med høy tillit Jon Øyvind
Kontrakter i Smidig systemutvikling
 Galls lov og erstatningsprosjekter Johannes Brodwall Chief scientist, Steria.
Jan Helge Luth Praktisk bruk av IKT i undervisningen
Test-Drevet Utvikling Bowling med extremeprogramming.no.
Grunnleggende spørsmål om naturfag
Behaviour Driven Development, Steg 1: - Ikke tenk som en utvikler Jan Fredrik Stoveland , Smidig 2009.
Om smidig brukerkommunikasjon Smidig 2011 Johannes Brodwall Steria Norway.
Velkommen til Scrum-kurs
Arkitekter skal skape verdi Espen Berger TANDBERG.
© PROGRAM UTVIKLING as Vellykkede prosjekter leverer hyppig Johannes Brodwall, Steria Chief Scientist, Utvikler, Arkitekt, Sertifisert ScrumMaster.
Hvem stakk av med produkteieren min?
1 KravprosessenKravprosessen Noen sentral punkter.
I dag snakker vi om: Brukergrensesnitt med kvalitet Bruksegenskaper Normans 7 stadier Testing med papirprototyp.
Empiriske metoder Oppgaveanalyse, observasjon
Mange IT-prosjekter kunne med fordel vært drevet mer som en Lean Startup.
The Scrum illusion? - foreløpige resultater av undersøkelse om bruk av utviklingsmetoder i Norge Lyntale på Smidig 2011 av Eivind Brevik og Tor-Morten.
Iterate.no The Lean Software Development Consultancy Prolog: Case 2 ‣ Et prosjekt fra gamledager ‣ Prosjektleder sa “Godt nok!” ‣ Kunden sa “Hva?? Skal.
Lean Startup sier du, men jeg jobber jo i prosjekt?
Skjønner du ikke hva jeg sier sa du?
Leveransen Den siste barriere. Personer og samspill fremfor prosesser og verktøy Programvare som virker fremfor omfattende dokumentasjon Samarbeid med.
SRI LANKA Finn Worm-Petersen, Exilesoft (Pvt) Limited -Taking your software abroad © 2010 Finn Worm-Petersen,
And Together. Free your energies Bodil Rabben 16.november 2010 Modne og modige kunder og leverandører.
Når ble pragmatisk slukt av Smidig ? Joachim Haagen Skeie, Smidig 2011.
Testing av system Gruppe 6 Henrik Bækhus Morten A. Iversen Mathias Bondeson Gunnar K. Kulleseid Svein Ivar Kristiansen Ronny Hulthin.
Velkommen Tema: Prosjektretrospektiver Johannes Brodwall
Farvel til applikasjonsserveren Fra kompleksitet til kontroll.
1. Vår høyeste prioritet er å tilfredsstille kunden gjennom tidlige og kontinuerlige leveranser av programvare som har verdi.
PUS iterasjon 0 Johannes Brodwall Statens Landbruksforvaltning
Tema: Test First Positivist: Det som ikke kan måles, eksisterer ikke! Reduserer sjanser for defekter! Gir en oppdatert ”TODO-liste” Gir trygghet til å.
1. Vår høyeste prioritet er å tilfredsstille kunden gjennom å levere et verdifullt, kjørende system tidlig og kontinuerlig.
Scrum APressen Johannes Brodwall, Sjefsarkitekt Steria Norway.
Stykkpriskontrakt Oslo XP meetup Johannes Brodwall, Bare en Programmerer Steria Norway.
ROOTS Johannes Brodwall, Kløne Steria Norway
Opplev smidig programmering
© Copyright 2009 Confirmit. All rights reserved. Produktkvaliteter For de som ønsker å være bedre enn konkurrentene sine Trond Johansen – Head of R&D Norway,
Team og teamdynamikk viktig for leveranseevnen
kunder i aktive prosjekt/forvaltning, 6 interne product owner proxys, to team og tre backlogger – kan det likevel ligne på Scrum? Kristin Wulff,
Scrum gir forventede resultater selv i
Derre e itj smidi!! Jøran Lillesand Smidig 2009.
Verdistrømanalyse Henning Spjelkavik Smidig 2009 v1.1.
Oppsummering av arbeid i år Siste nytt Fra tjenestegruppe for utvikling - Since 2009.
Tema: Prosjektretrospektiver
Produktavdelingen Nicholas Robertson Program Manager.
1 Innhold Prosjektet ”Bygg ned barrierene !” - formål - hovedfunn Hva betyr dette ?
Harmoni mellom teknologi og metodologi = økt produktivitet. Av Henrik Larsen Toft Takk til veileder: Lars-Petter Helland.
Å omfavne forandringer med ekstrem programmering(XP) Brukt i In140 Skrevet av Ola Bø Bygger på Kent Becks artikkel "Embracing change with extreme programming."
© Steria Deltagernes ”User Story” Som en din rolle i prosjekter Ønsker jeg å lære mer om ditt ønsketema Slik at jeg hvordan håper du kvelden skal forbedre.
Kontinuerlig kvalitetskontroll. Hvordan komme helt i mål.
BUCS Utfordringer og valg av fokus Tor Stålhane. Rammebetingelser Første spørreundersøkelse viser at det vi gjør må kunne: Brukes sammen med UML Passe.
Smidig vedlikehold gir gevinst – men koster blod, svette og tårer
Grid Computing AliEn og Condor. Hvem, hva, hvor Jeg heter André Waage Sørensen Er tilknyttet Alice prosjektet på CERN Jobber med Grid teknologier som.
Telenors satsing på fri programvare Paul Skrede - GoOpen 2009.
Kap. 23 – Software Engineering How Information Technology Is Conquering the World: Workplace, Private Life, and Society Professor Kai A. Olsen,
Observasjon og kartlegging av barns språk i overgangen fra barnehage til skole.
Evaluering av [prosjektnavn] [navn]. Resultat kontra mål Målsetting: Oppgi opprinnelig mål eller prosjektmål –Lag en liste over de viktigste måleenhetene.
Bygg 21 Digitalisering av byggebransjen Rapport
CAKE Q1 Ledelsesansvar Ptil’s forventninger:
Hva er XP ? Ikke ekstrem, men heller meget forsiktig
Dagfinn Bergsager Universitetet i Oslo SMIDIG 2016
Når virker 1:1 kommunikasjon? Miriam Gade Nicolaisen
Utskrift av presentasjonen:

Arkitektur og smidighet

Agenda 14:00 – Behovsanalyse + bakgrunn 15:00 – Planlegging 15:15 – Gjennomføring 17:15 – Retrospektiv 17:30 – Avslutning 18:00 – Oslo XP meetup (valgfritt)

Som en instruktur i smidige metoder Ønsker jeg at deltagerne skriver en ”participant story” for seminaret Slik at jeg forstår de problemene deltagerne står ovenfor i sin hverdag

Hva er arkitektur?

“The software architecture of a program or computing system is the structure […] of the system, which comprise software components, the externally visible properties of those components, and the relationships between them.” (wikipedia)

“ the highest level concept of a system in its environment “ the highest level concept of a system in its environment. [The] organization or structure of significant components interacting through interfaces, those components being composed of successively smaller components and interfaces.” (IEEE/RUP) (via http://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf)

“Architecture is about the important stuff. Whatever that is “Architecture is about the important stuff. Whatever that is.” (Ralph Johnson, via [Fowler])

“Architecture is the decisions that you wish you could get right early in a project” (Ralph Johnson, via [Fowler])

The Code is the Design Utvikling er som bygging, men gal metaforbruk: Konstruksjon er kompilering, ikke koding Design er koding, ikke tegning Å ”konstruere” er kjempebillig Jack Reeves: The Code is the Design

Oversikt Lean: See The Whole

Oversikt over hva? Domene Koden og designet Integrasjon med omverden Infrastruktur Systemegenskaper Konsept til cash – utviklingsverdikjeden Fra konsept til krav Fra krav til testet kode Fra testet kode til produksjon

Systemegenskaper Testbarhet Driftbarhet Vedlikeholdbar Når kan disse måles?

Det smidige manifest Individer og samspill framfor prosesser og verktøy Fungerende system framfor utførlig dokumentasjon Samarbeid med kunden framfor kontraktsforhandlinger Å reagere på endringer framfor å følge en plan

De smidige prinsippene: Levere verdifullt, kjørende system hyppig Endringer = kundens konkurransefortrinn Hyppige leveranser Forretning og utvikling jobber sammen Stol på teamet Samtale ansikt-til-ansikt. Mål fremdrift ved programvare Bærekraftig arbeidstempo Teknisk utmerkelse Enkelhet Arkitekturen vokser fram Teamet reflekterer

Organisk arkitektur  blindveier (8) Prosjektstart i smidige prosjekter (6) Å gjøre et prosjekt smidig (6) Kvalitet  desentraliserte beslutninger (4) Levere verdi  Lever kode (4) Å bruke smidige verktøy i ikke-smidig prosjekt (2) Å ”selge” smidig (3) Å håndtere krav i endring (3) Mislykkes med smidige metoder (3) Verktøy i et smidig prosjekt (2) Tekniske beslutninger  hyppige leveranser (3) Prosjektets virkelighet  hyppige leveranser (3) Hva er ”endringsdyktighet”? (3) Hva er ”teknisk utmerkelse”? (3)

Retrospektiv Hva er jeg enig i? Hva er jeg uenig i? Hva vil jeg studere mer? Hva vil jeg gjøre annerledes fra i morgen? Hva skulle jeg ønske vi hadde snakket (mer) om?

Handouts

Referanser Wikipedia Martin Fowler: ”Who Needs an Architect” Jack Reeves: ”The code is the design” Agile Manifesto

Hva er arkitektur “The software architecture of a program or computing system is the structure […] of the system, which comprise software components, the externally visible properties of those components, and the relationships between them.” (wikipedia) “ the highest level concept of a system in its environment. [The] organization or structure of significant components interacting through interfaces, those components being composed of successively smaller components and interfaces.” (IEEE/RUP) “Architecture is about the important stuff. Whatever that is.” (Ralph Johnson) “Architecture is the decisions that you wish you could get right early in a project” (Ralph Johnson) “Arkitektur er oversikt” (Johannes)

Oversikt over hva? Krav og domeneområdet og hvordan det forbindes med andre omliggende områder Hvordan helheten av koden fungerer Hvordan systemet samhandler med systemene rundt Hvordan infrastrukturen og systemet samhandler Hvordan man kommer fra konsept til cash Hvordan man kommer fra testet kode til produksjon

Det smidige manifest Vi oppdager stadig nye og bedre måter å utvikle systemer på, både ved å gjøre det selv og ved å hjelpe andre. Derved har vi lært oss å verdsette: Individer og samspill framfor prosesser og verktøy Fungerende system framfor utførlig dokumentasjon Samarbeid med kunden framfor kontraktsforhandlinger Å reagere på endringer framfor å følge en plan Det betyr at selv om punktene til høyre er verdifulle, verdsetter vi de til venstre mer.

De smidige prinsippene: Vår høyeste prioritet er å tilfredsstille kunden gjennom å levere et verdifullt, kjørende system tidlig og hyppig. Ønske endrede krav velkommen, også selv om det er sent i utviklingen. Smidige prosesser utnytter endringer til å gi kunden konkurransefortrinn. Hyppige leveranser av fungerende system, fra et par uker til et par måneder, med preferanse for den korte enden av skalaen. Forretningssiden og utviklere må jobbe sammen daglig gjennom hele prosjektet. Bygg prosjektene rundt motiverte individer. Gi dem det miljøet og den støtten de trenger, og stol på at de får jobben gjort. Den mest effektive metoden for å spre informasjon til og innen et utviklingsteam, er samtale ansikt-til-ansikt. Fungerende programvare er den viktigste målestokken på fremdrift Smidige prosesser skal understøtte bærekraftig arbeidstempo. Sponsorer, utviklere og brukere bør være i stand til å holde et konstant tempo i ubegrenset tid. Kontinuerlig fokus på teknisk utmerkelse og godt design forsterker smidighet. Enkelhet - kunsten å maksimere mengden arbeid som ikke gjøres - er essensielt. De beste arkitekturene, kravene og designene vokser fram fra selv-organiserende team. Med jevne mellomrom reflekterer teamet over hvordan det kan bli mer effektivt, og så justerer det arbeidsmåten sin tilsvarende

Spørsmål Hva er rollen til verktøy innen et smidig prosjekt? Betyr "individer og samspill framfor prosesser og verktøy" at verktøy som FitNesse, JUnit, byggservere, applikasjonsservere, regelmotorer og databaser ikke skal brukes?  Hvilke tekniske beslutninger understøtter og undergraver hyppige leveranser? Hvilke forhold i prosjekt gjør hyppige leveranser vanskelig, og hva kan vi gjøre? Hvordan kan vi levere verdi og ikke bare kode? Hvilke faktorer gjør et system endringsdyktig? Hvordan kan vi få kvalitet med desentraliserte beslutninger? Hva er konsekvensene av å ha for mye eller for lite dokumentasjon? Hva betyr egentlig "enkelhet"? Hvordan kan arkitekturen "vokse fram" uten at vi maler oss inn i et hjørne? Hva er det som skjer når vi "maler oss inn i et hjørne"? Hvordan kan vi unngå dette? Hva betyr egentlig teknisk utmerkelse?