I mine mere end 30 år med softwareudvikling, har jeg både været leverandør af programmeringsmuskler og været den der har indkøbt softwareudviklingskompetencer. Jeg har siddet på begge sider af bordet, og har derigennem erfaring med hvad der er interessant at få med i freelancekontrakten, så der er afklarede forhold når arbejdet skal udføres.
Organisationer, uanset om de er store eller små, kommercielle eller not for profit, har meget forskellige behov. En kontrakt behøver ikke nødvendig vis være meget omfattende. Hvor meget eller hvor lidt der skal til afhænger af jeres kontekst. Hvis jeres organisation er underlagt skrappe regler vedr. it-sikkerhed, så skal dette forhold måske med i kontrakten mens det i andre tilfælde kan det udelades.
Samarbejde med freelance udviklere vil som regel gå mere glidende og hurtigt, hvis der ikke er en masse restriktioner for arbejdet i kontrakten, men for nogen virksomheder kan det være vigtigt at regulere forskellige dele af samarbejdet.
Her kommer mit bud på nogen af de ting som der kan være interessant at få med i kontrakten med en ekstern freelance softwareudvikler. Vær opmærksom på at det formentligt ikke er alle dele der er så vigtige for jer.
Parternes identifikation
Start med at angive navnene og kontaktinformationen for både dig (kunden) og freelance softwareudvikleren.
Arbejdsbeskrivelse
Hvis det er relevant, så beskriv hvad projektet indebærer. Dette kan omfatte mål, omfang, funktionalitetskrav og eventuelle specifikke teknologier, der skal anvendes.
Tidsramme
Hvis der ikke blot er tale om en løbende aftale, så angiv evt. en tidsplan for projektet, f.eks. start- og slutdatoer for vigtige milepæle og levering af slutproduktet. Det kan også være vigtigt at beskrive om der kan forventes support og assistance udenfor den almindelig tidsramme. Forventer du f.eks. at din freelancer hjælper hvis den udviklede software stopper med at virke en fredag aften eller en søndag morgen?
Omkostninger og betalingsbetingelser
Vær tydelig omkring pris. Specifikation af prisen for projektet og betalingsbetingelserne, f.eks. hvornår og hvordan betalingen skal foregå (timepris, fast pris, delbetalinger osv.).
Intellektuel ejendom
Aftal, hvordan intellektuel ejendomsret, herunder f.eks. kildekode, vil blive håndteret. Typisk overføres ejerskabet af arbejdet til kunden ved fuld betaling, men dette kan variere.
Fortrolighed og NDA
Er der oplysninger som f.eks. kundedata eller forretningshemmeligheder, som freelanceren ikke må videregive til tredjeparter? Du kan eksempelvis skrive bestemmelser om beskyttelse af følsom information og en erklæring om, at udvikleren ikke må dele eller udnytte dine forretningshemmeligheder.
Arbejdsmetoder og brug af kode fra andre parter
Er der særlige instruktioner for arbejdet. Har freelanceren bestemmelsesret over arbejdsmetoder og eksempelvis ret ti at vælge hvilke værktøjer og teknologi der skal bruges i arbejdet? eller skal freelanceren følge instrukser fra en intern arkitekt? Må freelanceren lave koden så den benytter eksterne komponenter og tjenester eller skal dette godkendes af andre?
Revisions- og godkendelsesproces
Hvis det er relevant, så angiv evt. hvordan ændringer i udviklingsprojektet vil blive behandlet, herunder processen for revisioner og godkendelser.
Leverancer og kvalitetssikring
Specificér evt. hvad der forventes af udvikleren i form af leverancer (f.eks. kildekode, dokumentation) og kvalitetssikringsprocedurer. Ønsker I f.eks. at udvikleren altid levere dokumentation eller opdatere særlige vejledninger og beskrivelser når der er sket ændringer i koden?
Ansvarsfraskrivelse, ansvarsbegrænsning og garantier
Oplys evt. hvis parterne fraskriver sig ansvar eller hvis parterne stiller garantier. Det kunne f.eks. handle om udleveret udstyr der skal leveres tilbage efter projektets afslutning eller betaling der falder uanset projektets udfald. Hvis relevant kan det være værd at medtage eventuelle begrænsninger for udviklerens ansvar i tilfælde af fejl eller skader.
Opsigelse
Aftal, hvordan kontrakten kan afbrydes, og hvad konsekvenserne er, hvis en part beslutter at opsige kontrakten før tid.
Ejendomsret og overdragelse
Specificér, hvordan og hvornår ejendomsretten til projektet overføres, samt om udvikleren har tilladelse til at underkontrahere arbejdet.
Konfliktløsning
Angiv, hvordan eventuelle tvister skal løses, f.eks. ved voldgift eller retssager.
Lovvalg og jurisdiktion
Angiv hvilken lov, der gælder for kontrakten, og hvilken domstol der har jurisdiktion i tilfælde af tvister.
Jeg skal straks nævne at jeg ikke er jurist og du bør blot se ovenstående som nogle emner der kan være relevant at tage med i din kontrakt. De konkrete formuleringer må du selv vurdere og det kan måske være en god idé at få en juridisk professionel til at gennemgå og godkende kontrakten for at sikre, at den overholder gældende lovgivning og beskytter begge parters interesser. En velformuleret kontrakt kan bidrage til at minimere konflikter og sikre, at projektet forløber gnidningsløst.