Może to być dla ciebie za późno, ponieważ być może już zgodziłeś się na to w umowie i mógłbyś zgodzić się na wzajemnie niezgodne warunki z różnymi klientami.
Istnieją dwa sposoby dostarczenia klientom kodu źródłowego. Własność praw autorskich i licencja.
Niektórzy klienci będą chcieli własności kodu źródłowego. Oznacza to, że pod koniec procesu zapłacą ci pieniądze, aw zamian przekażesz im prawa autorskie do stworzonego dla nich kodu. Jednym z powodów jest to, że widzą znaczny potencjał własności intelektualnej w kodzie źródłowym i mogą chcieć wycenić to w bilansie swojej firmy. W tym scenariuszu nie będziesz mieć prawa do dalszego korzystania z tego kodu źródłowego w innych projektach, chyba że uzyskasz również licencję od swojego klienta, która daje ci to prawo.
Jeśli Twój klient kupuje od ciebie produkt „z półki”, oczekuje, że otrzyma licencję na korzystanie z oprogramowania, a nie własność kodu źródłowego. Powinny spodziewać się, że sprzedajesz to samo (lub podobne) oprogramowanie wielu innym organizacjom i, mam nadzieję, że korzystają one z niższych kosztów zakupu dzięki szerszej bazie klientów.
Jednak sytuacja w tym pytaniu jest mieszanką tych dwóch.
Oto, co chciałbym móc zrobić. Udzielę klientowi licencji na wykorzystanie (i modyfikację) wspólnego kodu. Jeśli klient zapyta mnie o to, zwracam uwagę, że jest to kod współdzielony, który był już używany w wielu projektach i ma aktualne oferty na przyszłe prace, które są oparte na dalszym korzystaniu z tej pracy. zwróć uwagę, że spowodowało to mniej czasu na ten projekt dla twojego klienta i że w rezultacie zapłacili niższą cenę. Podobnie jak inne współdzielone biblioteki kodu używane w projekcie, mają one licencję na używanie tego kodu i zezwalanie innym zespołom programistycznym na rozwijanie tego i innych projektów opartych na tej bibliotece. Jeśli jednak wolą prawo własności do całego kodu, możesz utworzyć zamiennik, ale będzie to dodatkowa opłata.
W zależności od tego, co już zobowiązałeś się, być może będziesz musiał napisać funkcję zastępczą za darmo lub rozdać kod źródłowy.
Pamiętaj, że istnieją różne typy bibliotek. Standardowa biblioteka szablonów w C ++ jest dobrym przykładem biblioteki, która jest zawarta na poziomie kodu źródłowego i jest wkompilowana w plik wykonywalny projektu, który może być dość podobny do tego, w jaki sposób używałeś wspólnego kodu.