Det STORA missförståndet
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Det STORA missförståndet

on

  • 521 views

En beskrivning av konsekvenserna av att se programmering som tillverkning i stället för som en legitim form av design. Ett upprop till förändring....

En beskrivning av konsekvenserna av att se programmering som tillverkning i stället för som en legitim form av design. Ett upprop till förändring.

Talare är Joakim Holm från Adaptiv Sthlm AB

Statistics

Views

Total Views
521
Views on SlideShare
515
Embed Views
6

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 6

http://www.slideshare.net 6

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • God morgon! F&#xF6;r att f&#xE5; h&#xF6;ra det h&#xE4;r blixttalet m&#xE5;ste ni l&#xF6;sa en g&#xE5;ta. <br />
  • "Jag utf&#xF6;r ett manuellt arbete. <br /> Jag &#xE4;r inte betrodd med att f&#xF6;rst&#xE5; helheten. <br /> Jag anses n&#xF6;dv&#xE4;ndig idag men b&#xF6;r p&#xE5; sikt ers&#xE4;ttas av maskiner. <br /> Jag &#xE4;r helt utbytbar. <br /> Jag anses oansvarig och m&#xE5;ste kontrolleras. <br /> Jag har en kund som inte g&#xE4;rna smutsar ner h&#xE4;nderna. <br /> - Vem &#xE4;r jag?" <br /> <br /> H&#xF6;rde jag n&#xE5;gon som sa "en utvecklare"? Helt r&#xE4;tt, det &#xE4;r allts&#xE5;... [v&#xE4;xla] <br />
  • ..."en orch"! <br /> <br /> Det kanske k&#xE4;nns lite skruvat att j&#xE4;mf&#xF6;ra programmerare med orcher, men samtidigt &#xE4;r likheterna i hur vi behandlas r&#xE4;tt sl&#xE5;ende. Och jag vill mena att det knappast &#xE4;r en slump. <br /> <br /> Faktum &#xE4;r att det &#xE4;r fullt logiskt... f&#xF6;rutsatt att du skriver under p&#xE5; f&#xF6;ljande enkla och p&#xE5; ytan oskyldiga antagande... <br /> <br />
  • ...programmering inneb&#xE4;r att bygga saker. <br /> <br /> Och det vill jag kalla f&#xF6;r det STORA missf&#xF6;rst&#xE5;ndet. H&#xE4;r &#xE4;r varf&#xF6;r... <br />
  • Om vi t&#xE4;nker p&#xE5; hur ett bygge fungerar k&#xE4;nns s&#xE4;kert punkterna p&#xE5; bilden helt normala. <br /> [tala om bild] <br /> <br /> S&#xE5; hur skulle det h&#xE4;r t&#xE4;nkande fungera om vi trodde att systemutveckling var ungef&#xE4;r likadant? <br />
  • ... M&#xE4;rkte ni att jag faktiskt v&#xE4;xlade faktiskt bild d&#xE4;r. L&#xE5;t mig g&#xF6;ra det igen. [v&#xE4;xla fram/tillbaka]. <br /> F&#xF6;r att f&#xE5; det h&#xE4;r att k&#xE4;nnas som v&#xE5;r bransch beh&#xF6;ver vi i stort s&#xE4;tt bara &#xE4;ndra mediet som vi arbetar med. <br /> <br /> Men &#xE4;r det verkligen s&#xE5; h&#xE4;r illa? T&#xE4;nk efter sj&#xE4;lv: <br /> - &#xC4;rligt talat, har vi inte chefer/kunder som egentligen tycker att de &#xE4;r lite b&#xE4;ttre &#xE4;n vi? <br /> - Ogillar inte dina kunder att beh&#xF6;va involveras i tid och otid i projekten? <br /> - Har vi inte arkitekter och "kravare" som ska t&#xE4;nka &#xE5;t programmerarna och testare f&#xF6;r att kontrollera arbetet? <br /> - Utkontrakterar de inte jobbet till n&#xE5;gon som tar mycket mindre betalt s&#xE5; fort de f&#xE5;r chansen? <br /> <br /> Konsekvenserna av denna villfarelse &#xE4;r allts&#xE5; fruktansv&#xE4;rda f&#xF6;r oss, orcherna. Men &#xE4;ven f&#xF6;r kunderna, eftersom verkligheten sl&#xE5;r undan benen f&#xF6;r dem hela tiden. Men de ser inte att det ligger i systemet sj&#xE4;lvt. De tror att det helt enkelt beror p&#xE5; att de jobbar med folk som inte &#xE4;r riktigt kompetenta - vilket bara st&#xE4;rker deras uppfattningar om manuell arbetskraft! <br /> <br />
  • Jag har tr&#xF6;ttnat p&#xE5; detta. Jag vill inte ha det s&#xE5; h&#xE4;r l&#xE4;ngre. D&#xE4;rf&#xF6;r &#xE4;r budskapet med detta tal det h&#xE4;r: <br /> <br /> F&#xF6;r att f&#xF6;r&#xE4;ndra synen p&#xE5; systemutvecklare fr&#xE5;n orcher till n&#xE5;got b&#xE4;ttre m&#xE5;ste vi b&#xF6;rja med att sj&#xE4;lva f&#xF6;rst&#xE5; mjukvarans natur och i alla sammanhang utstr&#xE5;la och uttrycka detta. <br /> <br /> Om systemutveckling inte &#xE4;r tillverkning, vad &#xE4;r det d&#xE5;? Vad &#xE4;r dess "sanna natur"? <br />
  • L&#xE5;t oss &#xE5;terg&#xE5; till tillverkning f&#xF6;r ett &#xF6;gonblick. Resultatet av en byggnadsarkitekts design &#xE4;r inte huset utan ritningar. Dessa ritningar &#xE4;r relativt kompletta och entydiga. De kan ges till godtycklig byggfirma och de utf&#xF6;r jobbet. Visst, det finns utrymme f&#xF6;r diskussioner men i stort s&#xE4;tt &#xE4;r byggfirmans jobb att f&#xF6;lja ritningarna s&#xE5; snabbt, billigt och korrekt som m&#xF6;jligt. <br /> <br /> Vad skulle vara motsvarigheten till ritningarna inom systemutveckling? Det intuitiva svaret &#xE4;r f&#xF6;rst&#xE5;s v&#xE5;ra UML-diagram. De k&#xE4;nns ju lite ingenj&#xF6;rsm&#xE4;ssiga s&#xE5;d&#xE4;r. Men ge samma diagram till tio programmerare och du f&#xE5;r tio olika program. UML-diagram &#xE4;r allts&#xE5; allt annat &#xE4;n kompletta och entydiga. <br /> <br /> L&#xE5;t oss fundera lite mer... Vad &#xE4;r egentligen design? <br /> <br />
  • Det &#xE4;r en stor fr&#xE5;ga. Men kortfattat kan man s&#xE4;ga att det &#xE4;r en komplicerat process av att f&#xF6;rst&#xE5; problem och hitta l&#xF6;sningar till dem. F&#xF6;r varje behov finns en o&#xE4;ndlig m&#xE4;ngd m&#xF6;jliga l&#xF6;sningar. <br /> Design &#xE4;r den m&#xF6;rka avgrunden mellan ett behov och en tillfredsst&#xE4;llande l&#xF6;sning. <br /> <br />
  • Det &#xE4;r en stor fr&#xE5;ga. Men kortfattat kan man s&#xE4;ga att det &#xE4;r en komplicerat process av att f&#xF6;rst&#xE5; problem och hitta l&#xF6;sningar till dem. F&#xF6;r varje behov finns en o&#xE4;ndlig m&#xE4;ngd m&#xF6;jliga l&#xF6;sningar. <br /> Design &#xE4;r den m&#xF6;rka avgrunden mellan ett behov och en tillfredsst&#xE4;llande l&#xF6;sning. <br /> <br />
  • Det &#xE4;r en stor fr&#xE5;ga. Men kortfattat kan man s&#xE4;ga att det &#xE4;r en komplicerat process av att f&#xF6;rst&#xE5; problem och hitta l&#xF6;sningar till dem. F&#xF6;r varje behov finns en o&#xE4;ndlig m&#xE4;ngd m&#xF6;jliga l&#xF6;sningar. <br /> Design &#xE4;r den m&#xF6;rka avgrunden mellan ett behov och en tillfredsst&#xE4;llande l&#xF6;sning. <br /> <br />
  • En form av design handlar om att skapa enstaka, unika f&#xF6;rem&#xE5;l, som igloon i f&#xF6;rra bilden. Men de flesta designarbeten i modern tid syftar i st&#xE4;llet till att skapa en entydig form l&#xE4;mplig f&#xF6;r n&#xE5;gon slags efterf&#xF6;ljande produktionsprocess, som h&#xE4;r, ett originalmanus och en litografi. <br /> <br />
  • S&#xE5;... allt som vi g&#xF6;r fr&#xE5;n att vi tror att vi f&#xF6;rst&#xE5;tt behovet/problemet fram tills att vi har en entydig och komplett ritning av l&#xF6;sningen &#xE4;r design. Allt arbete efter den tidpunkten &#xE4;r tillverkning, att f&#xF6;lja receptet f&#xF6;r att producera n&#xE5;got s&#xE5; korrekt, billigt och snabbt som m&#xF6;jligt. <br /> <br /> Men om nu UML-diagrammen inte &#xE4;r entydiga s&#xE5; betyder det.. att det finns en massa design kvar att g&#xF6;ra n&#xE4;r vi programmerar! Och det h&#xE4;r st&#xE4;mmer med v&#xE5;r erfarenhet, eller hur? Programmering handlar inte om att texts&#xE4;tta diagram. Oavsett hur mycket vi t&#xE4;nker efter f&#xF6;re, n&#xE4;r vi kommer till koden blir det alltid &#xE4;ndringar, ofta stora f&#xF6;r&#xE4;ndringar. <br /> <br /> Diagrammen duger inte, men vi har dock en sak som faktiskt uppfyller kraven: Vi kallar det f&#xF6;r... <br /> <br />
  • ...k&#xE4;llkod. Faktum &#xE4;r att den &#xE4;r s&#xE5; superentydig att vi kan ge den till ett antal maskiner och de kommer alltid att producera samma resultat, givet samma recept. <br /> <br /> Det m&#xE5;ste allts&#xE5; vara det som &#xE4;r att bygga program. F&#xF6;r tusan, det heter ju t o m "byggservrar". <br /> <br /> V&#xE5;r entydiga f&#xF6;rlaga, v&#xE5;rt recept, v&#xE5;r ritning &#xE4;r allts&#xE5;... k&#xE4;llkod. <br /> <br />
  • Det h&#xE4;r resonemanget har lett oss till f&#xF6;ljande slutsatser: <br /> 1. Systemutveckling &#xE4;r fr&#xE4;mst att designa program. <br /> 2. Slutresultatet av designen, v&#xE5;rt recept, &#xE4;r k&#xE4;llkod. <br /> 3. F&#xF6;ljaktligen, vad en programmerare mest sysslar med &#xE4;r design. <br /> <br /> Men hur kan det vara design, kanske ni t&#xE4;nker? Det finns ju inget visuellt, det &#xE4;r ju bara text? <br /> - Sj&#xE4;lvklart! Fr&#xE5;ga vilken ung och arg poet som helst. <br /> <br />
  • Det h&#xE4;r resonemanget har lett oss till f&#xF6;ljande slutsatser: <br /> 1. Systemutveckling &#xE4;r fr&#xE4;mst att designa program. <br /> 2. Slutresultatet av designen, v&#xE5;rt recept, &#xE4;r k&#xE4;llkod. <br /> 3. F&#xF6;ljaktligen, vad en programmerare mest sysslar med &#xE4;r design. <br /> <br /> Men hur kan det vara design, kanske ni t&#xE4;nker? Det finns ju inget visuellt, det &#xE4;r ju bara text? <br /> - Sj&#xE4;lvklart! Fr&#xE5;ga vilken ung och arg poet som helst. <br /> <br />
  • Det h&#xE4;r resonemanget har lett oss till f&#xF6;ljande slutsatser: <br /> 1. Systemutveckling &#xE4;r fr&#xE4;mst att designa program. <br /> 2. Slutresultatet av designen, v&#xE5;rt recept, &#xE4;r k&#xE4;llkod. <br /> 3. F&#xF6;ljaktligen, vad en programmerare mest sysslar med &#xE4;r design. <br /> <br /> Men hur kan det vara design, kanske ni t&#xE4;nker? Det finns ju inget visuellt, det &#xE4;r ju bara text? <br /> - Sj&#xE4;lvklart! Fr&#xE5;ga vilken ung och arg poet som helst. <br /> <br />
  • Jag var absolut inte f&#xF6;rst om dessa tankar. Jack Reeves, som redan h&#xF6;sten 1992 i C++ Journal skrev att k&#xE4;llkoden &#xE4;r det enda som uppfyller kraven p&#xE5; en ingenj&#xF6;rsm&#xE4;ssig ritning. Han ins&#xE5;g att n&#xE4;stan allt vi g&#xF6;r &#xE4;r design: testning, debugging, kodning t o m det som vi brukar kalla f&#xF6;r design &#xE4;r design. Enda sk&#xE4;let till att vi missar det &#xE4;r att sj&#xE4;lva tillverkningen g&#xE5;r s&#xE5; fort och &#xE4;r i stort sett gratis. <br /> <br /> Hur skulle v&#xE4;rlden se ut om m&#xE4;nniskor visste att programmering var design? <br />
  • D&#xE5; skulle vi veta att... [tala om bild] <br /> <br /> Jag tror att de flesta av er h&#xE4;r h&#xE5;ller med om dessa saker. Det &#xE4;r h&#xE4;r vi egentligen skulle vilja befinna oss, men det &#xE4;r s&#xE5; tragiskt s&#xE4;llan v&#xE5;r verklighet. <br /> <br />
  • Vad kan vi g&#xF6;ra? Wittgenstein sa: "The limits of my language means the limits of my world." Han ins&#xE5;g att vi m&#xE4;nniskor inte kan t&#xE4;nka n&#xE5;got som vi inte har ett spr&#xE5;k f&#xF6;r. <br /> <br /> Spr&#xE5;k &#xE4;r allts&#xE5; essentiellt. Vill vi f&#xF6;r&#xE4;ndra n&#xE5;got &#xE4;r spr&#xE5;k ett utm&#xE4;rkt redskap. Exempel: L&#xE5;t oss kalla den helt oskyldiga spanska skogssnigeln f&#xF6;r "m&#xF6;rdarsnigel". Det blir liksom lite l&#xE4;ttare att utrota den d&#xE5;... <br />
  • Allts&#xE5;: Spr&#xE5;k &#xE4;r makt... men vi beh&#xF6;ver ta makten &#xF6;ver spr&#xE5;ket. N&#xE4;stan varje dag h&#xF6;r jag utvecklare s&#xE4;ga att de ska "bygga en funktion" eller "producera kod". Ni m&#xE4;rker att tillverkningsmetaforen m&#xE5;r finfint &#xE4;ven hos oss. Om inte ens vi sj&#xE4;va kan s&#xE4;ga r&#xE4;tt, hur kan vi d&#xE5; f&#xF6;rv&#xE4;nta oss att n&#xE5;gon annan g&#xF6;ra det? <br /> <br /> H&#xE4;r &#xE4;r n&#xE5;gra exempel: <br /> - S&#xE4;g aldrig att du ska bygga en funktion/program/system - s&#xE4;g att du ska utveckla/designa den. <br /> - Uttryck aldrig att du ska "producera kod" - s&#xE4;g "skriva" eller "f&#xF6;rfatta" <br /> - Prata inte som skisser p&#xE5; tavlan som "design", s&#xE4;g i st&#xE4;llet att du "modellerar problemet" <br /> osv <br /> <br />
  • Jag har pratat mycket om synen p&#xE5; programmerare, men egentligen &#xE4;r det mycket viktigare &#xE4;n s&#xE5;. Det handlar ju om att s&#xE5; l&#xE4;nge det h&#xE4;r STORA missf&#xF6;rst&#xE5;ndet regerar s&#xE5; kommer vi att vara fast i en tillverkningsliknande utvecklingsprocess som &#xE4;r allt annat &#xE4;n optimal - f&#xF6;r n&#xE5;gon. <br /> <br /> Det betyder tyv&#xE4;rr i f&#xF6;rl&#xE4;ngningen att v&#xE5;r egen f&#xF6;rm&#xE5;ga att skapa nytta och mening med v&#xE5;ra liv kraftigt har reducerats. Vill vi ha det s&#xE5;? Vill ni inte i st&#xE4;llet k&#xE4;nna att ni skapar nytta med era liv? Hur l&#xE4;nge kan vi d&#xE5; tolerera detta tillst&#xE5;nd? <br /> <br /> L&#xE5;t oss f&#xF6;r&#xE4;ndra det h&#xE4;r. Men vi m&#xE5;ste b&#xF6;rja med att f&#xF6;r&#xE4;ndra oss sj&#xE4;lva, hur vi t&#xE4;nker p&#xE5; det h&#xE4;r och hur vi pratar om det. L&#xE5;t oss! <br /> <br />
  • <br />

Det STORA missförståndet Presentation Transcript

  • 1. Det STORA missförståndet Joakim Holm Adaptiv STHLM
  • 2. ?
  • 3. © 2001-2003, New Line Cinema
  • 4. Det STORA missförståndet: Programmering = Tillverkning
  • 5. Inom tillverkning... talar kunderna med arkitekterna, mest i designfasen är målet att få designen rätt från början konverteras ritningar till material som fogas samman till hus arbetar manuell arbetskraft (lägre utbildad, prispressad, utbytbar, opålitlig) utförs ett smutsigt detaljarbete som kunderna bör slippa
  • 6. Inom systemutveckling... talar kunderna med arkitekterna, mest i designfasen är målet att få designen rätt från början konverteras ritningar till text som körs av en dator arbetar manuell arbetskraft (lägre utbildad, prispressad, utbytbar, opålitlig) utförs ett smutsigt detaljarbete som kunderna bör slippa
  • 7. Mitt Budskap För att förändra synen på systemutvecklare från att vara orcher till något bättre måste vi själva förstå mjukvarans natur och i alla sammanhang utstråla detta.
  • 8. Ritningar?
  • 9. Ritningar?
  • 10. "Det är svinkallt och allt vi ser är snö"
  • 11. "Det är svinkallt och "Ooh, vi har ett varmt allt vi ser är snö" hu... ehh... ett hus!"
  • 12. Design "Det är svinkallt och "Ooh, vi har ett varmt allt vi ser är snö" hu... ehh... ett hus!"
  • 13. Recept för tillverkning
  • 14. tid Den här delen Den här delen är design är tillverkning
  • 15. recept för att tillverka program
  • 16. Slutsatser
  • 17. Slutsatser Systemutveckling är främst att designa program.
  • 18. Slutsatser Systemutveckling är främst att designa program. Slutresultatet av designen är källkod.
  • 19. Slutsatser Systemutveckling är främst att designa program. Slutresultatet av designen är källkod. En programmerare är främst en designer.
  • 20. "... a source code listing (in any programming language) is really a software design." "... everything is part of the design process. Coding is design, testing and debugging are part of design, and what we typically call software design is still part of design. Software may be cheap to build, but it is incredibly expensive to design." (Jack Reeves, C++ Journal, 1992)
  • 21. Om alla förstod detta... Kontinuerlig dialog med kunder och användare. Design hela vägen. Skisser är ett verktyg. Trial-and-error är en del av processen. Utbildning främst genom att gå bredvid. Proffs med yrkesstolthet och ansvarskänsla.
  • 22. Språk är makt Spansk skogssnigel?
  • 23. Ta makten över språket Säg aldrig... Säg i stället... "bygga [system]" "utveckla", "designa" "producera [kod]" "skriva", "författa" "design" "modellering" "arkitektur" "högnivådesign" "kodfabrik" "teamrum"
  • 24. Hur länge ska vi tolerera att nyttan med våra liv reduceras?
  • 25. joakim holm AGILE SOFTWARE DEVELOPER & COACH +46 70 773 76 29 joakim.holm@adaptiv.se blog: jockeholm.wordpress.com twitter: jockeholm