Pracuję jako niezależny programista dla aplikacji mobilnych. Klient prosi mnie o opracowanie aplikacji mobilnej. W tej chwili obliczam czas i wysiłek, aby napisać ofertę dla tego projektu.
Sama aplikacja będzie używana tylko przez pewien czas, ponieważ będzie później związana z określonym zdarzeniem, jeśli będzie bezużyteczna. Ale podstawowa funkcjonalność aplikacji będzie mogła być ponownie wykorzystywana przez innych klientów, którzy chcą mieć podobną aplikację na swoje wydarzenie.
W tej chwili zastanawiam się, czy jest w porządku, aby opracować aplikację dla klienta, pozwolić mu zapłacić za rozwój i ponownie wykorzystać część kodu źródłowego dla aplikacji innego klienta?
Jaki byłby dla mnie najlepszy sposób radzenia sobie z tym scenariuszem?
- Do kogo należy kod źródłowy aplikacji?
- Czy muszę podać kod źródłowy klientowi, który zapłacił za opracowanie?
- Jeśli muszę, czy mogę zachować jego kopię i wykorzystać ją później?
- Czy muszę prosić klienta o ponowne użycie kodu?
- Czy muszę tutaj pracować z jakimś modelem licencjonowania. I czy pierwszy klient zapłaci tylko określoną część projektu, abym mógł ponownie użyć kodu bez żadnych obaw?
Mam nadzieję, że wyjaśniłem swoją sytuację. Czekam na twoje odpowiedzi.
źródło
Odpowiedzi:
Przed rozpoczęciem projektu powinieneś zdecydować , kto zachowa własność kodu.
Jeśli pozwolą ci zachować własność, możesz używać go w innych projektach. Jeśli później chcą przejąć na własność, jest to punkt negocjacji.
źródło
Ponieważ nie masz jeszcze umowy, przed podpisaniem ostatecznej umowy musisz rozwiązać te problemy z klientem. Z mojego zrozumienia, stanie się tak, jeśli klient zgodzi się z twoimi szacunkami na czas i koszt, więc powinieneś pomyśleć o rozmowie z klientem teraz, wraz z wymaganiami. Są to rzeczy, które często są zawarte w takim dokumencie. To, co jest w zestawie, powinno być akceptowalne zarówno dla ciebie, jak i osoby płacącej za produkt, chociaż w zależności od osoby lub organizacji możesz nie uzyskać wszystkiego, czego chcesz.
Jeśli nie masz dużego doświadczenia w pisaniu umów lub masz bardzo szczegółowe pytania, najlepiej zapytać prawnika, który specjalizuje się w prawie umów i prawie gospodarczym - wiedziałby, czy to, co napisałeś sąd powinien być problem. Nie chcesz, aby błąd w umowie spowodował później problemy.
źródło
Dotychczasowe odpowiedzi były doskonałe. Z całego serca zgadzam się z radą, aby:
W tej sytuacji wiesz już, że „podstawowa funkcjonalność aplikacji będzie dostępna dla innych klientów”, i jestem pewien, że ty (i inni) doświadczyłeś już sytuacji, w których znasz podstawowe funkcje lub ramy - bądź będą dostępne w Internecie, na urządzeniach mobilnych, komputerach stacjonarnych lub w inny sposób. Mam na myśli naprawdę, dlaczego nie mielibyśmy ponownie użyć czegoś, o czym wiemy, że działa i znamy się na tym? Prawdopodobnie wszyscy robimy to cały czas.
To może nie działać dla ciebie, ale działało dla mnie przez lata:
W tej sytuacji, z pomocą prawnika, możesz wyjaśnić, że Twoi klienci płacą za wszystko zbudowane w oparciu o tę podstawową funkcjonalność, którą udostępniasz, są właścicielami tej modyfikacji, ale nie podstawa, i nadal możesz swobodnie rozwijać się dla innych w podobny sposób.
Jeśli klient żąda wyłączności użytkowania, wtedy możesz zaoferować im to w cenie, która wypłaca Ci do czasu, wysiłku i niemożność sprzedania go nikomu innemu w przyszłości.
Minusem jest oczywiście to, że rozwijasz coś za darmo. Musisz być pewien, że będzie można go ponownie wykorzystać i że inni ci zapłacą, w przeciwnym razie jest to zły hazard. Ale jeśli planujesz być niezależnym programistą przez jakiś czas i masz bazę klientów - a przynajmniej chcesz - ten sposób myślenia może być czymś do rozważenia na dłuższą metę.
I porozmawiaj z prawnikiem!
źródło
To zależy od umowy. Ogólnie rzecz biorąc, musisz zapytać klienta o tak zwaną wyłączność . Na przykład możesz zapłacić znacznie więcej za wyłączne programowanie (a wtedy klient będzie właścicielem kodu); możesz też powiedzieć im, że klient będzie musiał zapłacić mniej, ale legalnie jesteś właścicielem źródła. Możesz dostarczać / instalować wersję binarną oprogramowania dla klientów, aby klient musiał przyjechać do ciebie w celu modyfikacji.
Zasadniczo przechowywanie kopii nie jest nielegalne / nieetyczne. Możesz go użyć, gdy klient prosi o dalszy rozwój. Jednak rozpowszechnianie kodu (do kogoś innego), jeśli umowa była wyłączna, jest niewłaściwe.
Nie tylko z punktu widzenia ponownego wykorzystania kodu w inny sposób, proces licencjonowania musi odbywać się w celu zdefiniowania wszystkich pozycji klienta i twoich obaw. Musisz więc uzyskać licencję niezależnie od tego, czy umowa jest jednostronna. Ponadto należy uwzględnić postanowienia dotyczące późniejszego rozwoju tego samego klienta.
źródło
However, distributing code (to someone else) if the deal was exclusive, is not right.
tzn. jeśli opracowałeś kod wyłącznie dla klienta dystrybuującego go do kogoś innego, to nie jest właściwe!alternatively you can tell them customer will have to pay less but you are legally owning the source
- jaki jest sens niezgody?Zawsze możesz używać w swoim kodzie innych bibliotek, na przykład open source. Oczywiście klient nie będzie miał praw autorskich do nich. W szczególnym przypadku możesz użyć bibliotek napisanych przez ciebie. Klient płaci za dostosowanie - tę część, która jest zaprojektowana dla niego i jego potrzeb biznesowych. Wszystko, co nie jest specyficzne dla użytkownika i może być używane w wielu projektach, może być Twoją własną biblioteką. Nie widzę tam żadnego problemu.
Problemem może być ponowne użycie interfejsu lub logiki biznesowej, a nawet odsprzedanie tego samego projektu innej osobie. Kod narzędziowy jest czymś, czego klient zwykle nie jest świadomy i też go nie obchodzi.
źródło
Inne odpowiedzi upraszczają sprawy. Nie chcę mieć pełnej odpowiedzi, tylko wskazać kilka rzeczy.
źródło