Afsløring: Dårlig kodekvalitet lagde grunden for Polsag-skandalen

Dokumentation: En ekstern evaluering af Polsag-projektet fra 2009 kritiserede CSC og Scanjour for dårlig kodekvalitet. Det ville give problemer med performance, lød forudsigelsen dengang. Se hele rapporten her.

Da politiets store og nu stendøde sagssystem Polsag skulle testes i den virkelige verden for første gang i 2011, var de 80 bornholmske betjente, som blev forsøgskaniner, meget lidt begejstrede.

Læs også: Politiet dropper skandalesystemet Polsag

Blandt problemerne var lange svartider og generel sløve hastigheder. Når døgnrapporten for eksempel skulle sættes sammen om morgenen, krævede det 7.000 datatræk, og det tog sin tid, har Rigspolitiet tidligere fortalt Version2.

Men problemerne burde ikke komme som en overraskelse, for en større analyse fra 2009 af det allerede dengang skandaleramte projekt viste nemlig, at den tekniske side af it-systemet havde problemer, som ’yderst sandsynligt’ ville gøre det dyrere end nødvendigt at drive og vedligeholde systemet.

Det viser evalueringsrapporten fra 2009, som Version2 har fået aktindsigt i.

Det eksterne review er forfattet af Boston Consulting Group, og i kapitlet om Polsags tekniske opbygning er der mange kritikpunkter af koden, som især CSC’s underleverandør Scanjour sad med fingrene i.

Opsummeringen af det tekniske arbejde lister blandt andet svag kodekvalitet og manglende brug af teknikker, der kan fremme performance i systemet.

Læs også: Konklusion af Polsag-review fra 2009: Elendig kode hånd i hånd med elendig kontrakt

Det har ifølge rapporten følgende konsekvenser:

'Øget risiko for utilfredsstillende svartider. Øget sandsynlighed for softwarefejl i systemet (bugs).'

Fordi Polsag blev købt under FESD-indkøbsaftalen, på linje med helt almindelige ESDH-systemer til sagsbehandling i for eksempel et ministerium, blev politisystemet bygget med Scanjours Captia-software som fundament.

Men fordi politiets opgaver er helt anderledes end et typisk offentligt kontor, endte systemet med at blive næsten specialudviklet i alle leder og kanter.

Problemet er, at Scanjour og CSC ikke holdt Captia-softwaren adskilt fra al den særlige Polsag-kode, lyder det i reviewet, hvor Trifork har leveret de tekniske analyser af Polsag.

Den manglende adskillelse gør det meget svært at opgradere Captia-systemet, som er motoren i Polsag, eller at skifte til en anden leverandør, uden at hele systemet skal skrives om, fremgår det af evalueringen fra 2009.

Desuden kritiserer rapporten, at leverandørerne har brugt mange forskellige teknologier i Polsag, hvilket gør det mere kompliceret at arbejde med.

Trifork observerede, at Polsag er implementeret i samlet set fire programmeringssprog (Javascript, C#, C++ og PL-SQL)… Ydermere kører den C++ kode, der er anvendt til Captia og Polsag drivere, som unmanaged kode på Microsofts applikationsserver, og udnytter derfor ikke den fulde fordel af applikationsserverens standardfunktioner så som garbage collection og sikkerhedsgarantier.

Kritikken af kodekvaliteten går blandt andet på, at hele kodeblokke er udkommenterede, og at kode bliver gentaget uden grund, fordi ’kodesekvenser er blevet kopieret og delvist tilpasset i stedet for at benytte parametre til at holde koden koncis’.

Performance bør være 'højeste prioritet'

Mens det er umuligt at rette op på problemerne med sammensmeltning af standardsystem og nyudviklet kode, bør CSC og Scanjour sætte ind mod de potentielle performanceproblemer, som Polsag er på vej til at få, lyder rådet fra Boston-konsulenterne.

»Såfremt der skrides til hurtig handling, kan disse forholds potentielle påvirkning af tidshorisont, omkostninger og løsningskvalitet reduceres betydeligt. Derfor anbefaler BCG (Boston Consulting Group, red.), at CSC/Scanjour planlægger, igangsætter og følger op på korrigerende tiltag. Det er BCG’s opfattelse, at højeste prioritet bør gives til performanceforbedrende tiltag, eftersom disse kan blive kritiske for opstarten af Polsag,« skriver konsulentfirmaet.

Hvad der end blev gjort i kølvandet på kritikken, var det ikke nok.

Polsag-systemet blev aflivet af staten i februar 2012, efter at en ny rapport fra Globeteam havde konstateret, at systemet ikke var godt nok til faktisk brug hos politiet, ligesom pilottesten på Bornholm havde afsløret alvorlige mangler. Denne rapport har Version2 ind til videre forgæves forsøgt at få aktindsigt i. Politiets begrunder hemmeligholdelsen med hensynet til statens økonomiske interesser i forhandlingerne om erstatning fra CSC.

Læs 2009-rapporten fra Boston Consulting Group herunder og deltag i debatten. Kapitlet om Polsags tekniske problemer er på siderne 27-35.

[scribd id=98506505 key=key-iz4jzct0897qpmnojrn]

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (5)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#1 [tidligere bruger]

Har nogen taget et kig på et andet CSC-projekt, såsom Københavns Kommunes hjemmepleje system Virtae? Et så dårlig kodet og ustabilt system burde aldrig have set dagens lys. Heldigvis skifter kommunen system til efteråret, leveret af Rambøll.

  • 7
  • 0
#2 Jan Christensen

POLSAG/Captia involverer desuden også visse metoder af Microsoft Internet Explorer Version 4 (f.eks. doc.all), som Microsoft ikke længere anbefaler til brug (dvs. depreciated methods). Dette be-grænser POLSAG/Captias kompatibilitet med senere versioner af Microsoft Internet Explorer eller andre webbrowsere og kan forringe performance.

Og så denne lidt underlige formulering:

Det har været et krav fra politiet, at leverandørerne ”prøver at holde sig til åbne standarder” som defineret af World Wide Web Consortium, hvilket forbedrer interoperabilitet og portabilitet. Leve-randørerne accepterede dette krav bortset fra brug af XHTML. Tilgængelige kildekodestikprøver (UDV3) viser dog, at POLSAG-implementeringen ikke efterlever disse standarder.

Så de skal bare prøve at bruge åbne standarder, men kunne ikke acceptere XHTML. Der er muligvis en forklaring på hvorfor de afviste XHTML, men det kunne være rart at vide hvad de ellers har benyttet.

Og så nævner rapporten flere gange et "binær API". Jeg synes ikke jeg kan finde i rapporten hvad præcis det dækker over?

  • 5
  • 0
#3 Anonym

Når man kigger på hvad der ellers har været af problemer med leverencer i fotbindelse med, IKKE KUN CSC, må læren være, at it-virksomheder der ikke kan levere den forventede vare, skal udelukkes fra at levere til det offentlige. Dette uanset virksomhedens størrelse.

  • 3
  • 2
#4 Thomas Vestergaard

må læren være, at it-virksomheder der ikke kan levere den forventede vare, skal udelukkes fra at levere til det offentlige.

Sikke da noget populistisk vås.

Med mindre leverandøren med vilje har forkludret leverancen for at trække flere penge ud af kunden, så er der ingen grund til en så vidtrækkende sanktion imod leverandøren. (Modsat - så er vi vist ude i kriminel opførsel, også er det en opgave for domstolene.)

Hvorfor fremfører du også den absurde idé i forbindelse med POLSAG? I netop dette tilfælde lader det grundlæggende problem til at være, at systemet død-og-pine skulle indkøbes under FESD-indkøbsaftalen.

Hvis man skal klandre CSC og ScanJour for noget i den forbindelse, så skulle det være, at de ikke sagde fra, da kundens krav brød med principperne i det standard-system, man skulle tilpasse. Men at sige ting som; "Det kan mit system ikke", "Det er en dårlige idé" og "Vi vil ikke have jeres penge" er svære at sige til en kunde.

  • 4
  • 2
#5 Henrik Carlsen

Der er ikke noget værre end at sidde med det perfekt designede system og så nogen sælger det til en speciel kunde, med specielle ønsker. "Der skal BARE lige rettes her og så skal der BARE lige indsættes de felter her i den tabel og så skal der BARE lige gøres sådan når de taster sådan". Ligeså snart ordet BARE indgår, så rejser hårene sig i nakken. Man kan kæmpe alle de kampe man vil, men systemet er solgt og skal rettes til.

Det har også undret mig, at kunden aldrig overvejer at ændre sine arbejdsgange. Nogle gange stammer de helt tilbage fra dengang hulkortmaskinen stod i kælderen. Ikke en eneste gang har jeg oplevet at de objektivt har revurderet deres praksis (og jeg har spurgt, for det er meget vigtigt for mig, at mine systemer ikke indeholder den slags. Alternativt indført så fleksibelt, at det er funktionalitet som alle kunder kan vælge at benytte).

  • 3
  • 0
Log ind eller Opret konto for at kommentere