Izbjegavajte da vas programeri odvedu kao taoce

talac100107Ovog sam vikenda započeo razgovor s lokalnom umjetnicom koja pomaže svom šefu u upravljanju nekoliko web aplikacija koje njezin šef posjeduje.

Razgovor se zaokrenuo i nastavilo se odzračivanje oko plaćanja tjednih naknada za razvoj, a da se nije vidio napredak s programerom s kojim su radili. Sada im programer želi naplatiti još jednu paušalnu naknadu za dovršetak projekta, kao i tjednu naknadu za održavanje za pokrivanje ostalih zahtjeva. Pogoršava se.

Programer je prenio imena domena kako bi mogao njima upravljati. Programer također hostira aplikaciju na svom hosting računu. Ukratko, programer ih sada drži kao taoce.

Srećom, žena s kojom radim u prošlosti je zahtijevala administrativni pristup za uređivanje nekih datoteka predložaka za web mjesto. Programer joj je mogao omogućiti ograničeni pristup, ali nije. On joj je (lijeno) pružio administrativnu prijavu na stranicu. Večeras sam iskoristio taj pristup za sigurnosno kopiranje cijelog koda za web mjesto. Također sam otkrio koji softver za upravljanje koristi i uputio se do administracije baze podataka gdje sam mogao izvesti podatke aplikacija i strukture tablica. Fuj.

Vlasnik je planirao premjestiti web lokacije na nova imena domena nakon završetka razvoja. To je ogromno jer znači da trenutne domene mogu isteći u slučaju da postoji ljutita razdvojenost između programera i tvrtke. To sam već vidio.

Nekoliko savjeta ako ćete dobiti vanjski razvojni tim:

  1. Registracija domene

    Registrirajte imena svojih domena u ime svoje tvrtke. Nije loše imati svog programera kao tehničkog kontakta na računu, ali nikada prenijeti vlasništvo nad domenom na bilo koga izvan vaše tvrtke.

  2. Hostiranje vaše aplikacije ili web mjesta

    Sjajno je što vaš programer možda ima tvrtku za hosting i može hostirati vašu stranicu umjesto vas, ali nemojte to raditi. Umjesto toga, pitajte njegove preporuke za mjesto smještaja aplikacije. Istina je da se programeri upoznaju sa softverom za upravljanje, verzijama i smještajem resursa, a to može pomoći da vaš proizvod bude prije dovršen. Ipak, recite da ste vlasnik računa za hosting i dodajte svog programera s vlastitom prijavom i pristupom. Na ovaj način možete izvući utikač kad god zatrebate.

  3. Posjedujte Kodeks

    Ne pretpostavljajte da ste vlasnik koda, stavite ga pismeno. Ako ne želite da vaš programer koristi rješenja koja ste mu platili da se razvijaju negdje drugdje, morate to odlučiti u vrijeme ugovora. Razvio sam rješenja na ovaj način, ali razvio sam ih i tamo gdje zadržavam prava na kôd. U potonjem slučaju pregovarao sam o cijeni prijave niže tako da je postojao poticaj za tvrtku da mi da prava. Ako vam ne smeta što vaš programer drugdje koristi vaš kôd, onda ne biste trebali plaćati najviših dolara!

  4. Dobiti drugo mišljenje!

    Ne boli moje osjećaje kad mi ljudi kažu da daju ponude ili se savjetuju s drugim profesionalcima. Zapravo preporučujem!

Dno crta je da plaćate talent svog programera, ali morate zadržati kontrolu i vlasništvo nad idejom. To je tvoje. Vi ste u njega uložili, vi koji ste riskirali svoje poslovanje i profitabilnost za to ... i vi biste ga trebali zadržati. Programeri se mogu zamijeniti, a to nikada ne smije ugroziti vašu aplikaciju ili još gore - vaše poslovanje.

6 Komentari

  1. 1

    Ja sam programer web aplikacija i slažem se s većinom vaših stavova (možda i svih), ali želio bih pojašnjenje u vezi s # 3.

    Umnožavanje stranica ili aplikacija koje se prodaju drugoj tvrtki (ili još gore konkurentu) na veliko je neetično i u vašem ugovoru uvijek se mora utvrditi da nije prihvatljivo. Međutim, razvio sam inovativna rješenja za uobičajene probleme dok sam radio na projektu klijenta koji nema nikakve veze s njegovom konkretnom poslovnom djelatnošću niti predstavlja značajan dio cjelokupnog rješenja.

    Primjer:
    Klijent je želio kontrolu razine stranice i razine polja povezane s korisničkim ulogama. Funkcija "izvan okvira" za ASP.Net daje dozvole na razini mape. Stoga sam proširio izvorna dopuštenja za .Net i isporučio rješenje kao dio sveukupne web aplikacije.

    Vjerujem da imaju pravo na cjelokupnu bazu kodova (kako je predviđeno ugovorom), ali osjećam se opravdanim korištenjem iste metodologije i dijelova koda za postizanje ovog proširenja na budućim projektima.

    Još jedna bora:
    To sam učinio dok me konzultirala konzultantska tvrtka. Bi li konzultantska tvrtka imala pravo po vašem mišljenju vratiti se i kopirati to rješenje, plasirajući ga kao svoje?

    • 2

      Ne baš,

      Mislim da se slažemo. Moja je poanta u tome osigurati da imate kod i da možete s njim izaći na vrata. Ako vaš programer sastavlja kôd umjesto vas i izbacuje ga na vaše web mjesto - vi nemate kôd. Vidio sam da se to događa sa svime, od grafike, Flasha, .NET-a, Jave ... svega što zahtijeva izvornu datoteku i izlazi.

      Doug

  2. 3

    Vidim odakle dolazite i iako se ne slažem sa svime 100% (imam upozorenja), tvrtke bi to trebale uvijek imati na umu.

    1. APSOLUTNO. Ne mogu ovo dovoljno naglasiti. Radio sam za malu tvrtku koja je to radila i osjećao sam slom krivice zbog toga što sam bio umiješan. Tako mi je drago što sam uspjela otići odande. Kupci bi trebali apsolutno zadržati kontrolu nad svojim domenama. Ako imaju nekoga dovoljno pametnog, nemojte dopustiti programeru pristup ovome. Ako ne, pobrinite se da programer ima način da u najmanju ruku promijenite informacije / prenesete domenu putem neke vrste sučelja.

    2. Djelomično bih se složio s tim, ali onda to ovisi o situaciji. Ako instalirate jednostavnu PHP aplikaciju i trebate jeftin hosting, svakako nabavite LunarPages ili DreamHost račun ili nešto slično i bacite ga tamo. Omogućite programeru pristup. Međutim, jeftini dijeljeni hosting sigurno ima svojih nedostataka ... posebno za veće stvari. Ali ako ste dovoljno veliki da se brinete o tome, trebali biste imati nekoga tehničkog osoblja koji će se nositi s tim. Očito je da se puno odnosi na povjerenje. Naravno da ste stavili nešto u ugovor ako možete o ovakvim stvarima (ograničenja i slično). Hosting treće strane izvrstan je ako programer ne treba raditi nešto otmjeno. Priznajem da sam rastrgana jer je to stvarno situacija. To također ovisi o veličini web mjesta, nizu korištenih tehnologija. Ako će biti veliko, s obzirom na zapošljavanje osobe na osoblje. Nije uvijek opcija, ali je sigurnija za velike stvari.

    3. To je također učinila moja bivša tvrtka. Možete otići, oni će vam dati HTML, slike itd .... ali bez koda. Kôd je u osnovi bio unajmljena usluga. Kad se to kaže, postoji posjedovanje i posjedovanje. Uvijek sam prodavao neekskluzivno. U osnovi, moram biti u mogućnosti ponovno koristiti svoje komponente. Nemam problema s tim da ga klijent posjeduje, radi što želi s tim i da netko drugi radi na tome ... ali neću se stavljati pod hipoteku i svaki ću put morati ponovno izmisliti kotač.

    4. Uvijek. Stalno. Stalno.

  3. 4

    Lijep post ... bravo, iako se ne slažem s jednom stavkom (# 2):

    "Sjajno je što vaš programer možda ima hosting tvrtku i može biti domaćin vaše stranice umjesto vas, ali nemojte to raditi."

    Iako razumijem logiku koja stoji iza toga, u nekim slučajevima može biti kontraproduktivno zahtijevati da vaš projekt bude hostiran negdje drugdje. Ako tvrtka koja razvija vašu web lokaciju ili aplikaciju ima platformu za hosting koju oni radije koriste, velika je vjerojatnost da će im biti učinkovitije i produktivnije da je koriste.

    Uz to, s filozofskog stajališta, ako odbijete koristiti platformu za hosting programera jer ne želite biti “talac”, to od početka daje ton nepovjerenja. Ako zaista ne vjerujete svom programeru dovoljno da ga ugostite, želite li uopće raditi s njim?

    Znam da postoje mnoge horor priče o ovakvoj situaciji, ali općenito bih vam preporučio da se usredotočite na pronalaženje programera kojem vjerujete. Možete koristiti hosting programera i pritom se zaštititi zahtijevanjem administrativnog pristupa i izradom vlastitih sigurnosnih kopija.

    Opet, dobar post i vrlo korisne informacije.

    Hvala!
    Michael Reynolds

    • 5

      Hi Michael,

      Možda zvuči kao pitanje povjerenja, ali mislim da nije - to je stvarno pitanje kontrole i odgovornosti. Ako ćete uložiti značajan iznos u razvoj web stranica, tada morate biti sigurni da možete kontrolirati njegovo okruženje.

      U poslu se događaju stvari koje prekidaju veze i ne moraju biti negativne. Možda vaš programer / tvrtka dobije vrlo velikog klijenta i ne može vam priuštiti vrijeme. Možda pomiču poslovne ciljeve. Ponekad njihova hosting tvrtka može imati problema.

      Zagovaram da vi kontrolirate i budete odgovorni za svoj hosting, tako da možete ovisiti o svom programeru u onome u čemu je sjajan - u razvoju!

      Cijenim potisak, Michael.

  4. 6

    Također sam programer web aplikacija i mislim da ste pogodili čavao u glavu. Neke misli:

    Mislim da bi se većina svih složila (i na temelju komentara u nastavku) # 1 je apsolut. Nikad, nikad to ne radi. Ikad. Pod bilo kojim okolnostima.

    Imam drugačiji stav prema br. 2 od možda nekih mojih kolega programera: odbijamo ugostiti konačni proizvod za naše kupce (naravno, imamo poslužitelj za testiranje za klijente koji će tijekom razvoja testirati proizvod). Sretni smo što pomažemo klijentima da se postave sami da ga hostiraju ili pronađu pružatelja hosting usluga. Jednostavno ne želimo ulaziti u posao hostinga. Ako to znači odbijanje posla, neka tako bude. Postoji puno izvrsnih hosting tvrtki ili infrastrukturnih tvrtki koje mogu pružiti ovu uslugu po mnogo jeftinijoj cijeni. Potičemo prenosivost našeg rada i učinit ćemo sve što možemo kako bismo pomogli da se on hostira, čak i ako klijent godinama promiče davatelje usluga hostinga.

    Za 3. mjesto naši klijenti dobivaju sav izvorni kod konačnog proizvoda s jednim upozorenjem: za proizvode treće strane koji se koriste u rješenju (poput web kontrola od Telerika ili Component One), klijentu možemo dati kompilirani dll za kontrola treće strane (recimo mreža). Naši ugovori o licenciranju s tim trećim stranama (koje dostavljamo klijentu) zabranjuju nam preraspodjelu izvornog koda za te vrste kontrola, jer je to intelektualno vlasništvo trećih strana, a ne naše. Korištenje ovih vrsta proizvoda štedi vrijeme za razvoj klijenta i mnogo je jeftinije od izgradnje iste funkcije od nule. Mi smo unaprijed u vezi s ovom politikom prije nego što obavimo bilo kakav posao. Naravno, ako klijent želi platiti razvoj prilagođene kontrole (umjesto da koristi već izrađeni proizvod treće strane), uz sve ostalo pružamo izvorni kod za tu prilagođenu kontrolu.

    Što se tiče ponovne upotrebe koda, unaprijed smo sigurni u činjenicu da možemo ponovno koristiti dijelove koda, osim ako nije izričito razvijen isključivo za klijentovu upotrebu (recimo za vlastiti poslovni proces) prije nego što se obavi bilo kakav posao. Ako klijent želi naravno razviti ekskluzivni kod, on mu je dostupan.

    Kao što su drugi rekli, # 4 se uvijek preporučuje. Stalno!

    Pozdrav,
    Tim Young

Što vi mislite?

Ova web stranica koristi Akismet za smanjenje neželjene pošte. Saznajte kako se podaci vašeg komentara obrađuju.