W erze cyfrowej już wszystkie pokolenia natknęły się na dwa terminy: kodowanie i programowanie. Zwykle używane zamiennie. Panuje przekonanie, że koderzy i programiści to określenia właściwie bez różnicy.
A wcale że nie. Uwaga: artykuł w przystępnym języku dla opornych.
Dzisiejszy tekst opieramy o jasne wyjaśnienie różnicy pomiędzy kodowaniem a programowaniem oraz o to, jak osiągnięcia z tych dziedzin współpracują przy tworzeniu aplikacji, stron i nie tylko. Przyjrzyjmy się razem temu, jak kodowanie odgrywa kluczową rolę w całym procesie programowania.
Nowoczesny biznes nie może istnieć bez udziału systemów IT. By jednak móc w pełni z nich korzystać, konieczne jest odpowiednie oprogramowanie. Co trzeba wiedzieć na jego temat z punktu widzenia organizacji? Na to pytanie odpowiadamy w poniższym artykule!
Czytaj dalej, a dowiesz się:
Co to jest software?
W XXI wieku słowa oprogramowanie czy program komputerowy znane są praktycznie każdemu. Nieco gorzej jest jednak z ich dokładnym zrozumieniem, gdyż obecność programów uznajemy za coś oczywistego. W końcu kupując komputer z reguły mamy do niego dołączony system operacyjny, a sprzedawcy często oferują „podstawowe” programy – np. do pracy biurowej, oglądania filmów czy zabezpieczenia przed wirusami. Do tego wiele osób dokupuje gry czy inne programy użytkowe – np. służące do tworzenia grafik lub odtwarzania muzyki. Wszystko to po zainstalowaniu po prostu działa i odpowiada na nasze potrzeby w zakresie nauki, pracy czy rozrywki. Dla przeciętnego użytkownika nie ma więc znaczenia fakt, że software – czyli po polsku oprogramowanie, to zbiór instrukcji i procedur wykonawczych oraz powiązanych z nimi danych, pozwalających komputerom i innym programowalnym urządzeniom na wykonywanie określonych funkcji.
W zasadzie pod tym zbiorczym pojęciem kryją się wszystkie programy, wykorzystywane w pracy komputera i tworzone w procesie programowania.
Po co jest oprogramowanie?
Z punktu widzenia użytkownika najważniejszy jest cel, w jakim stworzony został dany program. Co ciekawe, w zasadzie wszystkie służą do tego samego – przetwarzania danych w określony przez twórcę sposób. Skutkiem tego jest konkretny efekt, widoczny na ekranie monitora albo przesyłany dalej do urządzeń wykonawczych. Bez oprogramowania nie jest więc możliwe wydajne wykorzystanie możliwości komputerów w codziennej pracy, nauce czy rozrywce.
Z punktu widzenia użytkownika biznesowego bardzo ważne jest korzystanie z jak najlepszych programów, które pozwolą na uzyskanie maksymalnych korzyści – chociażby w postaci przyspieszenia pracy, ograniczenia błędów czy też lepszego zarządzani procesami. Bez odpowiedniego oprogramowania niemożliwa jest skuteczna automatyzacja procesów biznesowych.
Rodzaje oprogramowania
Jak już wspomnieliśmy, oprogramowanie komputerowe tworzone jest przez programistów w konkretnych celach. Dlatego też z punktu widzenia formy i przewidzianej funkcji wyróżnić można różne jego rodzaje. Jednakże dla profesjonalnych użytkowników, którzy wiedzą, jakich konkretnie rozwiązań potrzebują, dużo ważniejsza jest inna klasyfikacja – na oprogramowanie dedykowane i gotowe. Czym te się od siebie różnią?
Oprogramowanie gotowe To po prostu gotowy program lub kilka programów, narzędzi i aplikacji, które posiadają zaimplementowane rozwiązania i dają użytkownikom określone możliwości. Oczywiście produkty takie posiadają pewnego rodzaju opcje dopasowania do konkretnych przypadków poprzez odpowiednią edycję i wybór elementów, jednak są one wspólne i niezależne od klienta. Dlatego też korzystając z nich, należy się liczyć z pewnymi ograniczeniami oraz koniecznością działania w ramach konkretnych schematów narzuconych przez twórcę.
Oprogramowanie dedykowane Sposobem na pełne dostosowanie oprogramowania do potrzeb organizacji jest postawienie na rozwiązania dedykowane. Często powstaje ono w ramach pełnego procesu tworzenia programów od podstaw. Jest to zadanie trudne i czasochłonne, ale w zamian firma otrzymuje program w 100% dopasowany do swoich potrzeb i który może dalej rozwijać wraz ze swoim wzrostem oraz pojawianiem się zapotrzebowania na nowe opcje. Firmy tworzące dedykowane oprogramowanie kierują się zasadą, że stworzony program ma za zadanie zwiększyć efektywność biznesową konkretnej firmy, a nie potencjalnie wszystkich, które będą z niego korzystać.
Czytaj także: System ERP. Czym jest i kiedy należy wymienić go na nowszy model? Oprogramowanie dla firm Jednym z innych podziałów programów komputerowych jest rozróżnienie miedzy rozwiązaniami „dla firm” i dla „użytkowników indywidualnych”. W praktyce jednak rozdział między nimi jest dość płynny, gdyż wiele aplikacji sprawdzi się zarówno w przedsiębiorstwie, jak i domu. Jednocześnie jednak spora grupa programów „dla Kowalskiego” posiada swoje wersje dla odbiorców biznesowych, plus istnieje też oprogramowanie wykorzystywane tylko i wyłącznie w firmach i instytucjach. Do tej ostatniej grupy zaliczyć można różnorodne systemy ERP, BPM (Business Process Management) – jak np. Camunda, Digital Product Center czy oprogramowanie typu Digital Workload Manager i wiele innych. Często wykorzystują one przygotowane bezpośrednio dla organizacji rozwiązania – takie jak np. standard BPMN – czyli notyfikację umożliwiającą graficzne przedstawienie procesów biznesowych.
Oprogramowanie w chmurze
Każdego rodzaju oprogramowanie potrzebuje swojego nośnika. Kiedyś były to dyskietki czy płyty umieszczane bezpośrednio w komputerze, obecnie coraz popularniejsze stają się rozwiązania pozwalające na jednoczesne korzystanie z tego samego programu wielu osobom podpiętym do jednej sieci komputerowej. Może być to zarówno Internet, jak i sieć firmowa. A czym jest program w chmurze? To aplikacja zainstalowania na zdalnym nośniku – czyli z reguły serwerze, do którego dostęp można uzyskać poprzez określone oprogramowanie – najczęściej zwykłą przeglądarkę internetową. Zalety takiego rozwiązania są oczywiste – możliwość wspólnej pracy wielu osób niezależnie od miejsca i czasu, mniejsze obciążenie firmowego sprzętu komputerowego czy lepsze wsparcie IT.
Żadna firma nie może dziś działać bez wsparcia informatycznego, a kluczową rolę odgrywa w nim właśnie odpowiednie oprogramowanie. Oczywiście będzie się ono różniło w zależności od formy działalności. Warto przy tym jednak podkreślić, że coraz więcej podmiotów docenia wartość programów pozwalających na skuteczniejsze zarządzanie i optymalizację procesów biznesowych.
Szukasz partnera, który zrozumie Twój biznes i stworzy dedykowane oprogramowanie?
Ochrona swojej własności intelektualnej w świecie IT to obecnie gorący temat. Twórczość i efekty pracy ludzkiego umysłu mają kluczowe znaczenie we współczesnej gospodarce. Kreatywność i umiejętność tworzenia staje się coraz istotniejsza, zwłaszcza w porównaniu z klasyczną produkcją rzeczy w fabrykach.
Ta różnica jest szczególnie widoczna w tworzeniu oprogramowania komputerowego, gdzie ochrona praw autorskich zawsze była istotna. W końcu ważniejsze jest to co znajduje się na nośniku danych (tzn. aplikacja, która jest na nim zapisana, dane, obrazy, filmy itp.) niż sam nośnik. Zresztą w dzisiejszych czasach coraz częściej nie widzimy żadnego nośnika, np. korzystając z usług chmurowych.
Prawo dostosowało się do tej sytuacji i nie mamy problemu z tym, że prawa autorskie do programów komputerowych są chronione. Ale jak dokładnie? Stwierdziłem, że napiszę o tym kilka słów tak aby usystematyzować pewne kwestie.
Jeżeli zamiast czytać, wolałbyś posłuchać o przenoszeniu autorskich praw majątkowych do oprogramowania, albo udzielaniu licencji, która umożliwia korzystanie z takiego oprogramowania, zachęcam Cię do obejrzenia tego filmiku - moja wspólniczka Ewa Lewańska opowiada w nim o prawach autorskich w IT:
Program komputerowy jako przedmiot prawa autorskiego
Zgodnie z ustawą o prawie autorskim i prawach pokrewnych program komputerowy może być utworem, który jest chroniony podobnie jak utwory literackie. Czemu może być? Bo nie każdy program w rozumieniu informatycznym będzie spełniał ważny warunek umożliwiający uznanie go za program chroniony prawem autorskim.
Ten warunek to konieczność posiadania indywidualnych, wyróżniających go cech, wynikających z jakiegoś działania o charakterze twórczym.
Innymi słowy, samo przepisanie fragmentu kodu z portalu z gotowymi rozwiązaniami typu stackoverflow albo github nie sprawi, że staniemy się twórcami. Konieczny jest jakiś element nowatorstwa w tym co robimy – musimy dołożyć trzy grosze od siebie, uzyskać jakiś unikalny efekt naszej pracy.
Oczywiście korzystanie z stackoverflow nie jest zabronione, a wykorzystanie fragmentów innych utworów, albo nawet ich całości udostępnionej w ramach licencji open-source czy free-source nie jest zabronione. Nie przesądza również o tym, że nie stworzymy własnego utworu. Ważne jest jednak, abyśmy do tego kodu dodali jakieś własne rozwiązania.
Dlatego proste hello world napisane przez osobę uczącą się programowania nie jest utworem. Będzie bowiem miało jedynie charakter odtwórczy i będzie stanowiło powtórzenie tego co ktoś wcześniej już zrobił. Ciężko zresztą uznać, żeby hello world miało jakieś elementy twórcze, biorąc pod uwagę, że to po prostu podstawa wykorzystania poszczególnych możliwości, które daje język programowania.
Ochronie nie podlega sama struktura programu komputerowego – nie ma tu więc znaczenia to jakie metody zostały wykorzystane i jak przejrzysty jest nasz kod. To nie jest utwór – nieważne jak dobre by to było. Ochronie nie podlegają też poszczególne funkcje języka programowania, które są częścią kodu.
Program komputerowy obejmuje generalnie elementy zapisane w postaci kodu (źródłowego/wynikowego), czyli tę część aplikacji, którą piszemy. Nie oznacza to, że reszta nie jest chroniona. Pozostałe elementy aplikacji, takie jak grafiki, elementy wizualne, rozwiązania w zakresie UX, interfejs czy elementy dźwiękowe też mogą być chronione prawem autorskim, ale już nie jako program. W takim wypadku będą uznawane za utwory (oczywiście o ile mają twórczy charakter) inne niż sam program.
W ramach aplikacji mamy więc część, która jest chroniona na podstawie szczególnych przepisów dotyczących programu komputerowego, jak również inną część, która jest po prostu traktowana jak zwykłe utwory – tak jak zdjęcia wykonane przez fotografa albo muzyka napisana przez kompozytora.
Kto ma prawa do utworu jakim jest program komputerowy?
Prawa do utworu ma twórca – czyli ten, kto napisał program. Oczywiście sprawa jest prosta jednie w teorii, bo w praktyce:
Utwór może mieć wielu twórców – w takim wypadku mamy do czynienia z współtwórcami, a prawa do utworu przysługują im wspólnie (podobnie jak w przypadku współwłasności w częściach ułamkowych). Nie jest istotne dokładne ustalenie, kto napisał więcej kodu, a kto rozwiązał najtrudniejsze problemy – przyjmuje się, że prawa współtwórców do utworu są równe, chyba że ustalą inaczej, albo inaczej zdecyduje sąd. Ważne jest aby wkład każdej z osób miał charakter twórczy (czyli był czymś indywidualnym i nowym).
Utwór może składać się z innych utworów – w takim przypadku końcowy etap pracy, jakim jest finalny program, przysługuje tej osobie, która to wszystko złożyła w całość i sprawiła, że poszczególne utwory (np. wykorzystane na podstawie licencji open-source) stały się jednym końcowym dziełem. Ważne jest jednak to, aby miało to element twórczy – czyli ten programista, który to stworzył wykazał się jakąś innowacyjnością i rozwiązał pewne kwestie w sposób, w jaki nie były wcześniej rozwiązane. W innym przypadku będziemy mieli do czynienia jedynie z odtwórczą pracą, która nie będzie chroniona jako utwór.
Utwór może być napisany przez pracowników przedsiębiorstwa – w takim razie przepisy mówią wprost, że jeżeli pracownik w ramach swoich obowiązków tworzy utwór, prawa autorskie do niego przysługują pracodawcy. Ale uwaga! Dotyczy to tylko pracowników na umowie o pracę. Jeżeli ktoś np. świadczy usługi programistyczne na podstawie umowy b2b, to konieczne jest umowne przeniesienie praw autorskich do utworu na rzecz zleceniodawcą.
Co można zrobić z prawami autorskimi do programu?
Osoba, której przysługują majątkowe prawa autorskie do programu komputerowego może tymi prawami rozporządzać tak jak uzna to za stosowne. Może więc prawa sprzedać (a więc przenieść je na inną osobę) albo darować (też przenieść, tylko że za darmo). Oznacza to, że pozbędzie się tych praw.
Umowa dotycząca przeniesienia autorskich praw majątkowych powinna zostać zawarta w formie pisemnej. Inaczej będzie nieważna.
Takie przeniesienie powinno odbyć się na podstawie zawartej na piśmie umowy, w której wskazane zostaną tzw. pola eksploatacji – czyli sposoby, w jakie nabywca może korzystać z nabytych praw.
To ważne, bo sama możliwość dalszej sprzedaży programu przez nabywcę nie będzie równoznaczna np. z publikowaniem go w Internecie za darmo nieograniczonej liczbie osób, albo dokonywania w nim modyfikacji. Dlatego prawidłowe wpisanie w umowie pól eksploatacji jest bardzo ważne.
Przed jej zawarciem trzeba wiec przeanalizować to, po co nabywcy prawa autorskie do programu i w jaki sposób chce je wykorzystywać. Dopiero po odpowiedzeniu na te pytania powinniśmy przygotować umowę, w której wypiszemy poszczególne pola eksploatacji.
Standardowe pola eksploatacji, przewidziane w ustawie o prawie autorskim dotyczą prawa do:
trwałego lub czasowego zwielokrotnienia programu komputerowego w całości lub w części jakimikolwiek środkami i w jakiejkolwiek formie; w zakresie, w którym dla wprowadzania, wyświetlania, stosowania, przekazywania i przechowywania programu komputerowego niezbędne jest jego zwielokrotnienie, czynności te wymagają zgody uprawnionego; tłumaczenia, przystosowywania, zmiany układu lub jakichkolwiek innych zmian w programie komputerowym, z zachowaniem praw osoby, która tych zmian dokonała; rozpowszechniania, w tym użyczenia lub najmu, programu komputerowego lub jego kopii.
Jeśli nie chcesz, nie musisz się ich trzymać i możesz sam opisać to w jaki sposób program ma być wykorzystywany. Przepisy bowiem nie zawsze będą odpowiadały temu w jaki sposób chcemy korzystać z naszych praw. Nawet jeśli opiszemy pola eksploatacji innym, bardziej zrozumiałym dla nas językiem niż język przepisów prawa, to będzie to jak najbardziej poprawne. Ważna jest treść, a nie forma.
Przeniesienie praw autorskich oznacza, że twórca (albo inna osoba, której te prawa przysługiwały) traci nad nimi kontrolę – przynajmniej na polach eksploatacji, które zostały wskazane w umowie. To znaczy, że nic więcej już nie może z nimi zrobić – sprzedał je i nie należą już do niego.
Dlatego jest też możliwość udzielenia licencji – czyli umożliwienia komuś korzystanie z praw autorskich (nawet w zakresie dalszego sprzedawania licencji i uzyskiwania z tego tytułu zysków) bez tracenia całości praw do utworu.
Przepisy nie wymagają tego aby taka umowa (licencji) musiała mieć formę pisemną – ale z uwagi na konieczność zabezpieczenia swoich interesów warto aby była w jakiś sposób udokumentowana – na piśmie, w treści wiadomości e-mail albo w formie dokumentu, którego treść akceptuje się na stronie internetowej lub w samym programie komputerowym.
Umowa licencyjna też musi wskazywać pola eksploatacji, których dotyczy licencja. Nie jest więc możliwe udzielenie licencji „ogólnej” na wszystko – to do czego program będzie wykorzystywany (przez kogo, w jakim celu) powinno być w niej szczegółowo określone.
W praktyce to licencje są kluczowe, bo to one znajdują się w większości umów z klientami. Przeniesienie praw autorskich (moim zdaniem) powinno następować jedynie w przypadku gdy twórca tworzy program napisany szczegółowo pod potrzeby klienta, w sposób na tyle zindywidualizowany, że nie będzie przydatny nikomu innemu – przynajmniej z punktu widzenia zabezpieczenia biznesu twórcy oprogramowania. Taka jest przynajmniej teoria, bo w praktyce klienci niekiedy wymuszają przeniesienie praw autorskich w sytuacjach, gdy udzielenie licencji byłoby w zupełności wystarczające. Wierzę jednak, że w dobie usług chmurowych i płatnych subskrypcji takie praktyki odejdą w końcu do lamusa.
Licencje free-source lub open source
Programy komputerowe często są chronione licencjami free-source (wolne oprogramowanie) albo open-source (otwarte oprogramowanie), które pozwalają na modyfikowanie i kopiowanie kodu źródłowego oraz dzielenie się nim.
Celowo użyłem tu słowa chronione, bo to, że coś jest free-source lub open-source nie oznacza jeszcze, że możemy zrobić z tym programem co tylko chcemy – z reguły zawierają one jakieś, chociaż najbardziej podstawowe ograniczenia, przykładowo dotyczące tego, że jeżeli korzystamy z tego typu utworów, to dzieła powstałe na ich podstawie też powinny być udostępniane w ramach takiej samej licencji. Innym ograniczeniem jest np. konieczność podania autorów oprogramowania.
Ważna sprawa: jeżeli chcemy korzystać z wolnego oprogramowania, musimy zastosować się do zasad, które wynikają z licencji tego oprogramowania. W innym przypadku naruszymy prawa autorskie, którymi te utwory są chronione.
Mamy cały szereg różnych licencji free-source lub open-source, które mają różny zakres i pozwalają na różne rzeczy. Są to np.:
GNU GPL – znana i powszechnie stosowana w środowisku otwartego oprogramowania licencja. Oznacza, że programy można: uruchamiać (wolność 0), analizować i dostosowywać (wolność 1), rozpowszechniać (wolność 2), udoskonalać i rozpowszechniać te udoskonalenia (wolność 3). Ograniczenia? To, co zostanie stworzone na podstawie tej licencji też musi być objęte tą licencją. Kod nie może być wykorzystany w programach, które są objęte inną licencją. Ponadto, zmiana kodu powinna być ujawniona publicznie, tak aby inni mogli z niej skorzystać.
GNU Lesser General Public License – podobna licencja do GNU GPL (opisanej wyżej), ale umożliwiająca łączenie wyników pracy (utworów) także z innymi utworami, objętymi inną licencją. Dzięki temu możliwe jest aby efekty pracy, wykorzystujące utwory posiadające licencję LGPL miały inną licencję niż pierwowzór. Jednakże sam element (fragment kodu), który jest zmodyfikowanym pierwotnym programem, powinien być publicznie udostępniony w formie kodu źródłowego.
CC0 – oznaczenie Creative Commons 0, które nie jest klasyczną licencją, ale przekazaniem utworu do domeny publicznej. Oznacza to, że z utworu można korzystać bez ograniczeń, trzeba jednak pamiętać o tym, że w Polsce istnieją jeszcze autorskie prawa osobiste – co skutkuje tym, że musimy podać autora utworu jeżeli go wykorzystujemy.
Apache License – ta licencja umożliwia wykorzystanie programu użytkownika w jakimkolwiek celu (także związanym z prowadzoną działalnością), zarówno niezarobkowym jak i zarobkowym. Warunkiem jest umieszczenie wzmianki o pierwotnym twórcy. Licencja nie wymaga aby utwory zależne były również rozpowszechniane na podstawie tej samej licencji.
. Jeśli chcesz dowiedzieć się więcej na temat prawnych aspektów korzystania z rozwiązań open source, a zwłaszcza do łączenia open source z rozwiązaniami komercyjnymi, zapraszam Cię tutaj
To chyba wszystkie najważniejsze rzeczy dotyczące praw autorskich do programów komputerowych. Oczywiście to tylko podstawy – sam temat praw autorskich i świata IT jest właściwie niewyczerpany, zwłaszcza jeśli weźmiemy pod uwagę różne regulacje prawne w poszczególnych krajach, jak również dynamiczny rozwój branży. Coś na ten temat więc na pewno się jeszcze kiedyś pojawi na blogu.
Interesuje Cię problematyka praw autorskich do programów komputerowych? Jeśli masz jakieś dodatkowe pytania, możesz śmiało się ze mną skontaktować, pisząc na kontakt@bytelaw.pl, albo korzystając z formularza kontaktowego tutaj .
#umowyprawoautorskie #umowa #programkomputerowy #aplikacja #prawadoprogramu #licencja #sprzedażprogramu #opensource #freesource
Leave a Comment