Izbjegavajte da vas programeri odvedu kao taoce

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

Razgovor se zaokrenuo i nastavilo se odzračivanje oko plaćanja nedeljnih 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 radi pokrivanja ostalih zahtjeva. Pogoršava se.

Programer je prenio imena domena kako bi mogao njima upravljati. Programer takođe 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 tražila administrativni pristup za uređivanje nekih datoteka predložaka za web lokaciju. 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 lokaciju. Također sam otkrio koji softver za upravljanje koristi i krenuo do administracije baze podataka gdje sam mogao izvesti podatke aplikacija i strukture tablica. Vau.

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 kompanije. To sam već vidio.

Nekoliko savjeta ako želite dobiti vanjski razvojni tim:

  1. Registracija domena

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

  2. Hostiranje vaše aplikacije ili web lokacije

    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. Umjesto toga, pitajte njegove preporuke gdje treba smjestiti aplikaciju. Istina je da se programeri upoznaju sa softverom za upravljanje, verzijama i lokacijom resursa, a to može pomoći da vaš proizvod bude prije završen. Međutim, to znači da ste vlasnik računa za hosting i dodajte svog programera sa vlastitom prijavom i pristupom. Na ovaj način možete izvući utikač kad god zatrebate.

  3. Posjedujte kod

    Ne pretpostavljajte da ste vlasnik koda, stavite ga pismeno. Ako ne želite da vaš programer koristi rješenja koja ste mu platili da 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 kompaniju da mi da prava. Ako vam ne smeta da vaš programer negdje drugdje koristi vaš kôd, onda ne biste trebali plaćati najviših dolara!

  4. Dobiti drugo mišljenje!

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

Zaključak je da plaćate talent svog programera, ali morate zadržati kontrolu i vlasništvo nad idejom. Da je tvoja. Vi ste u njega uložili, vi ste riskirali svoje poslovanje i profitabilnost zbog toga ... i vi biste ga trebali zadržati. Programeri se mogu zamijeniti i to nikada ne bi trebalo 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 sa svim), ali bih želio pojašnjenje o #3.

    Veleprodajno umnožavanje stranice ili aplikacije prodato drugoj kompaniji (ili još gore konkurentu) je neetično i uvijek treba biti navedeno kao neprihvatljivo u vašem ugovoru. Međutim, razvio sam inovativna rješenja za uobičajene probleme dok sam radio na projektu klijenta koji nema nikakve veze s njihovim posebnim poslom niti predstavlja značajan dio cjelokupnog rješenja.

    Primjer:
    Klijent želi kontrolu nivoa stranice i nivoa polja vezanu za korisničke uloge. Funkcija "iz kutije" za ASP.Net daje dozvole na nivou foldera. Tako sam proširio izvorne dozvole za .Net i dostavio rješenje kao dio cjelokupne web aplikacije.

    Vjerujem da imaju pravo na cjelokupnu kodnu bazu (kao što je predviđeno ugovorom), ali osjećam se opravdanim da koristim istu metodologiju i dijelove koda za postizanje ovog proširenja na budućim projektima.

    Još jedna bora:
    Učinio sam to dok me je bavila konsultantska kompanija. Da li bi konsultantska kompanija po vašem mišljenju imala pravo da se vrati i kopira to rešenje, reklamirajući ga kao svoje?

    • 2

      Ne baš,

      Mislim da se slažemo. Moja poenta u ovome je da osiguram da imate kod i da možete izaći na vrata s njim. Ako vaš programer kompajlira kod za vas i gura ga na vašu web lokaciju – nemate kod. Vidio sam da se to dešava sa svime, od grafike, Flasha, .NET-a, Jave... svega što zahtijeva izvorni fajl i izlazi.

      Doug

  2. 3

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

    1. APSOLUTNO. Ne mogu ovo dovoljno naglasiti. Radio sam za malu kompaniju koja je ovo uradila i osećao sam strašnu krivicu zbog toga što sam umešan. Tako mi je drago što sam uspeo da izađem odatle. Kupci bi apsolutno trebali zadržati kontrolu nad svojim domenima. Ako imaju nekoga dovoljno pametnog, ne dajte programeru pristup ovome. Ako ne, uvjerite se da programer ima način da promijenite informacije/prenesete domenu putem bilo kakvog sučelja prodavača.

    2. Delimično bih se složio sa ovim ali onda zavisi od situacije. Ako implementirate jednostavnu PHP aplikaciju i trebate jeftin hosting, svakako nabavite LunarPages ili DreamHost nalog ili nešto slično i tamo ga stavite. Omogućite pristup programeru. Međutim, jeftin dijeljeni hosting svakako ima svoje nedostatke... posebno za veće stvari. Ali ako ste dovoljno veliki da brinete o tome, trebalo bi da imate nekoga tehničkog osoblja koji može da se pozabavi time. Očigledno je da se mnogo toga tiče povjerenja. Naravno da stavite nešto u ugovor ako možete o ovakvim stvarima (ograničenja i slično). Hosting treće strane je odličan ako programer ne treba da radi ništa otmjeno. Priznajem da sam rastrgan jer je to stvarno situacijska stvar. To također ovisi o veličini stranice, nizu korištenih tehnologija. Ako će biti veliko, razmišljam o zapošljavanju osobe. Nije uvijek opcija, ali sigurnije za velike stvari.

    3. Ovo je također nešto što je radila moja bivša kompanija. Možete otići, dali bi vam HTML, slike itd…. ali nema koda. Šifra je u osnovi bila iznajmljena usluga. Rečeno je da postoji posjedovanje i posjedovanje. Uvijek sam radio neekskluzivnu prodaju. U osnovi, moram biti u mogućnosti da ponovo koristim svoje komponente. Nemam problem sa klijentom da ga posjeduje, da radi šta želi s njim i da neko drugi radi na tome… ali neću se staviti pod hipoteku i svaki put ću morati ponovo izmišljati točak.

    4. Uvijek. Uvijek. Uvijek.

  3. 4

    Odličan post… bravo iako se ne slažem sa jednom stavkom (#2):

    “Sjajno je što vaš programer možda ima kompaniju za hosting i može ugostiti vašu web lokaciju umjesto vas, ali nemojte to činiti.”

    Iako razumijem logiku koja stoji iza ovoga, u nekim slučajevima može biti kontraproduktivno zahtijevati da vaš projekt bude hostovan negdje drugdje. Ako kompanija koja razvija vašu web-lokaciju ili aplikaciju ima platformu za hosting koju radije koristi, velike su šanse da će biti efikasnije i produktivnije da je koristi.

    Dodatno, sa filozofskog stanovišta, ako odbijete da koristite hosting platformu svog programera jer ne želite da budete „držani taoci“, onda to postavlja ton nepoverenja od samog početka. Ako zaista nemate dovoljno povjerenja u svog programera da biste ga ugostili, da li zaista želite da radite s njima na prvom mjestu?

    Znam da postoje mnoge horor priče o ovakvoj situaciji, ali općenito bih vam preporučio da se fokusirate na pronalaženje programera kojem vjerujete. Možete koristiti hosting svog programera i dalje se zaštititi tako što ćete zatražiti administrativni pristup i napraviti vlastite sigurnosne kopije.

    Opet dobar post i vrlo korisne informacije.

    Hvala!
    Michael Reynolds

    • 5

      Zdravo Michael,

      Možda zvuči kao pitanje povjerenja, ali mislim da nije – to je zapravo pitanje kontrole i odgovornosti. Ako ćete uložiti značajan iznos u razvoj vaše web stranice, onda morate biti sigurni da možete kontrolirati njeno okruženje.

      U poslu se dešavaju stvari koje prekidaju odnose i ne moraju biti negativne. Možda vaš programer/firma dobije veoma velikog klijenta i ne može vam priuštiti vrijeme. Možda mijenjaju poslovne ciljeve. Ponekad njihova hosting kompanija može imati problema.

      Zalažem se da kontrolišete i budete odgovorni za svoj hosting kako biste se mogli osloniti na svog programera u onome u čemu je on odličan – u razvoju!

      Cijenim odbijanje, Michael.

  4. 6

    Ja sam također programer web aplikacija i mislim da ste pogodili nokat na glavi. neke misli:

    Mislim da bi se svi složili (i na osnovu komentara ispod) #1 je apsolutno. Nikad, nikad to ne radi. Ikad. Pod bilo kojim okolnostima.

    Imam drugačiji stav o #2 od možda nekih mojih kolega programera: odbijamo da ugostimo finalni proizvod za naše klijente (naravno, hostujemo server za testiranje za klijente da testiraju proizvod tokom razvoja). Drago nam je što možemo pomoći klijentima da se podese da sami ugoste ili pronađu hosting provajdera. Jednostavno ne želimo da ulazimo u posao hostinga. Ako to znači odbacivanje posla, neka bude tako. Postoji mnogo sjajnih hosting kompanija ili infrastrukturnih firmi koje mogu pružiti ovu uslugu po mnogo nižoj cijeni. Podstičemo prenosivost našeg rada i učinićemo sve što možemo da pomognemo da se on hostuje, čak i ako klijent promeni hosting provajdera godinama kasnije.

    Za #3, naši klijenti dobijaju sav izvorni kod konačnog proizvoda uz jedno upozorenje: Za proizvode treće strane koji se koriste u rješenju (kao što su web kontrole iz Telerika ili Component One), možemo dati klijentu kompajlirani dll za kontrola treće strane (recimo mreža). Naši ugovori o licenciranju sa tim trećim stranama (koje pružamo klijentu) nam zabranjuju da redistribuiramo izvorni kod za te vrste kontrola, jer je to intelektualno vlasništvo trećih strana, a ne naše. Upotreba ovih vrsta proizvoda štedi vrijeme razvoja za klijenta i mnogo je jeftinija od izgradnje iste funkcionalnosti od nule. Mi smo unaprijed u vezi sa ovom politikom prije nego što se bilo kakav posao obavi. Naravno, ako klijent želi da plati razvoj prilagođene kontrole (umesto da koristi unapred izgrađen proizvod treće strane), mi obezbeđujemo izvorni kod za tu prilagođenu kontrolu zajedno sa svim ostalim.

    Kada je u pitanju ponovna upotreba koda, unaprijed smo u vezi sa činjenicom da možemo ponovo koristiti dijelove koda osim ako nije izričito razvijen isključivo za upotrebu klijenta (recimo za vlasnički poslovni proces) prije nego što se bilo koji posao obavi. Ukoliko klijent naravno želi da razvije ekskluzivni kod, to mu je dostupno.

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

    Pozdrav,
    Tim Young

Šta ti misliš?

Ova stranica koristi Akismet kako bi smanjila neželjenu poštu. Saznajte kako se podaci vašeg komentara obrađuju.