Podobieństwa między sprawdzaniem umów a debugowaniem wyjaśnione przez prawnika, byłego inżyniera IT
Podstawowym zadaniem tzw. “radcy prawnego firmy” jest sprawdzanie i poprawianie umów, które firma zawiera na co dzień z klientami i partnerami biznesowymi. Tego rodzaju sprawdzanie i poprawianie nie może być jednak w pełni przeprowadzone bez osoby, która jest dobrze zorientowana zarówno w prawie, jak i w danym obszarze działalności. Wyjaśnię, dlaczego tak jest.
Jednakże, poniższe wyjaśnienie może być trudne do zrozumienia dla osób, które nie są inżynierami lub nie mają doświadczenia w programowaniu. Kancelaria prawna Monolith jest kancelarią prawną, której dyrektorem jest były inżynier IT z doświadczeniem w zarządzaniu firmą. Jest to artykuł wyjaśniający sprawdzanie i poprawianie umów, skierowany do menedżerów z doświadczeniem w inżynierii lub programowaniu, z pozycji kancelarii prawnej kierowanej przez byłego inżyniera IT i menedżera firmy.
Na tej podstawie, sprawdzanie i poprawianie umów jest pracą podobną do tzw. “debugowania”.
- Co to jest “bug”
- Jaka jest praca “debugowania”
- Jak umowy definiują algorytmy
- Jaka jest praca poprawiania umów
Zaczynamy od rzeczy, które dla inżynierów są “oczywiste”, ale poniżej wyjaśniamy.
Co to są „błędy” i „debugowanie”?
Błąd to nie „awaria komputera”
Można myśleć, że słowo „błąd” oznacza, że podczas pracy na komputerze z maszyny zaczyna wydobywać się dym i ekran zaczyna wyświetlać dziwne obrazy. Jednak komputer zasadniczo działa „zgodnie z poleceniami”. To samo dotyczy sytuacji, gdy występuje błąd. Innymi słowy, „błąd” to:
- Komputer działa zgodnie z poleceniami, mimo to
- Dla użytkownika to działanie jest „niezgodne z oczekiwaniami”
To jest zjawisko.
Dlaczego występują „działania niezgodne z oczekiwaniami”?
Na przykład, rozważmy błąd „przejścia przez ścianę” w grze akcji typu Mario.
Skok Mario jest funkcją kwadratową. Przyspieszenie, prędkość, współrzędne. Jednak w przypadku gier telewizyjnych, choć są one funkcjami kwadratowymi, nie można podzielić X na nieskończenie wiele części, na przykład „Jaka jest wartość Y dla X=1.76582?”, ponieważ ekran zmienia się tylko (na przykład) 30 razy na sekundę. W rezultacie, Mario „teleportuje się” 30 razy na sekundę.
W tym kontekście, na przykład, gdy „Mario skacze i odbija się od ściany w powietrzu”, chodzi o sytuację, w której
- Mario był w powietrzu chwilę wcześniej, ale
- W następnej chwili, współrzędne Mario są w ścianie
To jest sytuacja.
W takim przypadku, można stwierdzić, że „Mario uderzył w ścianę podczas skoku”. Dlatego, mówiąc językiem naturalnym,
Jeśli współrzędne Mario są w ścianie, wykonaj procedurę odbicia (※1)
Jeśli napiszesz program w ten sposób, będziesz mógł zrealizować procedurę „Mario skacze i odbija się od ściany w powietrzu”.
※1 Wydaje się być prawidłowe, o ile jest napisane w ten sposób. I rzeczywiście, „pod pewnymi warunkami” ta procedura jest prawidłowa.
Jednak, jeśli dobrze się zastanowić, istnieje również taka możliwość (※2).
W tym przypadku, nie ma momentu, kiedy „współrzędne Mario są w ścianie”, więc procedura odbicia nie jest wykonywana, a Mario przechodzi przez ścianę.
To jest przykład „błędu”. Nawet jeśli wystąpi „błąd przejścia przez ścianę” z tego powodu, to nie oznacza, że komputer jest uszkodzony. Komputer działa tylko zgodnie z poleceniami, a to, że to działanie jest „niezgodne z oczekiwaniami” lub „błędem”, ocenia człowiek. A ten „błąd” występuje, ponieważ algorytm nie jest odpowiedni.
Rozważanie, czy „działanie niezgodne z oczekiwaniami” wystąpi
Jednak, czy „przejście przez ścianę” rzeczywiście wystąpi podczas gry, nie jest jasne, jeśli tylko myśleć abstrakcyjnie, jak powyżej. Czy „przejście przez ścianę” może wystąpić, zależy od
- jak duża jest siła skoku Mario (prędkość początkowa), czy istnieją przedmioty typu power-up
- jak gruba jest ściana w najcieńszym miejscu
zależy od tych warunków. W zależności od tego, czy możliwe jest wystąpienie sytuacji jak w ※2, program z ※1 nie jest problematyczny.
Jaka jest praca „debugowania”?
Dlatego, aby przeprowadzić „debugowanie”, czyli znalezienie i naprawienie błędów,
- trzeba zrozumieć, jaki jest algorytm programu (※1 jest w języku naturalnym, ale program jest napisany w specjalnym języku, więc zrozumienie go samo w sobie jest trudne)
- trzeba rozważyć, jakie warunki muszą być spełnione, aby program działał (na przykład, trzeba zbadać siłę skoku i grubość ściany)
- trzeba rozważyć, czy nie wystąpią działania niezgodne z oczekiwaniami
To jest proces, który jest potrzebny.
Jakie jest zadanie sprawdzania umów?
Sprawdzanie umów jest podobne do tego zadania. Przede wszystkim, umowa to dokument, który przewiduje możliwe zdarzenia w przyszłości dla stron umowy, określa jakie prawa i obowiązki powstają dla stron w takich sytuacjach, i co będą musiały zrobić obie strony w wyniku tych zdarzeń. W tym sensie, można powiedzieć, że umowa to “program regulujący rzeczywistość”. Na przykład,
W przypadku wystąpienia sytuacji ●●, strona A zobowiązuje się do zapłacenia 1 milion jenów odszkodowania stronie B.
Umowa, która reguluje takie zasady, definiuje warunki i skutki dla przyszłych zdarzeń.
A zadanie sprawdzania, czy “program regulujący rzeczywistość” nie ma żadnych problemów, a jeśli tak, to ich poprawianie, jest nieodłącznie podobne do “debugowania”.
W umowie nie jest opisany cały algorytm
Jednakże, w przypadku “umów”, istnieje jeden punkt, który może być trudny do zrozumienia dla osób nie specjalizujących się w prawie, ale jest niezwykle ważny. Umowa definiuje tylko “część” algorytmu regulującego relacje między stronami. Innymi słowy, czytając tylko umowę, nie można poznać pełnego obrazu algorytmu, który reguluje relacje między tobą a drugą stroną.
Na przykład, kiedy kupujesz używane CD w sklepie, sklep i klient nie zawierają czegoś na kształt “umowy kupna-sprzedaży”, ale jeśli na płycie CD jest rysa, która uniemożliwia odtwarzanie na odtwarzaczu, chciałbyś złożyć skargę do sklepu, a sklep powinien na to odpowiedzieć. To nie jest kwestia “bo to jest usługa”, ale teoretycznie:
- Nawet bez umowy, umowa kupna-sprzedaży jest zawierana
- Kodeks cywilny (Japoński Kodeks Cywilny) stanowi, że sprzedawca ma obowiązek gwarancji wady w przypadku umowy sprzedaży rzeczy określonych, takich jak używane CD
- W związku z tym, algorytm określony przez Kodeks cywilny działa między sklepem a klientem, a sklep ponosi odpowiedzialność za gwarancję wady
To jest logika. A “umowa” to coś, co nadpisuje algorytm zdefiniowany przez prawo, takie jak Kodeks cywilny. Na przykład, jeśli między sklepem a klientem została zawarta umowa, która stanowi, że “sklep nie przyjmuje żadnych reklamacji dotyczących wad CD po fakcie”, to:
- Umowa kupna-sprzedaży jest zawierana
- Kodeks cywilny stanowi, że w przypadku tej umowy, sprzedawca ma obowiązek gwarancji wady
- Jednakże, zgodnie z postanowieniami umowy, zasada 2 jest nadpisana, a sklep nie ponosi odpowiedzialności za gwarancję wady
To jest to.
Umowa “nadpisuje” zasady takie jak Kodeks Cywilny
To dotyczy również umów zawieranych między firmami, takich jak rozwój systemów. Na przykład, jeśli umowa na rozwój systemu na zasadzie zlecenia jest zawarta między stronami A i B,
- Umowa jest wyraźnie zawarta poprzez wymianę tego dokumentu,
- W przypadku umowy na zlecenie, odpowiedzialność za wady jest narzucona stronie zlecającej zgodnie z postanowieniami Kodeksu Cywilnego,
- Jeśli umowa zawiera postanowienia dotyczące odpowiedzialności za wady, te postanowienia “nadpisują” zasady Kodeksu Cywilnego z punktu 2. Na przykład, jeśli umowa zawiera klauzulę o odpowiedzialności za wady na okres dłuższy niż przewiduje to Kodeks Cywilny, to postanowienie jest ważne na ten okres.
Struktura jest taka. Innymi słowy, nawet jeśli umowa nie zawiera szczególnych postanowień dotyczących odpowiedzialności za wady, odpowiedzialność ta nadal powstaje.
To nie jest ograniczone do zleceń czy rozwoju systemów, ale dotyczy ogólnych umów zawieranych przez firmy, takich jak przeniesienie akcji, pozyskiwanie funduszy przez dług (pożyczka konsumpcyjna), zatrudnienie, wydanie akcji, itp.
W związku z tym, samo czytanie umowy nie pozwoli Ci zrozumieć całego “algorytmu” regulującego relacje między tobą a drugą stroną. Aby zrozumieć całość, musisz zrozumieć “domyślny algorytm” określony przez prawo, takie jak Kodeks Cywilny. Umowa jest tylko dokumentem, który “nadpisuje” ten “domyślny algorytm”.
Nie można “debugować”, jeśli nie jesteś w stanie przewidzieć potencjalnych przyszłych zdarzeń
Samodzielne zrozumienie algorytmu nie pozwala na weryfikację, czy “nie wystąpią nieprzewidziane działania z tym algorytmem”. Podobnie jak w przypadku “błędów” w grach, algorytmy są abstrakcyjne, a jeśli nie przewidzisz, jakie zdarzenia mogą wystąpić w przyszłości, nie będziesz mógł zweryfikować, “czy nie dojdzie do nieprzewidzianego zachowania, gdy te zdarzenia wystąpią”.
To jest szczególnie istotne w przypadku nowych produktów, takich jak aplikacje czy usługi, nowych schematów biznesowych. Kiedy rozwijasz biznes z takimi produktami lub schematami, musisz przewidzieć, co może się zdarzyć w przyszłości. To jest trudne do przewidzenia, jeśli nie masz wiedzy na temat danego obszaru. Ponadto, szczególnie w przypadku umów między firmami, zarówno druga strona, jak i twoja firma działają na podstawie pewnej ekonomicznej racjonalności, więc do przewidywania przyszłych zdarzeń i działań drugiej strony, które je spowodują, potrzebne jest również myślenie w kategoriach teorii gier w zarządzaniu firmą.
Czy jest to “nieprzewidziane” zależy również od decyzji zarządczych
Dodatkowo, podobnie jak to, że to człowiek, a nie komputer, decyduje, czy dany zdarzenie jest “błędem”, to czy dany wynik wynikający z umowy jest “nieprzewidziany” nie jest tylko kwestią prawną, ale również decyzją zarządczą.
Na przykład, może istnieć realna sytuacja, w której algorytm “zgodny z zasadami prawa cywilnego” jest nieakceptowalny dla pewnej firmy w pewnym biznesie. To jest inny przykład niż poprzednie, ale na przykład, prawo cywilne określa domyślny algorytm, że “ponowne zlecenie przez zleceniobiorcę jest naruszeniem umowy”. Jednakże, może istnieć sytuacja, w której “dla pewnej firmy, pewien biznes jest naturalnie zakładany, że będzie korzystać z podwykonawców”. W takim przypadku, umowa, która uniemożliwia ponowne zlecenie, czyli
- umowa, która nie określa nic na temat możliwości ponownego zlecenia (w tym przypadku, jak wcześniej wspomniano, stosuje się zasady prawa cywilnego)
- umowa, która wyraźnie stwierdza, że ponowne zlecenie jest niemożliwe
nie powinna być akceptowalna, nawet jeśli jest “zgodna z zasadami prawa cywilnego”.
Ponadto, w zarządzaniu zawsze istnieje ryzyko, że “będzie się odpowiedzialnym za określone zdarzenia”. Umowy, które “nie niosą ryzyka” dla firmy, zasadniczo nie istnieją. Czy akceptować to ryzyko, czy nie, jest ostatecznie decyzją zarządczą. Decyzje zarządcze podejmuje zarząd, a nie konsultanci, tacy jak prawnicy, ale konsultanci powinni dostarczyć wystarczająco dużo informacji, aby zarząd mógł podjąć decyzje zarządcze, takie jak
- ryzyko, które nie wymaga ciągłego zwracania uwagi
- ryzyko, które wymaga poważnej decyzji ze strony firmy, a w niektórych przypadkach może wymagać spotkań
muszą być wskazane z odpowiednim naciskiem. Aby ustawić ten “nacisk”, prawnik sprawdzający umowę, podobnie jak w przypadku konsultantów z innych dziedzin, musi mieć pewne poczucie “zarządzania”.
Podsumowanie
Tak więc, sprawdzanie i poprawianie umów to w dużej mierze następujące czynności:
- Zrozumienie, w jaki sposób zasady takie jak Japońskie Prawo Cywilne są nadpisywane przez umowę, i jakie są wynikające z tego algorytmy
- Rozważenie, jakie zdarzenia mogą wystąpić w przyszłości w ramach tych algorytmów
- Sprawdzenie, czy nie wystąpią nieprzewidziane zachowania
I każda z tych czynności to:
- Zadanie trudne dla osób, które nie rozumieją prawa
- Zadanie trudne dla osób, które nie rozumieją treści biznesu, takiego jak aplikacje czy usługi internetowe, które reguluje umowa
- Zadanie trudne dla osób, które nie mają pewnego poziomu zrozumienia dla firmy lub treści biznesu, czy poczucia zarządzania
To jest właśnie powód.
Sprawdzanie i poprawianie umów jest z tych powodów bardzo “specjalistyczne”.
Informacje o tworzeniu i przeglądaniu umów przez naszą kancelarię
W kancelarii prawnej Monolis specjalizujemy się w prawie IT, internetowym i biznesowym, oferując naszym klientom i firmom doradczym różnego rodzaju usługi związane z tworzeniem i przeglądaniem umów.
Zachęcamy do zapoznania się z poniższymi szczegółami, jeśli jesteś zainteresowany.
Category: IT
Tag: ITSystem Development