Ud fra overskriften kan man nemt frygte at dette indlæg handler om kedelige test processer. Det er nemt at få det indtryk, når man kigger på kvalitetssikring som en utaknemmelig opgave ved at påpege andres fejl og produkters mangler. I denne artikel vil jeg komme ind på de gode ting ved test og kvalitet – noget som virkelig kan skabe en forandring.

For mig og dem jeg arbejder sammen med ser vi mere kvalitetssikring som en måde at skabe bedre kvalitetssoftware med (duh – virkelig – det ligger jo lidt i navnet). Som professionel softwareudvikliner og softwarearkitekt har jeg fundet ud af at det faktisk er kvalitet som er med til at jeg har mulighed for at arbejde med de sjove projekter, de gode kunder og prøve kræfter med nye teknologier og platforme.

For at forklare det lidt nærmere er vi nødt til at gå baglæng fra softwarekvalitet i den software vi leverer til vores kunder og se hvorfor og hvordan vi gør det.

Først er vi lige nødt til at få styr på begreberne. Jeg skriver omkring softwarekvalitet og skriver samtidig at jeg har en teknisk baggrund med at bygge software, så er det næsten givet at jeg vil skrive omkring noget super teknisk og med en snobbet tilgang til at skrive kode som kun kan følge alle de bedste principper. Intet kunne være længere fra sandheden.

Hvad er kvalitet?

Vi er nødt til at få styr på begreberne, når jeg skriver ordet “kvalitet” så er jeg sikker på at alle de forskellige læsere af denne artikel har forskellige indgange til hvad kvalitet er. Der er forskel på om du er programmør, konsulent, designer, projektleder eller kunde. Nogen tænker med det samme “test”, som egentligt er meget usekset. Kvalitet er et bedre og bredere begreb.

Kigger man på nedenstående billede, så er mit (måske lidt provokerende) spørgsmål om det er kvalitet? Jeg mener, det er jo kildekode – der er jo både kommentarer og alt muligt. Der er også nogle gode principper i spil, jeg bruger forkortelser og generelt set er det simpel kode som er fleksibelt, nemt at teste, nemt at kommunikere til andre professionelle.

Er dette software kvalitet?
Softwarekode – er dette god kvalitet?

Tricket ved dette spørgsmål er at det ikke er muligt at svare på det.

Det er et trick spørgsmål som er svært at svare på og skal illustrere at vi alle vil svare forskelligt på spørgsmål, alt efter hvilken forestilling vi har omkring god kvalitet.

Viser vi det til en programmør vil han måske sige, tjaa – det er ok (hvis det er en programmør fra Jylland er det faktisk ret vildt). Viser du det til en designer, en konceptudvikler eller til en kunde – så får man bare et tomt blik og måske rullende øjne tilbage.

Det er fordi vi snakker forbi hinanden og fordi vi ikke har samme fornemmelse for hvad god kvalitet er – eller jo – indenfor vores egen profession.

Jeg kunne lave samme billede ud fra enhver anden faglighed, et flot fotografi, en illustration, et servicedesign, en flot muret villa. Alle fagligheder ville have vidt forskellige holdninger til hvad der er god kvalitet. Heldigvis.

Intern kvalitet og ekstern kvalitet

Lad os starte med at definere kvalitet som at det enten er intern (inde i vores virksomhed) eller ekstern (udenfor vores virksomhed). Denne øvelse kan vi gøre på afdelingsniveau, inde i virksomheden også. Intern kvalitet i IT afdelingen har måske noget med teknik, softwarearkitektur og måske endda kode at gøre. Ekstern kvalitet i forhold til IT afdelingen har måske noget med at gøre om “gør det der IT som det skal”.

Nu sidder vi og peger lidt fingre af IT afdelingen, men vi skal huske på at det gælder alle afdelinger. Intern kvalitet i salgsafdelingen giver fuldt ud mening for de medarbejdere her, men det de ser som kvalitet opfatter vi, der står udenfor afdelingen som noget andet. Taler de/vi med vores interne sprog, så bliver det ikke altid forstået på den rigtige måde.

Som professionel er det vores ansvar at kunne skelne mellem disse typer af kvalitet. Når vi skelner mellem intern og ekstern kvalitet bliver vi bedre til at levere kvalitet til vores kunder (eller til andre afdelinger) fordi vi nu forstår hvordan vores afdeling eller vores produkter betragtes af vores kunder.

For IT afdelingen er stærke kode-principper god intern kvalitet, der skaber robust og fleksibelt software. For salgsafdelingen er det et stærke processer og en god governance, der skaber et godt og effektivt møde med kunderne. For regnskabsafdelingen er det stærke nøgletal og data-drevet viden som skaber en god kvalitet af ledelsesinformation til at træffe strategiske beslutninger ud fra.

Sådan skaber vi kvalitet

Noget af det jeg/vi har bemærket i løbet af vores samarbejde med mange forskellige typer af virksomheder og mange forskellige typer af organisationer er at alle gerne vil skabe kvalitet. For os i Median starter vi internt med et fokus på intern kvalitet. Det sker på flere niveauer:

  • Internt fokus på kvalitet i produkter (udvikling og rådgivning)
  • Fokus på intern kvalitet i forhold til kulturen og medarbejderne
  • Fokus på intern kvalitet i forhold til mening med at lave godt og meningsfyldt arbejde

Vores erfaring er at, hvis vi fokuserer på at have god kvalitet internt i vores virksomhed, i vores kultur og i vores tekniske løsninger, så leverer vi også bedre ekstern kvalitet. I vores (og sikkert mange andre) tilfælde driver et fokus på intern kvalitet en bedre ekstern kvalitet. Det vil sige at vores kunder oplever at det vi laver er robust, fleksibelt, professionelt og at høj kvalitet – og det udstråler vi også – ekstern kvalitet.

Hvor kommer tiden fra?

Tilbage til min oprindelige påstand om at en snak omkring softwarekvalitet faktisk er noget af det jeg elsker at fortælle om, specielt omkring hvordan det er med til at jeg kan kortlægge nye platforme, teknologier og have tid til at hygge med mine kollegaer og komme hjem til normal tid, hver dag.

Som softwareudvikler og softwarearkitekt er jeg uddannet til at være doven! Det betaler sig at være doven – indenfor softwareudvikling. Hvis jeg laver et stykke software af dårlig kvalitet, så kommer jeg til at reparere det hver eneste dag – kunder er sure, børnene og kærsten er sur og det hele er surt. Hvis jeg laver software af høj kvalitet – ja det tager en masse erfaring, dygtige kollegaer og det tager ekstra tid, så skal jeg ikke vedligeholde det hver eneste dag. Jeg skal tilføje nye udvidelser (ikke rettelser, men naturlige udvidelser) som jeg i ro og mag kan planlægge. Kort sagt, hvis jeg sidder på kontoret og halv-sover med fødderne på bordet, så er det fordi jeg er dygtig til mit job.

Ok – måske er det også lidt for meget af det gode, men det jeg oplever er at et stærkt fokus på kvalitet er det som hjælper med at give tid til at prøve nye tekonolgier af. Det hjælper med at holde den gode kultur og mest af alt – så holder det “Broken Window Theory” fra døren.

Broken Window Theory

Jeg faldt ved et tilfælde over denne teori for et par år siden. Først i dens oprindelige form, hvor det handler om kriminalitet, senere faldt jeg over en sammenligning med softwareudvikling. Når jeg ser softwarekvalitet i dag, så er min drivkraft helt klart at jeg vil gøre alt for at undgå at falde i fælden med “Broken Window Theory”. Det handler ikke længere om at skrive en automatiseret UI test, eller en processbeskrivelse til governance. Det er meget større end det!

Konceptet bag “Broken Window Theory” er at du skal forestille dig at du flytter ind i henholdsvis et faldefærdigt hus og et vedligeholdt hus. Der er tale om to fundamentalt forskellige psykologiske principper.

I det faldefærdige hus er der et par vinduer som er smadret, døren slår revner og knirker, malingen skaller af og generelt set er der beskidt. Broken Window Theory går så på at, når du kommer ind i sådan et hus, så har vi alle en tendens til at miste modet og ikke gide gøre en ekstra indsats for at få huset gjort pænt igen – “hvorfor skal jeg gøre det, når andre ikke har gjort noget?”. I Softwarekvalitet og i virksomhedens processer er dette ret ligetil at sammenligne – “hvorfor skal jeg teste mit arbejde, det er der jo ikke andre som gør – og det hele er bare…øv…” – “processbeskrivelse og flow chart – hvorfor? Det nytter jo ikke, der er ingen, der ser det og ingen andre har lavet det”.

Det modsatte er heldigvis også gældende, hvis vinduerne er nypudsede, døren er velholdt, nyt akustikloft og der er en fornemmelse af at dem, der bor her gør noget ekstra ud af det. Hvis man sikrer “gode vaner” omkring kvalitet og en god og sund kultur i forhold til ikke bare at sende “aben” videre – men at tage et ansvar – at have lyst til at øge kvaliteten. Gode rammer og en god kultur skaber af samme skuffe (både på godt og ondt).

Alt dette vælger jeg at spejle ind i det arbejde jeg selv laver, det peger ind i min software (hvis ikke jeg gør det ordentligt, hvorfor skal mine kollegaer så gøre noget ekstra ud af det?), ind i kulturen i virksomheden og generelt i det indtryk jeg gør hos andre. Det kan da godt være at man kan sige at man skal opføre sig eksemplarisk – men det er så fluffy – det her med “Broken Window Theory” er noget, man kan forholde sig til. Det er simpelt og konkret.

Hvor kan vi hjælpe?

Et samarbejde med os tager udgangspunkt i at vi udvikler værdi i fællesskab. Der skal vi sammen finde ud af om det er en enkelt transaktion (fx. et stykke software) eller det er et længerevarende samarbejde, hvor Median hjælper med at forbedre jeres interne kvalitet – dette kan være alt fra udvikling af nyt software, softwarerobotter og automatisering eller integration mellem systemer. Det kan også være ledelsessparring, optimering af processer eller fokus på after-market/sales organisationen. Med et fokus på jeres interne kvalitet kan vi i fællesskab skabe værdi som inddrager jeres kunder og gradvist forbedrer jeres produkter og services.