Unngå å bli tatt som gissel av utviklerne dine

gissel100107I helgen startet jeg en samtale med en lokal kunstner som har bistått sjefen sin med ledelsen av et par webapplikasjoner sjefen hennes eier.

Samtalen tok en sving, og noen venting fortsatte å betale ukentlige utviklingsgebyrer uten å se noen fremgang med utvikleren de har jobbet med. Nå vil utvikleren belaste dem enda et engangsgebyr for å fullføre prosjektet, samt et ukentlig vedlikeholdsgebyr for å dekke andre forespørsler. Det blir verre.

Utvikleren overførte domenenavnene slik at han kunne administrere dem. Utvikleren er også vert for applikasjonen på hostingkontoen sin. Kort sagt holder utvikleren dem nå som gisler.

Heldigvis krevde kvinnen jeg jobber med tidligere administrativ tilgang for å redigere noen av malfilene for nettstedet. Utvikleren kunne ha gitt henne begrenset tilgang, men det gjorde han ikke. Han (lat) ga henne administrativ pålogging til nettstedet. I kveld brukte jeg den tilgangen til å sikkerhetskopiere all koden for nettstedet. Jeg fant også ut hvilken styringsprogramvare han brukte, og tok meg til databaseadministrasjonen hvor jeg var i stand til å eksportere både applikasjonsdata og tabellstrukturer. Whew.

Eieren planla å flytte nettstedene til nye domenenavn når utviklingen var fullført. Det er enormt fordi det betyr at de nåværende domenene kan utløpe i tilfelle det er et sint skille mellom utvikleren og selskapet. Jeg har sett dette skje før.

Noen tips om du skal få et outsourcet utviklingsteam:

  1. Domeneregistrering

    Registrer domenenavnene i firmaets navn. Det er ikke dårlig å ha utvikleren din som teknisk kontakt på kontoen, men aldri overføre eierskap til domenet til alle utenfor firmaet ditt.

  2. Hosting din applikasjon eller ditt nettsted

    Det er flott at utvikleren din kanskje har et vertsfirma og kan være vert for nettstedet ditt for deg, men ikke gjør det. Be i stedet om anbefalingene for hvor du skal være vert for søknaden. Det er sant at utviklere blir kjent med administrasjonsprogramvaren, versjoner og plassering av ressurser, og som kan hjelpe produktet ditt å bli ferdig tidligere. Når det er sagt, eier du imidlertid hostingkontoen og legg til utvikleren din med sin egen pålogging og tilgang. På denne måten kan du trekke i støpselet når du trenger det.

  3. Eie koden

    Ikke anta at du eier koden, skriv den skriftlig. Hvis du ikke vil at utvikleren din skal bruke løsningene du betalte ham / henne for å utvikle andre steder, må du bestemme det på tidspunktet for kontrakten. Jeg har utviklet løsninger på denne måten, men jeg har også utviklet dem der jeg beholder rettighetene til koden. I sistnevnte tilfelle forhandlet jeg kostnadene ved søknaden lavere slik at det var et incitament for selskapet å gi meg rettigheter. Hvis du ikke har noe imot at utvikleren din bruker koden din andre steder, bør du ikke betale topp dollar!

  4. Få en ny mening!

    Det skader ikke følelsene mine når folk forteller meg at de tar bud eller rådfører seg med andre fagpersoner. Jeg anbefaler det faktisk!

Poenget er at du betaler for utviklerens talent, men du må beholde kontrollen og eierskapet over ideen. Den er din. Det var du som investerte i det, du som risikerte din virksomhet og lønnsomhet for det ... og det er du som skal beholde det. Utviklere kan byttes ut, og det bør aldri sette søknaden din, eller verre, virksomheten din, i fare.

6 Kommentarer

  1. 1

    Jeg er en nettapputvikler og er enig i de fleste punktene dine (kanskje alle), men jeg vil gjerne ha en avklaring på #3.

    Engrosduplikering av et nettsted eller en applikasjon solgt til et annet selskap (eller enda verre en konkurrent) er uetisk og bør alltid angis som ikke akseptabelt i kontrakten din. Imidlertid har jeg utviklet innovative løsninger på vanlige problemer mens jeg jobber med en klients prosjekt som ikke har noe å gjøre med deres spesielle biz og heller ikke representerer en betydelig del av den totale løsningen.

    Eksempel:
    Klienten ønsket sidenivå og feltnivåkontroll knyttet til brukerroller. "Ut av boksen"-funksjonaliteten for ASP.Net gir tillatelser på mappenivå. Så jeg utvidet de opprinnelige tillatelsene for .Net og leverte løsningen som en del av en samlet nettapplikasjon.

    Jeg tror at de har rett til hele kodebasen (som angitt i kontrakten), men jeg føler meg berettiget til å bruke samme metodikk og kodebiter for å oppnå denne utvidelsen på fremtidige prosjekter.

    Enda en rynke:
    Jeg gjorde dette mens jeg ble oppdrettet av et konsulentselskap. Ville konsulentselskapet etter din mening ha rett til å gå tilbake og kopiere den løsningen, markedsføre den som sin egen?

    • 2

      Ikke egentlig,

      Jeg tror vi er enige. Poenget mitt med dette er å sikre at du har koden og kan gå ut døren med den. Hvis utvikleren din kompilerer kode for deg og sender den ut til nettstedet ditt – har du ikke koden. Jeg har sett dette skje med alt fra grafikk, Flash, .NET, Java ... alt som krever en kildefil og sendes ut.

      Doug

  2. 3

    Jeg ser hvor du kommer fra, og selv om jeg ikke er 100 % enig i alt (jeg har forbehold), bør selskaper alltid ha dette i bakhodet.

    1. ABSOLUTT. Kan ikke understreke dette nok. Jeg har jobbet for et lite selskap som gjorde dette, og jeg følte meg knusende skyldfølelse over å være involvert. Jeg er så glad jeg klarte å komme meg ut derfra. Kunder bør absolutt beholde kontrollen over domenene sine. Hvis de har noen kunnskapsrike nok, ikke gi utvikleren tilgang til dette. Hvis ikke, sørg for at utvikleren har en måte for deg å endre informasjon/overføre domenet via et forhandlergrensesnitt av noe slag i det minste.

    2. Jeg er delvis enig i dette, men det avhenger av situasjonen. Hvis du distribuerer en enkel PHP-app og trenger lavpris hosting, for all del, skaff deg en LunarPages- eller DreamHost-konto eller noe og dump den der. Gi utvikleren tilgang. Imidlertid har lavpris delt hosting absolutt sine ulemper ... spesielt for større ting. Men hvis du er stor nok til å bekymre deg for det, bør du ha noen teknisk ansatte som kan håndtere det. Mye handler åpenbart om tillit. Klart å sette noe i en kontrakt hvis du kan om denne typen ting (restriksjoner og slikt). Tredjeparts hosting er flott hvis utvikleren ikke trenger å gjøre noe fancy. Jeg innrømmer at jeg er sliten fordi det egentlig er en situasjonsbetinget ting. Det avhenger også av størrelsen på nettstedet, utvalget av teknologier som brukes. Hvis det skal bli stort, vurderer du å ansette en person i staben. Ikke alltid et alternativ, men tryggere for store ting.

    3. Dette er også noe mitt tidligere firma gjorde. Du kan gå, de vil gi deg HTML, bilder osv. men ingen kode. Koden var i utgangspunktet en leid tjeneste. Når det er sagt, det er å eie og eie. Jeg har alltid gjort et ikke-eksklusivt salg. I utgangspunktet må jeg kunne gjenbruke komponentene mine. Jeg har ingen problemer med at klienten eier den, gjør hva de vil med den og at noen andre jobber med den... men jeg kommer ikke til å pantsette meg selv og må finne opp hjulet på nytt hver gang.

    4. Alltid. Bestandig. Bestandig.

  3. 4

    Fint innlegg ... godt gjort selv om jeg er uenig i ett punkt (#2):

    "Det er flott at utvikleren din kanskje har et vertsselskap og kan være vert for nettstedet ditt for deg, men ikke gjør det."

    Selv om jeg forstår logikken bak dette, kan det i noen tilfeller være kontraproduktivt å gi mandat at prosjektet ditt skal være vert et annet sted. Hvis selskapet som utvikler nettstedet eller appen din har en vertsplattform de foretrekker å bruke, er sjansen stor for at den vil være mer effektiv og produktiv for dem å bruke den.

    I tillegg, fra et filosofisk synspunkt, hvis du nekter å bruke utviklerens vertsplattform fordi du ikke ønsker å bli "holdt som gissel", så setter dette en tone av mistillit fra starten. Hvis du virkelig ikke stoler på utvikleren din nok til å være vert for dem, vil du virkelig jobbe med dem i utgangspunktet?

    Jeg vet at det eksisterer mange skrekkhistorier om denne typen situasjoner, men generelt vil jeg anbefale at du fokuserer på å finne en utvikler du stoler på. Du kan bruke utviklerens hosting og fortsatt beskytte deg selv ved å be om administrativ tilgang og lage dine egne sikkerhetskopier.

    Igjen, bra innlegg og veldig nyttig informasjon.

    Takk!
    Michael Reynolds

    • 5

      Hei Michael,

      Det kan høres ut som et tillitsspørsmål, men jeg tror ikke det er det – det er egentlig et kontroll- og ansvarsspørsmål. Hvis du skal investere et betydelig beløp i utviklingen av nettstedet ditt, må du være sikker på at du kan kontrollere miljøet.

      Ting skjer i virksomheten som bryter relasjoner, og de trenger ikke være negative. Kanskje utvikleren/firmaet ditt får en veldig stor klient og ikke har råd til deg. Kanskje de skifter forretningsmål. Noen ganger kan vertsselskapet deres ha problemer.

      Jeg anbefaler at du kontrollerer og er ansvarlig for hostingen din, slik at du kan stole på utvikleren din for det han er god på – å utvikle!

      Jeg setter pris på tilbakeskytingen, Michael.

  4. 6

    Jeg er også en web-app-utvikler, og jeg tror du har truffet spikeren på hodet. Noen tanker:

    Jeg tror de fleste er enige (og har basert på kommentarene nedenfor) #1 er absolutt. Aldri, aldri gjør det. Noensinne. Under alle omstendigheter.

    Jeg har en annen oppfatning av #2 enn kanskje noen av mine andre utviklere: vi nekter å være vert for det endelige produktet for kundene våre (selvfølgelig er vi vert for en testserver for klienter for å prøvekjøre produktet under utvikling). Vi hjelper gjerne kunder med å sette opp til å være vert for det selv eller finne en hostingleverandør. Vi ønsker rett og slett ikke å drive med hosting. Hvis det betyr å avvise arbeidet, så får det være. Det er mange flotte hostingselskaper eller infrastrukturfirmaer der ute som kan tilby denne tjenesten til en mye billigere pris. Vi oppmuntrer til portabiliteten til arbeidet vårt, og vil gjøre alt vi kan for å hjelpe til med å få det vert, selv om klienten bytter hostingleverandør år på vei.

    For #3 får kundene våre all kildekoden til sluttproduktet med ett forbehold: For tredjepartsprodukter som brukes i løsningen (som webkontroller fra Telerik eller Component One), kan vi gi klienten den kompilerte dll-en for tredjepartskontrollen (si et rutenett). Våre lisensavtaler med disse tredjepartsselskapene (som vi gir til klienten) forbyr oss fra å omdistribuere kildekoden for denne typen kontroller, fordi det er tredjepartens intellektuelle eiendom, ikke vår. Bruken av denne typen produkter sparer utviklingstid for kunden og er mye billigere enn å bygge samme funksjonalitet fra bunnen av. Vi er på forhånd med denne policyen før noe arbeid er ferdig. Selvfølgelig, hvis klienten ønsker å betale for tilpasset kontrollutvikling (i stedet for å bruke det forhåndsbygde produktet fra tredjeparten), gir vi kildekoden for den tilpassede kontrollen sammen med alt annet.

    Når det gjelder gjenbruk av kode, er vi klar over det faktum at vi kan gjenbruke deler av koden med mindre den er uttrykkelig utviklet eksklusivt for kundens bruk (f.eks. for en proprietær forretningsprosess) før noe arbeid er utført. Hvis klienten ønsker å få utviklet eksklusiv kode, er det selvfølgelig tilgjengelig for dem.

    Som andre har sagt, er #4 alltid anbefalt. Bestandig!

    hilsen,
    Tim Young

Hva tror du?

Dette nettstedet bruker Akismet for å redusere spam. Lær hvordan kommentaren din behandles.