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 web lokacije 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. To je, doduše, reklo da posjedujete račun hostinga i dodate svog programera s vlastitom prijavom i pristupom. Na ovaj način možete povuć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 drugom 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 najboljih dolara!

  4. Dobiti drugo mišljenje!

    Ne škodi mojim osjećajima 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 svih), ali želio bih pojašnjenje u vezi s # 3.

    Umnožavanje web lokacije ili aplikacije koja se prodaje drugoj kompaniji (ili još gore konkurentu) na veliko je neetično i u vašem ugovoru uvijek treba utvrditi da nije prihvatljivo. Međutim, razvio sam inovativna rješenja za uobičajene probleme dok sam radio na klijentovom projektu koji nema nikakve veze s njihovom određenom poslovom niti predstavlja značajan dio ukupnog rješenja.

    Primjer:
    Klijent je želio kontrolu nivoa stranice i nivoa polja vezanu za korisničke uloge. Funkcija „izvan okvira“ za ASP.Net daje dozvole na nivou mape. Stoga sam proširio izvorne dozvole za .Net i isporučio rješenje kao dio sveukupne web aplikacije.

    Vjerujem da imaju pravo na cijelu 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 je konsultantska kompanija izbacila iz farme. Da li bi konzultantska kompanija 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 poanta u ovome je osigurati da imate kod i da možete s njim izaći na vrata. Ako vaš programer sastavlja kôd za vas i izbacuje ga na vašu web lokaciju - nemate kôd. Vidio sam da se to događa sa svime, od grafike, Flash-a, .NET-a, Jave ... svega što zahtijeva izvornu datoteku i izlazi.

      Doug

  2. 3

    Vidim odakle dolazite i iako se ne slažem sa svim sto posto (imam upozorenja), kompanije bi to trebale uvijek imati na umu.

    1. APSOLUTNO. Ne mogu ovo naglasiti. Radio sam za malu kompaniju koja je to radila i osjećao sam slom krivice zbog toga što sam bio umiješan. Tako mi je drago što sam mogao izaći odatle. Kupci bi trebali apsolutno zadržati kontrolu nad svojim domenima. Ako imaju nekoga dovoljno pametnog, ne dajte programeru pristup ovome. Ako ne, pobrinite se da programer ima način da u najmanju ruku promijenite informacije / prenesete domenu putem neke vrste interfejsa preprodavača.

    2. Djelomično bih se složio s tim, ali 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. Dajte programeru pristup. Međutim, jeftini dijeljeni hosting sigurno ima svojih nedostataka ... posebno za veće stvari. Ali ako ste dovoljno veliki da brinete o tome, trebali biste imati neko tehničko osoblje koje ć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 je sjajan ako programer ne treba učiniti nešto otmjeno. Priznajem da sam rastrgan jer je to stvarno situacija. To također ovisi o veličini web stranice, 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đe radila moja bivša kompanija. Možete otići, dali bi vam HTML, slike itd .... ali bez koda. Šifra je u osnovi bila unajmljena usluga. To se kaže, ima posedovanje i posedovanje. Uvijek sam prodavao neekskluzivno. U osnovi, moram biti u mogućnosti da ponovo upotrijebim 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 put ću morati ponovo izmisliti točak.

    4. Uvijek. Uvijek. Uvijek.

  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 web lokacije umjesto vas, ali nemojte to raditi."

    Iako razumijem logiku koja stoji iza ovoga, u nekim slučajevima može biti kontraproduktivno zahtijevati da vaš projekt bude hostiran negdje drugdje. Ako kompanija 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 hostinga vašeg programera, jer ne želite biti “talac”, onda 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 zahtjevom administrativnog pristupa i stvaranjem vlastitih sigurnosnih kopija.

    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 stvarno pitanje kontrole i odgovornosti. Ako ćete uložiti značajan iznos u razvoj vaše web stranice, tada morate biti sigurni da možete kontrolirati njezino okruženje.

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

      Zalažem se 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 povratni udarac, 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 osnovu komentara u nastavku) # 1 je apsolut. Nikad, nikad to ne radi. Nikad. Pod bilo kojim okolnostima.

    Imam drugačiji stav prema br. 2 od možda nekih mojih kolega programera: odbijamo hostirati konačni proizvod za naše kupce (naravno, mi imamo hosting servera za klijente koji će testirati proizvod tokom razvoja). Sretni smo što možemo pomoći klijentima da se postave da ga sami hostiraju ili pronađu pružatelja usluga hostinga. Jednostavno ne želimo ulaziti u posao hostinga. Ako to znači odbijanje posla, neka tako bude. Postoji puno sjajnih hosting kompanija ili infrastrukturnih firmi koje mogu pružiti ovu uslugu po mnogo jeftinijoj cijeni. Potičemo prenosivost našeg rada i učinit ćemo sve što je u našoj moći da pomognemo njegovo hostiranje, čak i ako klijent godinama promeni davatelje usluga hostinga.

    Za treće 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), možemo klijentu dati kompajlirani dll za kontrola treće strane (recimo mreža). Naši ugovori o licenciranju sa tim kompanijama trećih strana (koje dostavljamo klijentu) zabranjuju nam preraspodjelu izvornog koda za tu vrstu 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 bilo kakvog posla. 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 upoznati s činjenicom da možemo ponovno koristiti dijelove koda, osim ako nije izričito razvijen isključivo za klijentovu upotrebu (recimo za vlasnički poslovni proces) prije nego što se bilo kakav posao obavi. Ako klijent želi da se razvije ekskluzivni kod, naravno, on mu je dostupan.

    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.