”Vi bygger en app och ska anlita en utvecklare – vad ska vi tänka på när vi skriver avtal?”

Elin Holm och Isak Åberg från Cederquist ger här i en artikel tips på vad du som företagare behöver tänka på när du tecknar avtal om mjukvaruutveckling.

Det finns en hel del saker att tänka på när ni ingår avtal om mjukvaruutveckling. Här listar vi några av de viktigaste:

Vad behöver vi?

Det första steget är att fundera över vad det är ni behöver utifrån er affärsidé. Ta fram en kravlista för appen, till exempel om vilka funktioner den ska ha, hur användargränssnittet ska se ut, vilka plattformar den ska kunna tillhandahållas på, vilka system den ska ha gränssnitt mot och vilka säkerhetskrav den ska uppfylla.

Utifrån kravlistan får utvecklaren ta fram ett förslag till specifikation för sin utveckling, som kommer att utgöra kärnan i avtalet. Ska utvecklingen ske agilt tas det inte fram någon specifikation vid avtalstecknande, utan istället används så kallade Use Cases, User Stories och Story Maps. Oavsett projektmetod är det centralt att ni ser till att de krav ni har på er app är tydligt uttryckta i avtalet.

Ska allt utvecklas från grunden eller kan befintlig mjukvara användas?

En viktig fråga är om utvecklaren ska bygga appen från grunden eller om befintlig mjukvara kan användas till någon del. Befintlig mjukvara kan antingen vara utvecklarens egen mjukvara, tredje parts standardmjukvara som licensieras eller öppen källkod/open source som inte kostar något att använda men som måste användas enligt gällande licensvillkor (Tips: läs vår tidigare artikel om vad du bör tänka på när du använder open source här).

Om befintlig mjukvara ska användas måste ni klargöra tre saker innan ni tecknar avtal med utvecklaren; Vilka rättigheter ni får att använda den befintliga mjukvaran, vilka begränsningar som finns och vilka eventuella licenskostnader ni kommer att ha för den befintliga mjukvaran.

Konsultuppdrag eller projektform med resultatansvar?

När ni är överens om vilka krav som appen ska uppfylla och vilken mjukvara som ska utvecklas/återanvändas är nästa steg att besluta om leveransmodell. Här är alternativen:

  • Utveckling i form av konsultuppdrag, där utvecklaren tillhandahåller konsultresurser som typiskt sett arbetar på löpande räkning.

  • Utveckling i form av projekt, där utvecklaren tar ansvar för att leverera ett resultat, nämligen en app som uppfyller avtalade krav, antingen på löpande räkning eller till fast pris eller enligt annan överenskommen prismodell.

I de flesta utvecklingsprojekt är utveckling i projektform att föredra, eftersom utvecklaren då tar ett tydligare ansvar för att leverera ett resultat. Projektet kan bedrivas enligt vattenfallsmodellen eller med agil utvecklingsmetod. Avtalet behöver se litet olika ut, beroende på vald projektmetod.

Vad ska ett projektavtal innehålla?

Projektavtalet ska innehålla vad utvecklaren ska leverera, när det ska levereras och hur det ska levereras. Några viktiga saker som måste regleras i avtalet är:

  • Tydliga krav på det resultat som ska levereras. Kraven bör ta sikte på funktionella krav – hur, var och med vad ska appen kunna användas? Även andra slags krav kan vara relevanta, till exempel krav på säkerhet för att skydda personuppgifter om användare som kommer att samlas in i appen. Specifikationen utgör grunden för utvecklarens felansvar.
  • En realistisk tidplan. Utvecklaren bör ta ansvar för att leverera resultatet enligt en överenskommen tidplan och av avtalet ska framgå vilka sanktioner ni har tillgång till vid en försening.

  • Villkor om projektstyrning och samverkan. Avtalet bör beskriva vilka avstämningar och möten som ska hållas och hur ofta, vilka som ska delta och vilka beslut som ska fattas på vilken nivå.

  • Villkor om ändringshantering. Även ett välplanerat projekt kan förändras till innehåll och omfattning under avtalets gång. Det är därför viktigt att ha en process för hur behov av förändringar ska hanteras.

Vad gör vi om utvecklaren inte levererar?

Er betalning av ersättning under projektavtalet bör vara kopplad till projektplanen. En bra utgångspunkt är att ni som beställare inte ska betala full ersättning förrän resultat (eller delresultat/milstolpe) har levererats och godkänts av er. Då har utvecklaren ett extra incitament att leverera det ni har kommit överens om.

Precis som ersättning funkar som morot bör också finnas en piska i förhållande till tidsplanen Detta har ofta formen av ett förseningsvite som innebär att utvecklaren får betala ett visst belopp vid försening, till exempel x% av priset för projektet för varje påbörjad förseningsvecka.

Vem äger rättigheterna?

Utgångspunkten är att upphovsmannen (utvecklaren) äger upphovsrätten till den mjukvara som utvecklas. För att ni ska få upphovsrätten måste ni alltså reglera det i avtalet. När det gäller mjukvara är det dock inte alltid nödvändigt att få upphovsrätten. Utvecklaren kan ha intresse att behålla upphovsrätten för att licensiera ut mjukvaran till andra eller återanvända den i framtida utvecklingar. Att låta utvecklaren behålla upphovsrätten behöver inte alltid vara ett problem för er som beställare och kan resultera i att ni kan betala ett lägre pris för utvecklingen. I många fall kan det vara tillräckligt för en beställare att avtalet innehåller omfattande nyttjanderätt (licens) till utvecklingen.

Utvecklaren bör i avtalet alltid garantera att det som levereras inte innebär ett intrång i någon annans immateriella rättigheter, det vill säga att utvecklingen inte utan tillåtelse innehåller någon annans mjukvara.

Sekretess och personuppgifter

Genom avtalet kommer utvecklaren få ta del av uppgifter som ni antagligen inte vill ska komma allmänheten eller någon annan till känna. Låt därför utvecklaren förbinda sig till att behandla alla uppgifter konfidentiellt.

Ring
Meny