Unikaj wzięcia zakładnika przez programistów

zakładnik100107W ten weekend zacząłem rozmowę z lokalną artystką, która pomagała swojemu szefowi w zarządzaniu kilkoma aplikacjami internetowymi, które posiada jej szef.

Rozmowa przybrała obrót i zaczęło się trochę wieść o płaceniu cotygodniowych opłat programistycznych, nie widząc żadnych postępów z deweloperem, z którym współpracowali. Teraz deweloper chce obciążyć ich kolejną opłatą ryczałtową za ukończenie projektu, a także cotygodniową opłatą za utrzymanie na pokrycie innych żądań. Pogarsza się.

Deweloper przeniósł nazwy domen, aby mógł nimi zarządzać. Deweloper hostuje również aplikację na swoim koncie hostingowym. Krótko mówiąc, deweloper trzyma ich teraz jako zakładników.

Na szczęście kobieta, z którą pracuję, domagała się w przeszłości dostępu administracyjnego do edycji niektórych plików szablonów witryny. Deweloper mógł zapewnić jej ograniczony dostęp, ale tego nie zrobił. Podał jej (leniwie) login administracyjny do serwisu. Dziś wieczorem skorzystałem z tego dostępu, aby wykonać kopię zapasową całego kodu witryny. Dowiedziałem się również, jakiego oprogramowania do zarządzania używa, i udałem się do administracji bazy danych, gdzie mogłem wyeksportować dane obu aplikacji i struktury tabel. Uff.

Właściciel planował przeniesienie witryn do nowych nazw domen po zakończeniu rozwoju. To ogromne, ponieważ oznacza, że ​​obecne domeny mogą wygasnąć w przypadku złego podziału między deweloperem a firmą. Widziałem to już wcześniej.

Kilka wskazówek, jeśli zamierzasz zatrudnić zewnętrzny zespół programistów:

  1. Rejestracja domeny

    Zarejestruj nazwy domen w nazwie swojej firmy. Nie jest źle mieć programistę jako kontakt techniczny na koncie, ale nigdy przenieść własność domeny na dowolną osobę spoza Twojej firmy.

  2. Hostowanie aplikacji lub witryny

    To wspaniale, że Twój programista może mieć firmę hostingową i może hostować Twoją witrynę, ale nie rób tego. Zamiast tego zapytaj jego zalecenia dotyczące miejsca hostowania aplikacji. Prawdą jest, że programiści zapoznają się z oprogramowaniem do zarządzania, wersjami i lokalizacją zasobów, co może pomóc w szybszym ukończeniu produktu. Mimo to posiadaj konto hostingowe i dodaj programistę z własnym loginem i dostępem. W ten sposób możesz wyciągnąć wtyczkę, kiedy tylko zajdzie taka potrzeba.

  3. Posiadaj kod

    Nie zakładaj, że jesteś właścicielem kodu, zapisz go na piśmie. Jeśli nie chcesz, aby Twój programista korzystał z rozwiązań, które mu zapłaciłeś, aby rozwijał je w innym miejscu, musisz zdecydować o tym w momencie zawierania umowy. W ten sposób opracowałem rozwiązania, ale opracowałem je również, w których zachowuję prawa do kodu. W tym drugim przypadku wynegocjowałem niższy koszt wniosku, aby firma miała motywację do przyznania mi praw. Jeśli nie masz nic przeciwko używaniu Twojego kodu przez programistę w innym miejscu, nie powinieneś płacić najwyższej ceny!

  4. Uzyskaj drugą opinię!

    Nie rani moich uczuć, gdy ludzie mówią mi, że składają oferty lub konsultują się z innymi specjalistami. Właściwie to polecam!

Najważniejsze jest to, że płacisz za talent programisty, ale musisz zachować kontrolę i prawo własności do pomysłu. To jest twoje. To Ty w nią zainwestowałeś, zaryzykowałeś swój biznes i rentowność… i to Ty powinieneś go zatrzymać. Programiści mogą zostać zastąpieni, a to nigdy nie powinno narażać Twojej aplikacji lub, co gorsza - Twojej firmy na ryzyko.

Komentarze 6

  1. 1

    Jestem programistą aplikacji internetowych i zgadzam się z większością twoich punktów (być może wszystkimi), ale chciałbym wyjaśnić punkt 3.

    Hurtowe kopiowanie witryny lub aplikacji sprzedawanej innej firmie (lub, co gorsza, konkurentowi) jest nieetyczne i zawsze powinno być określone jako niedopuszczalne w umowie. Jednak opracowałem innowacyjne rozwiązania typowych problemów podczas pracy nad projektem klienta, który nie ma nic wspólnego z jego konkretnym biznesem ani nie stanowi znaczącej części całościowego rozwiązania.

    Przykład:
    Klient chciał, aby kontrola na poziomie strony i pola była powiązana z rolami użytkowników. Funkcjonalność „po wyjęciu z pudełka” dla ASP.Net zapewnia uprawnienia na poziomie folderu. Dlatego rozszerzyłem natywne uprawnienia dla .Net i dostarczyłem rozwiązanie jako część ogólnej aplikacji internetowej.

    Uważam, że przysługuje im cały kod (zgodnie z umową), ale czuję się uzasadniony, używając tej samej metodologii i fragmentów kodu w celu wykonania tego rozszerzenia w przyszłych projektach.

    Kolejna zmarszczka:
    Zrobiłem to, gdy byłem wyrzucony przez firmę konsultingową. Czy firma konsultingowa miałaby Twoim zdaniem prawo cofnąć się i skopiować to rozwiązanie, wprowadzając je na rynek jako własne?

    • 2

      Nie całkiem,

      Myślę, że się zgadzamy. Chodzi mi o to, aby upewnić się, że masz kod i możesz z nim wyjść. Jeśli Twój programista kompiluje dla Ciebie kod i wypycha go do Twojej witryny - nie masz kodu. Widziałem, jak to się dzieje w przypadku wszystkiego, od grafiki, Flash, .NET, Java… wszystkiego, co wymaga pliku źródłowego i jest wyświetlane.

      Doug

  2. 3

    Widzę, skąd pochodzisz i chociaż nie zgadzam się ze wszystkim w 100% (mam zastrzeżenia), firmy powinny zawsze o tym pamiętać.

    1. ABSOLUTNIE. Nie mogę tego wystarczająco podkreślić. Pracowałem dla małej firmy, która to zrobiła i poczułem miażdżące poczucie winy z powodu zaangażowania. Tak się cieszę, że mogłem się stamtąd wydostać. Klienci powinni bezwzględnie zachować kontrolę nad swoimi domenami. Jeśli mają kogoś wystarczająco doświadczonego, nie dawaj do tego programiście dostępu. Jeśli nie, upewnij się, że programista ma dla Ciebie sposób na zmianę informacji / przeniesienie domeny przynajmniej za pośrednictwem jakiegoś interfejsu sprzedawcy.

    2. Częściowo się z tym zgadzam, ale to zależy od sytuacji. Jeśli wdrażasz prostą aplikację PHP i potrzebujesz taniego hostingu, jak najbardziej, zdobądź konto LunarPages lub DreamHost lub coś w tym stylu i zrzuć je tam. Daj programiście dostęp. Jednak tani hosting współdzielony z pewnością ma swoje wady… szczególnie w przypadku większych rzeczy. Ale jeśli jesteś wystarczająco duży, aby się tym martwić, powinieneś mieć kogoś technicznego z personelu, który może sobie z tym poradzić. Wiele z nich dotyczy oczywiście zaufania. Jasne jak diabli, umieść coś w kontrakcie, jeśli możesz, na tego typu rzeczy (ograniczenia i tym podobne). Hosting stron trzecich jest świetny, jeśli programista nie musi robić nic wymyślnego. Przyznaję, że jestem rozdarty, bo to naprawdę sytuacja sytuacyjna. Zależy to również od wielkości witryny, zakresu stosowanych technologii. Jeśli będzie duży, rozważ zatrudnienie osoby do personelu. Nie zawsze jest to opcja, ale jest bezpieczniejsza w przypadku dużych rzeczy.

    3. Jest to również coś, co zrobiła moja była firma. Możesz wyjść, dadzą ci HTML, obrazy itp…. ale bez kodu. Kod był zasadniczo usługą dzierżawioną. Biorąc to pod uwagę, istnieje posiadanie i posiadanie. Zawsze robiłem niewyłączną sprzedaż. Zasadniczo muszę mieć możliwość ponownego wykorzystania moich komponentów. Nie mam problemu z tym, że klient jest właścicielem tego, robi z nim co chce i że ktoś inny pracuje nad tym… ale nie zamierzam zastawiać siebie i za każdym razem muszę wymyślać koło na nowo.

    4. Zawsze. Zawsze. Zawsze.

  3. 4

    Fajny post… dobra robota, chociaż nie zgadzam się z jednym punktem (nr 2):

    „To wspaniale, że Twój programista może mieć firmę hostingową i może hostować Twoją witrynę, ale nie rób tego”.

    Chociaż rozumiem logikę stojącą za tym, w niektórych przypadkach zlecenie hostowania projektu w innym miejscu może przynieść efekt przeciwny do zamierzonego. Jeśli firma rozwijająca Twoją witrynę lub aplikację ma platformę hostingową, z której woli korzystać, prawdopodobnie będzie ona dla nich bardziej wydajna i produktywna.

    Dodatkowo, z filozoficznego punktu widzenia, jeśli odmawiasz korzystania z platformy hostingowej swojego programisty, ponieważ nie chcesz być „zakładnikiem”, od samego początku nadaje to ton nieufności. Jeśli naprawdę nie ufasz programistom na tyle, aby je hostować, to czy naprawdę chcesz z nimi pracować w pierwszej kolejności?

    Wiem, że istnieje wiele horrorów na temat tego rodzaju sytuacji, ale ogólnie radziłbym skupić się na znalezieniu programisty, któremu ufasz. Możesz korzystać z hostingu programisty i nadal chronić się, żądając dostępu administracyjnego i tworząc własne kopie zapasowe.

    Znowu dobry post i bardzo przydatne informacje.

    Dzięki!
    Michael Reynolds

    • 5

      Cześć Michał,

      Może to brzmieć jak kwestia zaufania, ale nie sądzę, że tak jest - to naprawdę kwestia kontroli i odpowiedzialności. Jeśli zamierzasz zainwestować znaczną kwotę w rozwój swojej witryny internetowej, musisz mieć pewność, że możesz kontrolować jej środowisko.

      W biznesie zdarzają się rzeczy, które zrywają relacje i nie muszą być negatywne. Być może Twój programista / firma ma bardzo dużego klienta i nie może sobie pozwolić na czas. Być może zmieniają cele biznesowe. Czasami ich firma hostingowa może mieć problemy.

      Opowiadam się za kontrolowaniem i odpowiedzialnością za hosting, abyś mógł polegać na swoim deweloperze w tym, w czym jest świetny - w tworzeniu!

      Doceniam odpychanie, Michael.

  4. 6

    Jestem także programistą aplikacji internetowych i myślę, że trafiłeś w sedno. Kilka myśli:

    Myślę, że większość by się zgodziła (i opierając się na komentarzach poniżej) # 1 to absolut. Nigdy, przenigdy tego nie rób. Zawsze. W każdych okolicznościach.

    Mam inne podejście do # 2 niż być może niektórzy z moich kolegów programistów: odmawiamy hostowania produktu końcowego dla naszych klientów (oczywiście udostępniamy serwer testowy, aby klienci mogli przetestować produkt podczas rozwoju). Chętnie pomożemy klientom w samodzielnym skonfigurowaniu hostingu lub znalezieniu dostawcy usług hostingowych. Po prostu nie chcemy zajmować się hostingiem. Jeśli to oznacza odwrócenie pracy, niech tak będzie. Istnieje wiele świetnych firm hostingowych lub infrastrukturalnych, które mogą świadczyć tę usługę po znacznie niższej cenie. Zachęcamy do przenoszenia naszej pracy i zrobimy wszystko, co w naszej mocy, aby pomóc w jej hostowaniu, nawet jeśli klient zmieni dostawcę usług hostingowych po latach.

    W przypadku # 3 nasi klienci otrzymują cały kod źródłowy produktu końcowego z jednym zastrzeżeniem: w przypadku produktów innych firm, które są używane w rozwiązaniu (takich jak kontrolki internetowe firmy Telerik lub Component One), możemy przekazać klientowi skompilowaną bibliotekę dll dla kontrola strony trzeciej (powiedzmy siatka). Nasze umowy licencyjne z tymi firmami zewnętrznymi (które dostarczamy klientowi) zabraniają nam redystrybucji kodu źródłowego tego typu kontroli, ponieważ jest to własność intelektualna stron trzecich, a nie nasza. Korzystanie z tego typu produktów oszczędza czas rozwoju klienta i jest dużo tańsze niż budowanie tej samej funkcjonalności od podstaw. Jesteśmy otwarci na temat tej polityki przed wykonaniem jakichkolwiek prac. Oczywiście, jeśli klient chce zapłacić za opracowanie niestandardowej kontroli (zamiast korzystać z gotowego produktu innej firmy), zapewniamy kod źródłowy tej niestandardowej kontroli wraz ze wszystkim innym.

    Jeśli chodzi o ponowne wykorzystanie kodu, jesteśmy otwarci co do tego, że możemy ponownie wykorzystać fragmenty kodu, chyba że został on wyraźnie opracowany wyłącznie na użytek klienta (powiedzmy dla zastrzeżonego procesu biznesowego) przed wykonaniem jakiejkolwiek pracy. Jeśli klient chce mieć opracowany ekskluzywny kod, jest oczywiście dla niego dostępny.

    Jak powiedzieli inni, zawsze zaleca się numer 4. Zawsze!

    Pozdrowienia,
    Tim młody

Co o tym myślisz?

Ta strona używa Akismet do redukcji spamu. Dowiedz się, jak przetwarzane są dane komentarza.