Den bedste software

Dave Rolsky der blandt andet arbejder med Moose til Perl skrev for et par år siden en kort artikel om softwareudvikling der trænger til at blive fremhævet igen.

Artiklen beskriver ganske kort at det som en person betragter som den bedste software(‑løsning) i virkeligheden højst kan være den som passer bedst til de kriterier der er valgt. Og at forskellige kriterier kan være aldeles modstridende.

Kriterierne kan inddeles i kategorier (lidt bearbejdet og udvidet):

  • Gennemprøvet eller cutting edge
    Det kan være at du har brug for en løsning som allerede er afprøvet af mange andre og hvor mange af løsningens bugs forlængst er blevet rettet. Modsat kan det være at du er mere interesseret i at arbejde med det nyeste af de nye, med de mest avancerede features og mest optimering.
  • Fri for afhængigheder
    Måske er det en løsning hvor du skal vide at den kan installeres uden at en masse afhængigheder bliver opfyldt.
  • Lille
    Med mindre kode er der typisk færre fejl, kortere dokumentation og det er nemmere at lære at bruge softwaren
  • Integrerbar
    Nogle løsninger er beregnet til at kunne integreres i andre løsninger mens at andre er beregnet til at være der hvor der integreres ind i. Eller slet ikke kan integreres med andre løsninger.
  • Komplet
    Nogle løsninger er komplette mens andre kræver at du samler en række komponenter der hver skal udføre deres del af arbejdet.
  • Performance
    Nogle gange er hurtig eksekvering (eller kompilering) meget vigtig.
  • Hukommelsesforbrug
    Som med performance så er hukommelsesforbrug, eller rettere begrænsningen deraf, nogle gange meget vigtig.
  • Ingen lokal kompilering
    I nogle situationer kan det være vigtigt at du ikke skal kunne kompilere kode lokalt, f.eks. ved hostede løsninger.
  • Aktiv udvikling eller stabil
    Det kan være nødvendigt at vide at en løsning aktivt udvikles selvom det betyder at nye versioner ikke altid er kompatible med den eksisterende. Se f.eks. listen fra Janus Boyes artikel “Keeping up with the latest is a dear hobby!” Modsat kan det være vigtigt at kunne stole på at opdateringer kommer sjældent og er bagudkompatible.
  • Licens
    Måske er den bedste løsning i virkeligheden den af mange der har en licens der passer til resten af din udvikling.
  • Forudsigelighed
    Hvor vigtigt er det at alting virker hver eneste gang, eller hvad betyder det hvis det fejler en ud af en milliard gange? Der er forskel på hjemmesider og atomkraftværker…

Kort sagt, hvis nogen siger at en softwareløsning er bedre end en anden er du nød til at spørge efter deres kriterier. Måske er det ikke de samme kriterier som dine.

Dette indlæg blev udgivet i Software licenser, Udvikling og tagget , . Bogmærk permalinket.

Skriv et svar

Udfyld dine oplysninger nedenfor eller klik på et ikon for at logge ind:

WordPress.com Logo

Du kommenterer med din WordPress.com konto. Log Out / Skift )

Twitter picture

Du kommenterer med din Twitter konto. Log Out / Skift )

Facebook photo

Du kommenterer med din Facebook konto. Log Out / Skift )

Google+ photo

Du kommenterer med din Google+ konto. Log Out / Skift )

Connecting to %s