Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Whitepapers
  • Opret bruger
  • Log ind
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?
Se kommentarer (36)
Emner It-ledelse, Offentlig it, Projektledelse, Polsag

Hemmelig rapport afslører CSC's og Scanjours katastrofale Polsag-kode

Kildekoden til det skandaleramte Polsag-projekt har længe været hovedmistænkt for at være den faktor, der kostede projektet livet. Version2 har efter et års tovtrækkeri fået aktindsigt i den rapport, der gav Polsag dødsstødet.

Af Jesper Kildebogaard, Mikkel Meister Fredag, 21. december 2012 - 16:15

I februar 2012 måtte Rigspolitiet trække stikket på det forsinkede it-projekt Polsag, selvom systemet allerede havde været pilotdrift blandt de 80 betjente på Bornholm i over et år, og Polsag ifølge den efterhånden stærkt forsinkede tidsplan stod til at blive rullet ud i hele landet.

Læs også: Politiet dropper skandalesystemet Polsag

Klagerne fra de bornholmske testpiloter var massive, for systemet led af blandt andet lange svartider og manglende mulighed for at flere arbejdede på en sag samtidigt. Og spørgsmålet var så, om manglerne i systemet realistisk set kunne rettes op

Det skulle en nøje teknisk gennemgang afsløre, og indtil nu har Rigspolitiet og Justitsministeriet holdt disse rapporter hemmelige. Men som det første medie i Danmark kan Version2 nu bringe konklusionerne fra konsulentfirmaet Globeteams gennemgang af Polsag-systemet. Det er sket gennem aktindsigt - som er afsendt i først januar og igen i maj måned - hvorefter Justitsministeriet altså har valgt at vente til få timer før juleferien med at sende svar.

Globeteams rapport tegner bestemt ikke et positivt billede af leverandørerne CSC og Scansjours evner til at kode.

Læs også: Afsløring: Dårlig kodekvalitet lagde grunden for Polsag-skandalen

I rapporten med code review af Polsags kodebase peger Globeteam-konsulenterne på den ene opsigtsvækkende fejl eller mangel efter den anden. Resultatet blev, at Rigspolitiet opgav at redde Polsag og derfor måtte vinke farvel til en investering på over en halv milliard kroner, som trods et efterfølgende forlig med CSC gik tabt.

Læs også: CSC om Polsag-skrotning: Øv - nu var det lige ved at virke

Af Globeteams gennemgang af Polsag-kildekoden fremgår det blandt andet, at:

Kildekoden er alt for kompleks

Kildekoden til både server- og klientapplikationen af Polsag er programmeret alt for komplekst. Det gør den svær at vedligeholde og fejlrette.

»18% af kildekoden til POLSAG-klienten er svær at fejlsøge, teste og vedligeholde, fordi den er for kompleks, og heraf er 31% procent meget kompleks og dermed meget svær at fejlsøge, teste og vedligeholde,« hedder det blandt andet i Globeteam-dokumentet.

Det samme gælder POLSAG-serverapplikationen, hvor 34 procent af kildekode ifølge Globeteam er for kompleks.

»Heraf har 56% af kildekoden (20% af kildekoden til POLSAG-serverapplikationen) en alt for stor kompleksitet, hvilket betyder, at den må betegnes som værende meget svær at fejlsøge teste og vedligeholde.«

Kildekoden er dårligt organiseret

»50% af kildekoden til POLSAG-klienten er samlet i kun 18% af metoderne, hvilket betyder, at kildekoden til POLSAG-applikation mangler organisering.«

»50% af kildekoden til POLSAG-serverapplikationen er samlet i kun 5% af metoderne (19% af kildekoden er samlet i kun 0,7% af metoderne),« skriver Globeteam i rapporten.

Kildekoden testes stort set ikke.

Normalt testes en klasse med 2-3 unit tests per metode, hvilket vil sige, at en klasse med 10 metoder har 20-30 unit tests, skriver Globeteam. Men for Polsag-koden er testniveauet langt lavere:

»Antallet af unit tests til Polsag er virkeligt lavt, og Polsag vurderes at være opbygget på en måde, der gør det svært at lave unit tests til forretningslogikken uden en vis refactoring af samme.«

Samtidig har Globeteam-folkene tjekket kildekoden igennem med værktøjer til statisk kodeanalyse. De afslører, at kildekoden »ikke overholder de gængse practices for navngivning, struktur og organisering.«

Kildekoden er dårligt dokumenteret

Det er helt galt med niveauet af dokumentation til kildekoden, hvilket igen gør den svær at vedligeholde og forstå for andre.

»Kildekoden indeholder et særdeles lavt niveau af kommentarer og øvrig information. SDD'erne (designdokumentet, red.), som er de primære dokumentation for Polsag-funktionaliteten, er meget implementeringsnære. Det vurderes at være svært at udlede de forretningsmæssige krav og ønsker på basis af SDD'erne,« hedder det i gennemgangen.

Bygger på JavaScript og forældede teknologier.

Polsag-klienten er baseret på websproget JavaScript, hvilket Globeteam kritiserer. JavaScript udgør i alt cirka halvdelen af Polsag-kodebasen, fremgår det af rapporten.

»Det forhold, at JavaScript er et typesvagt sprog, medfører, at øget kompleksitet har en væsentlig større negativ impact for udvikleren end ved andre sprog.«

Samtidig bygger Polsag-serverapplikationen på Microsoft .NET version 2.0 - en platform, der allerede i 2010 blev lanceret i version 4.0.

Det betyder ifølge Globeteam, at »projektet ikke høster de forbedringer, der er sket på Microsofts udviklingsplatform i form af højere udviklerproduktivitet, behov for reduceret kodemængde eller øge fleksibilitet,« skriver Globeteam.

Send Tweet
Udskriv

Omtalte virksomheder

CSC Danmark

Udgivet 9. jan 2012 16.05Opdateret 9. jan 2012 16.05
LokationValby

Scan Jour

Udgivet 6. jan 2012 14.17Opdateret 6. jan 2012 14.17
LokationFrederiksberg

Mere om It-ledelse

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg dette emne

Milliard-fejlskud tvinger HP's bestyrelsesformand til at træde tilbage

Udgivet 5. apr 10.18Opdateret 5. apr 15.18

Banker jagter trecifret millionbeløb fra krakket dansk RAM-firma

Udgivet 2. apr 12.23Opdateret 2. apr 12.23

NNIT rykker igen tættere på et salg

Udgivet 13. mar 12.22Opdateret 13. mar 12.22

IT-Branchen aflyser krisen

Udgivet 13. mar 9.58Opdateret 13. mar 9.58

IT-job & karriere

  • Se alle it-job
  • Importer din kompetenceprofil fra LinkedIn
IT Project Managers for high performance company - Danske Commodities
Udgivet 14. maj 13.30
Selvkørende projektleder
Udgivet 7. maj 10.38
Projektleder medico-software
Udgivet 8. maj 16.34
Netcompany søger udviklere, der vil arbejde fra Odense
Udgivet 24. maj 10.09

Kommentarer (36)

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Adam Tulinius 21. dec. 2012 - 16.33
 
Javascript

»Det forhold, at JavaScript er et typesvagt sprog, medfører, at øget kompleksitet har en væsentlig større negativ impact for udvikleren end ved andre sprog.«

Det gik jo egentligt OK indtil denne kommentar. Jeg kan regne ud af en del af Polsag består af en webklient, og så er Javascript nu engang det vi har at arbejde med (jaja, der er alle mulige sære sprog der kan oversættes til javascript, men hvor mange mon rent faktisk bruger den slags i enterprise-applikationer?).

  • Stem op 12
  • Stem ned 4
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
David Rechnagel Udsen 21. dec. 2012 - 16.47
 
Re: Javascript

Jeg kan regne ud af en del af Polsag består af en webklient, og så er Javascript nu engang det vi har at arbejde med (jaja, der er alle mulige sære sprog der kan oversættes til javascript, men hvor mange mon rent faktisk bruger den slags i enterprise-applikationer?).

Ét ord: Typescript.

  • Stem op 5
  • Stem ned 22
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Jens Henrik Sandell 21. dec. 2012 - 16.50
 
Forretningslogik

<qoute>
Det vurderes at være svært at udlede de forretningsmæssige krav og ønsker på basis af SDD'erne,« hedder det i gennemgangen.
</quote>
Den næste forespørgsel om aktindsigt kunne så netop fokusere på hvordan politiets "ikke-it-nørder" har beskrevet og dokumenteret deres forventninger/krav til POLSAG's støtte til forretningsprocesserne. (altså hvordan skal betjenten registrere en udstedt fartbøde, registrere en henvendelse fra en borger, osv. osv. )

  • Stem op 8
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Torben Mogensens billede
Torben Mogensen 21. dec. 2012 - 16.57
 
Problem med store gamle firmaer

Store gamle IT-firmaer har typisk en stor kodebase af ældre dato, som de gerne bygger nye applikationer ovenpå i den tro, at de sparer tid og penge ved dette. Derfor bruges ofte forældede platforme såsom .NET 2.0, og koden bliver patch-på-patch og derfor mere og mere uoverskuelig og tung. Endvidere vil egenskaber såsom samtidig brug og sikkerhed være meget vanskelige at tilføje, da den slags skal være bygget ind fra grunden og kun vanskeligt lader sig bygge ovenpå en kodebase, der ikke er forberedt til dette.

Men historien viser gang på gang, at der ikke er noget sparet ved at bygge et stort IT-projekt som modifikation et ældre projekt. Man skal bruge mere tid på at omgå begrænsningerne i den gamle kode, end den tid, man sparer ved ikke at skulle skrive det fra bunden.

Men desværre er der mange såkaldte softwareudviklere, der ikke magter at skrive ting fra grunden: De kan til nød modificere eksisterende kode og sætte parametre på biblioteksfunktioner, men hvis der skal laves grundlæggende ny funktionalitet, smider de håndklædet i ringen -- eller koder tåkrummende dårlig og skrøbelig kode, hvilket faktisk er værre.

  • Stem op 29
  • Stem ned 2
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Jens Henrik Sandell 21. dec. 2012 - 17.06
 
Re: Problem med store gamle firmaer

Enig -
Patchwork oven på gammel kodebase kan aldrig løse de grundlæggende mangler.

  • og delvist enig.
    Der er stadig gode programmører derude. Det er sjældent at projektet tillader at de kan bruge tid på at skrive koden helt fra bunden. Men vi kan godt lave quicksort og dobbelt linkede lister, hvis vi altså finder olie i norske mængder.

Det er i øvrigt forbavsende ofte vi ser, at store IT monstre partout skal erstattes af et større - og at projektet fejler.

  • Stem op 7
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Johnnie Hougaard Nielsen 21. dec. 2012 - 17.28
 
Re: Javascript

»Det forhold, at JavaScript er et typesvagt sprog, medfører, at øget kompleksitet har en væsentlig større negativ impact for udvikleren end ved andre sprog.« ... Det gik jo egentligt OK indtil denne kommentar.

Selv om JavaScript kan kaldes for et vilkår for programmering til browser-klienter, ændrer det ikke på at sprogets karakter medfører at kompleksitet nemt bliver ekstra svært at overskue uden en grundig disciplin og strukturering af koden. Jeg ser ikke denne passus som et "angreb" på brugen af JavaScript, men blot en ekstra faktor omkring at koden vurderes som værende for kompleks (rodet). Og det forekommer mig at være et fair kritikpunkt.

  • Stem op 17
  • Stem ned 2
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Philip Grønbech 21. dec. 2012 - 17.40
 
BREAKINGBREAKINGBREAKINGBREAKINGBREAKINGBREAKING

NEEDS MORE BREAKING...
Kan i offentliggøre rapporten her ? Den lyder ret interessant (undskyld hvis jeg har overset det åbenlyse link)

  • Stem op 1
  • Stem ned 11
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Uffe Lichtenbergs billede
Uffe Lichtenberg 21. dec. 2012 - 18.21
 
Re: Javascript

Ét ord: Typescript.

TypeScript er først blevet offentliggjort i løbet af i år, så jeg synes ikke vi kan klandre dem for ikke at have brugt det i denne specifikke sag.

Og hvis de rent faktisk kritiserer dem for at have brugt javascript i en webklient så skal de holde op med at ryge fjolleurt. Hvis de kritiserer dem for at kode slamkode er det noget helt andet.

  • Stem op 16
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Stig Christensen 21. dec. 2012 - 18.26
 
Re: Javascript

Det er jo nok forholdet mellem klientkode og serverkode som er kritisabelt. At bygge et stort system op omkring en tyk javascript klient lugter langt væk.

  • Stem op 6
  • Stem ned 8
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Thomas Christensen 21. dec. 2012 - 19.08
 
Re: BREAKINGBREAKINGBREAKINGBREAKINGBREAKINGBREAKING

Kan du så fortælle mig hvor det link, er for jeg kan sgu ikke finde det, ikke særligt åbenlyst.

  • Stem op 0
  • Stem ned 10
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Morten K. Thomsen 21. dec. 2012 - 20.08
 
Re: BREAKINGBREAKINGBREAKINGBREAKINGBREAKINGBREAKING

Til alle jer, der efterlyser selve rapporten:

Selve aktindsigten er en meget omfattende sag, og vi er blevet bombarderet med dokumenter. I første omgang går vi efter at grave de mest åbenlyse historier frem fra materialet, sidenhen skal vi nok offentliggøre de mest oplagte dokumenter.

God jul & vh Morten, Version2.

  • Stem op 11
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Michael Mortensens billede
Michael Mortensen 21. dec. 2012 - 20.11
 
Re: Problem med store gamle firmaer

Det er forkert at skrive .NET 2.0 er forældet; ja vi har .NET 4.5 men CLR er stadig meget lig den der findes i .NET 2.0 omend der er lavet forbedringer. .NET 2.0 og frem er meget tidsvarende.

  • Stem op 9
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Mads Vanggaard 21. dec. 2012 - 20.21
 
% satserne

Har de brugt et automatisk standard værktøj til at måle kodekompleksitet eller har de reelt vurderet kvaliteten?

  • Stem op 8
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Jonas Høgh 21. dec. 2012 - 20.26
 
Re: Problem med store gamle firmaer

Det virker i det hele taget temmeligt søgt at kritisere for brug af .Net 2.0, eftersom projektet blev startet i 2003, mens .Net 2.0 først udkom i 2005. Man har altså valgt at opgradere platformen midt i udviklingsforløbet mindst én gang. Det kan selvfølgelig være fordelagtigt i nogle tilfælde, men kan også være risikabelt, og kan da på ingen måde siges at være et must.

  • Stem op 13
  • Stem ned 1
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Morten Wegelbye Nissen 21. dec. 2012 - 20.57
 
Re: % satserne

Gætter på det er en statisk analyse af det.
Var faktisk ved at skrive en kommentar lig med din, men efter lidt omtanke tror jeg faktisk ikke det er så dum en måde at betragte kvalitet af software. Altså givet at man skal sige noget generelt.

  • Stem op 4
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Adam Tulinius 21. dec. 2012 - 21.32
 
Re: Javascript

Det er jo nok forholdet mellem klientkode og serverkode som er kritisabelt. At bygge et stort system op omkring en tyk javascript klient lugter langt væk.

Det har ellers været ganske meget fremme i nyere tid at bygge websider hvor serverside-delen ikke er meget mere end data-validering og et API der bruges af klienten.

  • Stem op 5
  • Stem ned 1
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Allan S. Hansen 21. dec. 2012 - 21.33
 
Kompleks kode

Kan ikke sige jeg er 'forbavset' over kompleks kode.
Det virker som om der ofte er en ... nærmest nødvendighed i at lave kode kompleks fordi det så virker mere 'programmøragtig'.

Der er jo ikke meget prestige i bare at lave noget der virker ordentligt hvis det ikke implementerer 17 interfaces, nedarver nogle klasser og benytter en masse andre teknikker.

  • Stem op 3
  • Stem ned 8
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Allan Ebdrups billede
Allan Ebdrup 21. dec. 2012 - 22.20
 
Re: Kompleks kode

Der er jo ikke meget prestige i bare at lave noget der virker ordentligt hvis det ikke implementerer 17 interfaces, nedarver nogle klasser og benytter en masse andre teknikker.

Det sjoveste eksempel jeg har set på det var en gut der lige havde læst om en Y-Combinator, og så implementerede en generel sorterings-metode med den i C#. (Koden skulle bruges eet sted, og var temmelig krøllet).
Jeg foreslog ham at refaktorere det, og det gjorde han heldigvis.

Lysten til at spille med den intellektuelle muskel uden god grund, skal holdes til egne side-projekter, og ikke ind i den fælles kodebase :-)

  • Stem op 8
  • Stem ned 1
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Allan Ebdrups billede
Allan Ebdrup 21. dec. 2012 - 22.28
 
Re: Javascript

»Det forhold, at JavaScript er et typesvagt sprog, medfører, at øget kompleksitet har en væsentlig større negativ impact for udvikleren end ved andre sprog.« Det gik jo egentligt OK indtil denne kommentar. Jeg kan regne ud af en del af Polsag består af en webklient, og så er Javascript nu engang det vi har at arbejde med (jaja, der er alle mulige sære sprog der kan oversættes til javascript, men hvor mange mon rent faktisk bruger den slags i enterprise-applikationer?).

Jeg tror (håber) at kritikken skal ses i sammenhæng med kritikken af test-coverage og kompleksitet. For med et dynamisk sprog som JavaScript er det sandt, at det er ekstra vigtigt at du skriver test til din kode.

Men hvis du til gengæld skriver de tests der skal til, kan du sagtens bygge seriøse ting med JavaScript.

  • Stem op 2
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Bjørn Anker-Møller 21. dec. 2012 - 23.13
 
Var Polsag tænkt som et udviklingsprojekt?

Det er muligt jeg husker forkert, men var det ikke en væsentlig antagelse, at løsningen skulle baseres på et standardprodukt, i dette tilfælde ScanJours ESDH-system?

Hvis projektet aldrig har været tænkt som et udviklingsprojekt, men som implementering af "standardfunktionalitet med mindre tilretninger", så er det ikke overraskende at det går galt, når der opstår behov for langt mere udvikling end forudset. Man kommer til at mangle ressourcer med de nødvendige evner og projektplanen indeholder ikke aktiviteter til den nødvendige analyse, dokumentation og test.

Samtidig har projektet en størrelse, hvor erkendelsen af, at vigtige forudsætninger ikke længere er opfyldt, har en meget langsom vej til de beslutningstagere, der kan (eller burde kunne) agere på den omstændighed at standardløsningen er for langt fra de stillede krav. Er der det mindste element af personlige politiske agendaer eller "management by fear" på vejen fra den tekniske erkendelse af problemet til den forretningsmæssige løsning, så går det galt.

  • Stem op 4
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Peter Müller 22. dec. 2012 - 00.34
 
Re: Javascript
Det er jo nok forholdet mellem klientkode og serverkode som er kritisabelt. At bygge et stort system op omkring en tyk javascript klient lugter langt væk.

Citation needed.

Hvad er dine erfaringer med tunge javascriptklienter bygget med moderne webteknologier som får dig til at drage den konklusion?

  • Stem op 12
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Fredrik Skeel Løkke 22. dec. 2012 - 11.08
 
mangel på formelle krav til udviklere

Vi skal i vores branche til at stille større formelle krav til udviklere, som man f.eks gør med læger. Her har man opbygget et system med turnus, specialisering og lægeløfte etc. I dag kan alle kalde sig for software ingeniør og hvis arbejdsgiver ikke er skarpe til at hyre kompetente mennesker der selv stiller høje faglige krav til resultatet af deres arbejde, så går det nemt helt galt med en kodebase.

  • Stem op 2
  • Stem ned 1
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Frank Vilhelmsen 22. dec. 2012 - 12.26
 
Håndværk

Det ville være perfekt for CSC at finde nogle grunde til at deres POL sagssystem haverede i hegnet.

Men det har intet med Javascript at gøre. Jeg gætter på at flere af de mennesker der er fremkommet med det argument bruger gmail som privat mail konto. En applikation der er skrevet i 90% Javascript (152.000 LOC) som virker ganske fortræffeligt. Om MS produkterne er outdated aner jeg intet om.

Mem jeg ved at "greenfield" system kræver mange beslutninger. Hvis nogle af de beslutninger der tages tidligt i projektet er forkerte kan de næste beslutninger ikke rede situationen.

Sådan som jeg læser Globeteams rapport er det tydeligt at problemet handler om mennesker og dårligt håndværk. Globeteam er bare for konfliktsky til at sige det ligeud.

  • Stem op 9
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Lars Tørnes Hansen 22. dec. 2012 - 17.26
 
Usund arbejdskultur?

Jeg funderer om der kunne være tale om en usund arbejdskultur.
Dvs. at management ikke vil have alt det der pjat med tests, og dokumentation - det eneste der skal laves er funktionalitet.

Begrebet teknisk gæld er måske også ukendt for management.

Hvis de har irettesat gode udviklere for at lave tests, og dokumentation, så er det næsten helt sikkert at ingen knap så dygtig udvikler ville turde tage et initiativ til noget der ligner kvalitetskode.

  • Stem op 3
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Per Hansen 22. dec. 2012 - 17.41
 
Re: % satserne

Det fremgår ikke her, men af min kendskab til deres arbejde, bygger det på begge dele. En værktøjsbaseret analyser med Sonar el. lign., og så derfra manuelle undersøgelser og vist nok også interview med div. projektdeltagere.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Stig Christensen 22. dec. 2012 - 21.01
 
Re: Javascript
Det har ellers været ganske meget fremme i nyere tid at bygge websider hvor serverside-delen ikke er meget mere end data-validering og et API der bruges af klienten.

Det er måske populært (google er gode til det) men det er svært. Jeg påstår at det er meget nemmere at lave et solidt stort system med kringlet forretningsregler i et typestærk sprog com c#. I min verden er .net 2 desuden forældet, når jeg tænker over hvordan jeg kan løse samme problemer med .net 3.5+. Man skal turde skifte version midt i et udviklingsprojket, hvornår skulle der ellers komme et bedre tidspunkt?

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Jesper Kildebogaard 23. dec. 2012 - 15.10
 
Re: Problem med store gamle firmaer

Det virker i det hele taget temmeligt søgt at kritisere for brug af .Net 2.0, eftersom projektet blev startet i 2003, mens .Net 2.0 først udkom i 2005.

CSC fik opgaven i januar 2007. Men det er rigtigt, at tanken om et nyt sagsstyringssystem til politiet begyndte i 2003. Det tog bare nogle år, før pengene var bevilget, kravspec var skrevet og udbuddet overstået.

vh.

Jesper, Version2

  • Stem op 3
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Jørgen Henningsen 25. dec. 2012 - 08.51
 
Udsugning af offentlige kasser

Dette bekræfter mig blot i at leverandørene aldrig havde planlagt at levere et fungerende system.
De stod sig langt bedre ved at levere noget dårlig kode, som aldrig ville kunne bringes til at fungere og score den betaling som de nu kunne få for det.

  • Stem op 1
  • Stem ned 7
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Svend Tofte 25. dec. 2012 - 16.57
 
Det kan man jo sige, men et

Dette bekræfter mig blot i at leverandørene aldrig havde planlagt at levere et fungerende system. De stod sig langt bedre ved at levere noget dårlig kode, som aldrig ville kunne bringes til at fungere og score den betaling som de nu kunne få for det.

Det kan man jo sige, men et eller andet sted tror jeg heller ikke de fleste steder er klar over hvordan man faktisk udvikler IT. Mange steder kører stadig efter 70er og 80er "principper", hvor udviklerne reelt står for alt tekniske styring, og som der er blevet påpeget i kommentarerne så halter mange udviklere langt efter hvad der reelt er påkrævet for at udvikle store moderne web applikationer i "god kvalitet".

.NET 2.0, og med de tal der nævnes, så er jeg sikker på at alle udviklere kan nikke genkendende til det et projekt de har arbejdet med selv, skrevet af folk som ikke kender grundlæggende framework koncepter, med de medfølgende gamle/propriatære UI web forms kontroller iblandet den obligatoriske JS blanding af forsøgt OO/lib og funktions suppe. For slet ikke at tale om når et projekt også går amok på databasen med tusinder af stored procedures/functions/views oven på alt det andet. Og naturligvis må der være en trillion integrations punkter, og hvad der så deraf kommer af ekstra kompleksitet.

Jeg har ikke arbejdet på noget i Polsag skalaen, så selv jeg har svært ved at forestille mig det absolutte rod det må være (50% af koden i 7% af funktionerne, jesus).

Nu har vi ikke set hele rapporten, men jeg synes også deres kommentare om .NET 2.0 og JS virker mærkelige, men der er måske også tale om nogle få sætninger i en flere hundrede sider lang rapport.

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Thue Kristensen 26. dec. 2012 - 13.27
 
Re: Javascript

»Det forhold, at JavaScript er et typesvagt sprog, medfører, at øget kompleksitet har en væsentlig større negativ impact for udvikleren end ved andre sprog.« Det gik jo egentligt OK indtil denne kommentar. Jeg kan regne ud af en del af Polsag består af en webklient, og så er Javascript nu engang det vi har at arbejde med (jaja, der er alle mulige sære sprog der kan oversættes til javascript, men hvor mange mon rent faktisk bruger den slags i enterprise-applikationer?).

Alle mulige sære sprog, sådan som Java? Som Google har bygget gmail i og så oversat det til Java. Det lyder ret mainstream for mig.

https://developers.google.com/web-toolkit/makinggwtbetter

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Henrik Sørensen 26. dec. 2012 - 13.45
 
Re: Javascript

Alle mulige sære sprog, sådan som Java? Som Google har bygget gmail i og så oversat det til Java. Det lyder ret mainstream for mig.

GMail er bygget vha Google Closure Tools, ikke GWT.

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Magnus Jørgensens billede
Magnus Jørgensen 27. dec. 2012 - 00.41
 
Re: Javascript

Desværre er der jo ikke noget der tyder på at det ændrer sig i nær fremtid. Det offentlige bliver ved med at fortsætte denne måde at udbyde IT opgaver på.

Jeg er af den overbevisning at sandsynligheden for, at et IT projekt fejler på denne måde, er proportionel med, hvor meget den SKAL omfatte ved første release.

Hvis man starter småt, men dog har opmærksomhed på at systemets fundamentet skal kunne håndtere et uvist mængde af tilføjelser, kan man sagtens ende med en løsning, der ikke har karakter af knopskydninger.

Spis elefanten lidt ad gangen og til sidst er man i mål.

Utroligt mange af de store systemer, der har haft succes, er startet småt og er efterhånden forbedret og udvidet indtil man løser de opgaver der rent faktisk skal løses.

Ulempen ved at man har hele problemet defineret i en STOR kravspecifikation er, at man så kun fokuserer på det der er defineret. På den måde lukker man muligheden for tilføjelser eller ændringer da hele system er internt afhængigt. Sagt på en anden måde, hvorfor skal en projekt leder afsætte tid til at gøre system generisk hvis der ikke er brug for det? Alt er jo beskrevet nøgternt i krav spec ikke?
Hvorfor bruge tid på besværlige patterns og lagdelinger hvis man bare kan skrive en funktion der kan det hele. Det lyder uhyggeligt men der sker. Som jeg læser det:

»50% af kildekoden til POLSAG-serverapplikationen er samlet i kun 5% af metoderne (19% af kildekoden er samlet i kun 0,7% af metoderne),« skriver Globeteam i rapporten.

Så lyder det som en forfærdelig gang spagetti kode.

Et andet problemer er at man fra start af, sjældent har et overblik over, hvilke problemer systemet rent faktisk skal løse.

Tit er der en tendens til at tro man ved det. Jeg har flere gange oplevet at man løser problemerne på den måde man altid har løst dem. Dette er selvom man aldrig har løst problemerne med de tekniske hjælpemidler man nu har. Altså man indbygger en del af de eksisterende løsninger i et IT system, selvom de kun løste nogle problemer man havde, da man gjorde tingene manuelt. Eller man indbygger nogle af de Userinterface paradigmer man havde da applikationen stort set bare var en SQL forms app.

Andre gange har jeg oplevet at jeg har løst problemet PRÆCIST som det var defineret, men når man så bruger det, finder man ud af, at det alligevel ikke var det man ville have. Først bagefter kommer der så en gradvis forbedring af løsningen indtil den er acceptabel. Hvis hele løsningen så er designet til det der oprindeligt var defineret i kravspec betyder det så at der er lavet nogle opfindsomme hacks der får systemet til at virke med den løsning man til sidst fandt. Desværre gør det så løsningen lidt langsommere og langt mere uforståelig fra et teknisk perspektiv.

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Bo Nørgaard 27. dec. 2012 - 01.29
 
Jeg har meget svært ved at

Jeg har meget svært ved at vurdere disse tal, altså om det er spaghettikode eller ej.

Som jeg har forstået det er serverdelen et webserver-program, skrevet i C# på .Net 2.0, som læser og skriver data i en database. Til dette er der sikkert et godt kodegenereret objektorienteret data-tilgangs-lag, som sikkert er mange tusinde klasser med metoder der kun henter eller sætter værdien at en variabel (get og set). Der skal altså skrive rigtig mange forretningslogik metoder til at nå op på 5% af samtlige metoder...

Tilsvarende har jeg det svært med analyseprogrammers angivelse af kompleks kode, brug af abstrakte eller interface klasser, eller en simpel try-catch er som regel nok til at koden er kompleks. Det siger mere om analysen end programmøren.

Når det er sagt, så forventer jeg da at firmaet har haft programmøre til at kigge kode grundigt efter, og at rapportens konklusioner er baseret på dette og ikke de nævnte tal.

  • Stem op 7
  • Stem ned 2
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Henrik Kromann 27. dec. 2012 - 12.09
 
Politiet var samspilsramt!

Så vidt jeg husker blev POLSAG købt under FESD aftalen - og altså ikke som et "rigtigt" EU-udbud?! Korrigér mig, hvis jeg tager fejl?!?

For heri ligger hele misæren.

Politiet var med i følgegruppen til FESD arrangementet - og havde dermed en form for forpligtelse til at vælge en af de tre leverandører, som kom med på aftalen.

Men i realiteten stod Politiet med nogle noget mere komplicerede problemstillinger, end den typiske journalsystem-kunde i den offentlige sektor - og burde som sådan nok aldrig have sat sig med i følgegruppen!!

Da leverandørerne var valgt, fremstod CSC/ScanJour så som det, om man så må sige, "mindst ringe" af de tre.

Men man havde nok været bedst tjent med at springe op og falde ned på "sin forpligtelse" overfor FESD - og være gået den lange, tunge vej over et eget EU-udbud, istedet for at vride et standardsystem om til noget, det ikke var egnet til...

  • Stem op 6
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
John Andersen 28. dec. 2012 - 14.51
 
Komplekst = dårligt?

Undrer mig over den kraftige kritik af, at koden er 'kompleks'.

Enkelhed er godt.
KISS er et godt princip.
Unødig kompleksitet er af det onde.

Men det fremgår ikke, at kodegennemgangen påviste, at koden faktisk kunne skrives enklere og samtidigt opnå samme funktionalitet (at samme funktionalitet så viser sig at være utilstrækkelig er en anden (pol)sag).

Koden kan være berettiget kompleks, hvis datastruktur, ønsket funktionalitet og behov nødvendiggør det.

At noget er 'komplekst' bør anvendes som en objektiv, beskrivende, ikke(for)dømmende værdineutral beskrivelse. At beskrive noget som 'unødigt komplekst' bør følges af en beskrivelse af hvordan problemet kunne være løst af simplere kode (hvad det så end er: færre kodelinjer?, flere kodelinjer med lettere gennemskuelig logik?, kodning i samme stil som dén læseren foretrækker og har erfaring med?)

Uden adgang til hele rapporten er det svært at forholde sig til kritikken.

Men som det fremgår i artiklen får man nemt den tanke, at hvis man (Globeteam) er købt og betalt til at kritisk at gennemgå kode, er det sikre valg netop at være kritisk og fordømmende - er de ikke nærmest 'bestilt' til at komme med dén konklusion givet opdraget (kritisk kodegennemgang) og den kedelige forhistorie med tids- og budgetoverskridelser samt en katastrofal pilot-afprøvning hos Bornholms Politi?

Derudover er en naturlig menneskelig reaktion på noget, man (konsulenten, der foretager kodegennemgang) ikke forstår, at beskrive det som 'for komplekst'. Og en modtager (Rigspolitiet og Justitsministeriet) med samme lave forståelsesniveau vil være lykkelig for at blive bekræftet i, at vedkommende ikke mangler forståelse, indsigt og en koncis kravsspecifikation, men at koden vitterligt er 'for kompleks'.

Jeg har intet kendskab til kvaliteten af ressourcerne sat på opgaven hos hverken CSC, Globeteam, Rigspolitiet og Justitsministeriet, men man bør nok betragte rapporten som et partsindlæg ligesom et indlæg fra CSC i samme sag måtte betragtes med en vis skepsis.

  • Stem op 3
  • Stem ned 1
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Johnnie Hougaard Nielsen 28. dec. 2012 - 19.15
 
Re: Komplekst = dårligt?

Undrer mig over den kraftige kritik af, at koden er 'kompleks'.

Jeg tolker ordet "kompleks" som en lidt mere stueren måde at sige "rodet spaghetti-kode", især set i sammenhænge med de ganske få gengivne metrics.

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer

Tilføj kommentar

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Log ind herunder eller opret en bruger for at skrive kommentarer
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?

Seneste nyt

Rygte: 48 millioner Xbox Live-konti hacket

Udgivet 24. maj 14.40Opdateret 24. maj 14.40

Shopamok: 41 domæner fra konkursbo sat til salg for 500 kroner

Udgivet 24. maj 14.08Opdateret 24. maj 14.08

300.000 cloud-servere giver ny Xbox supermuskler

Udgivet 24. maj 11.31Opdateret 24. maj 11.31

Yousee: Vi ville ikke skræmme kunderne

Udgivet 24. maj 10.44Opdateret 24. maj 11.32

Yousees routere har gigantisk sikkerhedshul - fire måneder efter advarsel

Udgivet 24. maj 10.43Opdateret 24. maj 13.40

Flere it-nyheder »

Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Whitepapers

Version2 Insight: Softwaretest

Mediehuset Ingeniøren

Mobile Test Service - Device & Test Coverage

Testhuset

Succes historier om OPS – Optimized Print Services

Konica Minolta Business Solutions Denmark

OPS - Optimized Print Services

Konica Minolta Business Solutions Denmark

Mobile Test Service - Device Strategy & Planning

Testhuset
  • Flere whitepapers

Branchenyheder

Digitale samarbejdsværktøjer vokser eksplosivt

Projectplace

Svendborg Kommune optimerer processerne med Office 365

ProActive

Det største teknologiskift siden internettet

Projectplace

Social teknologi som katalysator for vækst

Projectplace

Ny trend: Projectplace flytter ’lean’ fra produktion til service

Projectplace

It-virksomheder

Uniwise
|
Timelog
|
MN Security
|
Visma Sirius A/S
|
Eazysoft
|
Relation House
|
Innologic A/S
|
Lakeside
|
Epista IT
|
Devoteam
|
Time Book ApS
|
Devteam Danmark
 

Information

  • Kontakt redaktionen
  • Job- og annoncesalg
  • Teknisk support
  • Om Version2
  • Brugerbetingelser
  • Cookie- & privatlivspolitik

Aktuelle emner

  • Agil udvikling
  • Business Intelligence
  • Cloud computing
  • Intranet
  • It-sikkerhed
  • NemID
  • Open source CMS
  • Projektledelse
  • Scrum
  • Sharepoint intranet
  • Storage
  • Ubuntu
  • Virtualisering
  • Windows 8
  • Windows Server 2012
  • iOS 6
  • iPhone 5

Tjenester

  • iPhone-app
  • RSS-feeds
Følg @version2dk
Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Version2 udgives af

  • Mediehuset Ingeniøren A/S work Trekronergade 26 2500 Valby
  • Tlf. work 33265300