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 što je razvoj završen. 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 gdje smjestiti aplikaciju. 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, imajte račun hostinga i dodajte svog razvojnog programera s vlastitom prijavom i pristupom. Na ovaj način možete povući utikač kad god to trebate.

  3. Posjedujte Kodeks

    Ne pretpostavljajte da ste vlasnik koda, stavite ga pismeno. Ako ne želite da se 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 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 isplativost 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 sa svim), ali bih želio pojašnjenje za #3.

    Veleprodajno umnožavanje web-mjesta ili aplikacije prodane drugoj tvrtki (ili još gore konkurentu) je neetično i uvijek bi trebalo 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 razine stranice i polja vezanu uz korisničke uloge. Funkcija "iz kutije" za ASP.Net daje dopuštenja na razini mape. Stoga sam proširio izvorne dozvole za .Net i dostavio rješenje kao dio cjelokupne web aplikacije.

    Vjerujem da imaju pravo na cijelu kodnu bazu (kao što je navedeno u ugovoru), ali osjećam se opravdanim korištenjem iste metodologije i dijelova koda za postizanje ovog proširenja na budućim projektima.

    Još jedna bora:
    Učinio sam to dok me je bavila konzultantska tvrtka. Bi li po vašem mišljenju konzultantska tvrtka imala pravo vratiti se i kopirati to rješenje, reklamirajući ga kao svoje vlastito?

    • 2

      Ne baš,

      Mislim da se slažemo. Moja poanta u ovome je osigurati da imate kod i da s njim možete izaći kroz vrata. Ako vaš programer sastavlja kod za vas i prenosi ga na vašu web-lokaciju - nemate kod. 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

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

    1. APSOLUTNO. Ne mogu ovo dovoljno naglasiti. Radio sam za malu tvrtku koja je to učinila i osjećao sam strašnu krivnju zbog toga što sam bio uključen. Tako mi je drago što sam uspio izaći odatle. Kupci bi apsolutno trebali zadržati kontrolu nad svojim domenama. Ako imaju nekoga dovoljno pametnog, ne dajte razvojnom programeru pristup ovome. Ako ne, pobrinite se da programer ima način da promijenite informacije/prenesete domenu putem bilo kakvog sučelja prodavača.

    2. Djelomično bih se složio s ovim ali onda ovisi o situaciji. Ako implementirate jednostavnu PHP aplikaciju i trebate jeftin hosting, svakako nabavite LunarPages ili DreamHost račun ili nešto slično i tamo ga stavite. Omogućite razvojnom programeru pristup. Međutim, jeftin zajednički hosting zasigurno ima svoje nedostatke... posebno za veće stvari. Ali ako ste dovoljno veliki da se brinete o tome, trebali biste imati nekoga tehničkog osoblja koji se može nositi s tim. Očito je da se puno toga odnosi na povjerenje. Naravno, stavite nešto u ugovor ako možete o ovoj vrsti stvari (ograničenja i slično). Hosting treće strane je odličan ako programer ne treba raditi ništa otmjeno. Priznajem da sam rastrgan jer je to stvarno situacijska stvar. Također ovisi o veličini stranice, nizu korištenih tehnologija. Ako će to biti veliko, s obzirom na zapošljavanje osobe u osoblju. Nije uvijek opcija, ali sigurnije za velike stvari.

    3. Ovo je također nešto što je radila moja bivša tvrtka. Mogli biste 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 moći ponovno koristiti svoje komponente. Nemam problema s time da ga klijent posjeduje, radi što želi s njim i da netko drugi radi na tome… ali neću se staviti pod hipoteku i svaki put ću morati iznova izmišljati kotač.

    4. Uvijek. Stalno. Stalno.

  3. 4

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

    "Sjajno je što vaš programer možda ima tvrtku 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 naložiti da se vaš projekt hostira negdje drugdje. Ako tvrtka koja razvija vašu web-lokaciju ili aplikaciju ima platformu za hosting koju radije koriste, velike su šanse da će je koristiti učinkovitije i produktivnije.

    Osim toga, s filozofskog stajališta, ako odbijete koristiti hosting platformu svog programera jer ne želite biti “držani taoci”, onda to od samog početka postavlja ton nepovjerenja. Ako stvarno nemate dovoljno povjerenja u svog programera da biste ga ugostili, želite li uopće surađivati ​​s njima?

    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 svog programera i pritom se zaštititi traženjem 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 problem povjerenja, ali mislim da nije – to je zapravo pitanje kontrole i odgovornosti. Ako ćete uložiti značajan iznos u razvoj svoje web stranice, morate biti sigurni da možete kontrolirati njezino okruženje.

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

      Zagovaram da kontrolirate i budete odgovorni za svoj hosting kako biste se mogli osloniti na svog programera u onome u čemu je on izvrstan – u razvoju!

      Cijenim odbijanje, Michael.

  4. 6

    Također sam programer web aplikacija i mislim da ste pogodili nokat. neke misli:

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

    Imam drugačiji stav o #2 od možda nekih mojih kolega programera: odbijamo ugostiti konačni proizvod za naše klijente (naravno, hostiramo poslužitelj za testiranje za klijente kako bi testirali proizvod tijekom razvoja). Drago nam je što možemo pomoći klijentima da se sami postave za hosting ili da pronađu davatelja usluga hostinga. Jednostavno se ne želimo upuštati u posao hostinga. Ako to znači odbacivanje posla, neka bude tako. Postoji mnogo sjajnih hosting tvrtki ili infrastrukturnih tvrtki koje mogu pružiti ovu uslugu po mnogo nižoj cijeni. Potičemo prenosivost našeg rada i učinit ćemo sve što možemo da pomognemo u njegovom hostiranju, čak i ako klijent promijeni pružatelja usluga hostinga godinama kasnije.

    Za #3, naši klijenti dobivaju sav izvorni kod konačnog proizvoda uz jedno upozorenje: Za proizvode trećih strana koji se koriste u rješenju (kao što su web kontrole iz Telerika ili Component One), možemo klijentu dati kompilirani dll za kontrola treće strane (recimo rešetka). Naši ugovori o licenciranju s tim tvrtkama trećih strana (koje pružamo klijentu) zabranjuju nam redistribuciju 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 razvoja za klijenta i puno je jeftinije od izgradnje iste funkcionalnosti od nule. Mi smo unaprijed u vezi s ovom politikom prije nego što se bilo kakav posao obavi. Naravno, ako klijent želi platiti razvoj prilagođene kontrole (umjesto korištenja unaprijed izrađenog proizvoda treće strane), mi dajemo izvorni kod za tu prilagođenu kontrolu zajedno sa svim ostalim.

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

    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.