Podobnosti mezi kontrolou smluv a laděním podle právníka a bývalého IT inženýra
Hlavní náplní práce takzvaného “firemního právního poradce” je kontrola a úprava smluv, které firma uzavírá každý den s klienty a obchodními partnery. A tato kontrola a úprava vyžaduje nezbytně “osobu dobře obeznámenou s právem a daným obchodním odvětvím”. Vysvětlíme, proč je tomu tak.
Avšak následující vysvětlení může být obtížně srozumitelné pro ty, kteří nejsou inženýry nebo nemají zkušenosti s programováním. Naše právní kancelář Monolith je vedená právníkem, který je bývalým IT inženýrem s podnikatelskými zkušenostmi. Je to tedy “článek vysvětlující kontrolu a úpravu smluv cílený na manažery s zkušenostmi v inženýrství a programování, vedený právní kanceláří, jejíž ředitelem je bývalý IT inženýr a podnikatel”.
A v tomto kontextu je kontrola a úprava smluv práce velmi podobná takzvanému “debuggingu”.
- Co je to vlastně “bug”
- Jaká je práce “debuggingu”
- Jak smlouvy definují algoritmy
- Jaká je práce při úpravě smlouvy
Začneme tedy od základů, které jsou pro inženýry “samozřejmé”, a pokračujeme v následujícím vysvětlení.
Co jsou to „chyby“ a „ladění chyb“?
Bug není “porucha PC”
Když se řekne “bug”, někteří z vás si možná představí situaci, kdy pracujete na PC a z počítače začne vycházet kouř a obrazovka začne zobrazovat nesmyslné věci… Ale PC v zásadě “dělá to, co mu bylo řečeno”. To platí i v případě, kdy dojde k výskytu bugu. Jinými slovy, “bug” je situace, kdy:
- PC dělá to, co mu bylo řečeno, ale
- pro uživatele je toto chování “neočekávané”
Toto je fenomén, který označujeme jako “bug”.
Proč dochází k “neočekávanému chování”
Přemýšlejme například o chybě “procházení zdí” v akční hře typu Mario.
Marioův skok je kvadratická funkce. Akcelerace, rychlost, souřadnice. Avšak, i když je to kvadratická funkce, můžeme například rozdělit X na nekonečně malé části, jako je “Jaká je hodnota Y pro X=1.76582?”, ale v případě videohry nemůžeme čas rozdělit na nekonečně malé části. To proto, že obrazovka se přepíná pouze 30krát za sekundu. Takže v podstatě Mario “teleportuje” 30krát za sekundu.
V tomto kontextu, představme si situaci, kdy “když Mario skočí, odrazí se od zdi nahoře”. To znamená, že
- v předchozím okamžiku byl Mario ve vzduchu,
- v dalším okamžiku se Mariova souřadnice stane součástí zdi.
Toto je ten případ.
V takovém případě můžeme určit, že “Mario se během skoku srazil se zdí nahoře”. Takže pokud to řekneme přirozeným jazykem,
Pokud je Mariova souřadnice uvnitř zdi, provede se odraz (※1)
Tímto způsobem můžeme napsat program, který umožňuje realizovat proces “když Mario skočí, odrazí se od zdi nahoře”.
※1 Vypadá to správně, pokud to napíšeme takto. A skutečně, za “určitých podmínek” je tento proces správný.
Ale pokud o tom pečlivě přemýšlíme, může se také stát následující situace (※2).
V tomto případě, okamžik “kdy je Mariova souřadnice uvnitř zdi” neexistuje, a proto se odraz neuskuteční a Mario prostě projde zdí.
Toto je příklad “chyby”. I když dojde k “chybě procházení zdí” z těchto důvodů, neznamená to, že PC je porouchané. PC se chová přesně tak, jak mu bylo řečeno, a to, že toto chování je “neočekávané” nebo “chyba”, je hodnocení člověka. A tato “chyba” vzniká, protože algoritmus není vhodný.
“Zvažování možnosti výskytu neočekávaného chování”
Avšak, zda se během skutečné hry objeví výše uvedený “prolomení zdi” nebo ne, nelze určit pouze abstraktním uvažováním, jak je uvedeno výše. Zda může dojít k “prolomení zdi”, závisí na:
- jaká je skoková síla (počáteční rychlost) Maria, existují nějaké předměty, které zvyšují skokovou sílu?
- jaká je minimální tloušťka zdi v nejtenčím místě?
To závisí na těchto podmínkách. Záleží na tom, zda může nastat situace jako v případě ※2. Pokud situace ※2 není možná, pak program ※1 nemá žádný problém.
Co znamená práce spojená s “laděním chyb”?
Takže pro provádění práce spojené s “laděním chyb”, jinými slovy, nalezení a opravení chyb, je třeba:
- Pochopit, jaký algoritmus program používá (výše uvedený ※1 je v přirozeném jazyce, ale v praxi je program napsán v jeho vlastním jazyce, což činí jeho čtení obtížným)
- Zvážit, za jakých podmínek program funguje (zkoumat například sílu skoku nebo tloušťku zdi)
- Zkontrolovat, zda nedochází k neočekávanému chování
Tento proces je tedy nezbytný.
Jak probíhá kontrola smluv
Kontrola smluv je podobná tomuto procesu. Smlouva je v podstatě nástroj, který reguluje, jaké práva a povinnosti vznikají pro strany, označované jako A a B, v případě možných budoucích událostí, a jak budou obě strany následně jednat. V tomto smyslu lze smlouvu považovat za “program regulující skutečný svět”. Například,
Pokud nastane situace XY, strana A zaplatí straně B odškodnění ve výši 1 milionu korun.
Smlouvy, které stanovují taková pravidla, definují podmínky a důsledky pro možné budoucí události.
A právě kontrola tohoto “programu regulující skutečný svět”, zjišťování případných problémů a jejich oprava, je procesem velmi podobným “debuggingu”.
V smlouvě není uveden celkový obraz algoritmu
Existuje však jeden bod, který je velmi důležitý, ale pro ty, kteří se nezabývají právem, může být obtížné ho pochopit. Smlouva je dokument, který stanovuje pouze “část” algoritmu, který řídí vztahy mezi stranami. Jinými slovy, pouhým čtením smlouvy nemůžete zjistit, jaký algoritmus řídí vztah mezi vámi a druhou stranou.
Například když kupujete použité CD v obchodě, obchod a zákazník neuzavírají něco jako “kupní smlouvu”, ale pokud je na disku CD škrábanec, který způsobuje, že CD nelze přehrát na přehrávači, budete chtít si stěžovat v obchodě a očekáváte, že obchod na to bude reagovat. To není jen otázka “protože je to služba”, ale teoreticky:
- I bez smlouvy je uzavřena kupní smlouva
- Občanský zákoník (japonský Občanský zákoník) stanovuje, že prodejce má záruční odpovědnost za vady u specifických zboží, jako jsou použité CD
- Proto algoritmus stanovený občanským zákoníkem funguje mezi obchodem a zákazníkem a obchod nese záruční odpovědnost za vady
To je logika. A “smlouva” je dokument, který přepisuje algoritmus definovaný zákony jako občanský zákoník. Například, pokud je mezi obchodem a zákazníkem uzavřena smlouva, která stanovuje, že “obchod nepřijímá žádné stížnosti na vady CD po prodeji”, pak:
- Kupní smlouva je uzavřena
- Občanský zákoník stanovuje, že prodejce má záruční odpovědnost za vady v této smlouvě
- Ale podle ustanovení smlouvy je princip 2 přepsán a obchod nemá záruční odpovědnost za vady
To je to.
Smlouva “přepisuje” zásady občanského zákona
To platí i pro smlouvy uzavřené mezi společnostmi, jako je vývoj systémů. Například, pokud je uzavřena smlouva o vývoji systému na základě subdodávky mezi stranami A a B,
- je jasně uzavřena smlouva o subdodávce tím, že se uzavře tato smlouva
- V případě smlouvy o subdodávce vzniká na straně dodavatele záruka za vady podle ustanovení občanského zákoníku
- Pokud je v smlouvě ustanovení o záruce za vady, toto ustanovení přepisuje zásadu občanského zákoníku uvedenou v bodě 2. Například, pokud je stanovena záruka za vady na delší dobu než je zásada občanského zákoníku, platí toto ustanovení po dobu jeho platnosti
Toto je struktura. Jinými slovy, i když smlouva konkrétně nestanoví záruku za vady, záruka za vady vzniká.
Toto není omezeno pouze na subdodávky a vývoj systémů, ale je to obecná teorie týkající se všech smluv uzavřených společnostmi, jako je převod akcií, získávání financí dluhem (půjčka na spotřebu peněz), zaměstnání, vydání akcií atd.
Proto, pouhým čtením smlouvy nemůžete získat úplný obraz “algoritmu” regulujícího vztah mezi druhou stranou a vaší společností. Abychom pochopili celý obraz, musíme rozumět “výchozímu algoritmu” stanovenému zákony, jako je občanský zákoník. Smlouva je pouze něco, co “přepisuje” tento “výchozí algoritmus”.
Nelze provést “ladění chyb”, pokud nedokážeme předvídat události, které se mohou v budoucnosti vyskytnout
Porozumění algoritmu samo o sobě nestačí k ověření, zda “nebude dojít k neočekávanému chování v důsledku tohoto algoritmu”. Stejně jako v případě “chyb” ve hrách, algoritmus je v zásadě abstraktní koncept a pokud nedokážeme předvídat, jaké události se mohou v budoucnosti vyskytnout, nemůžeme ověřit, zda “nebude dojít k neočekávanému chování, pokud se takové události vyskytnou”.
Toto je zvláště závažný problém v případě nových produktů, jako jsou aplikace nebo služby, nebo nových obchodních modelů. Pokud se rozhodnete rozvíjet podnikání s těmito produkty nebo modely, je těžké předvídat, co se může v budoucnosti stát, pokud nemáte znalosti v daném oboru. Navíc, zvláště v případě smluv mezi společnostmi, obě strany, včetně vaší vlastní společnosti, jednají na základě určité ekonomické racionality. Proto je pro předpověď budoucích událostí a chování druhé strany, které je způsobí, nezbytné také myšlení založené na teorii her v oblasti podnikového řízení.
Zda je něco “neočekávané” záleží také na rozhodnutí managementu
Stejně jako je na člověku, nikoli na počítači, rozhodnout, zda je určitý jev “chybou”, také rozhodnutí, zda je určitý výsledek smlouvy “neočekávaný”, není pouze otázkou právních záležitostí, ale také otázkou rozhodnutí managementu.
Například, může se stát, že algoritmus “podle zásad občanského zákoníku” je pro určitý podnik v určitém oboru nepřijatelný. Ačkoli se to liší od předchozích příkladů, občanský zákoník například stanoví výchozí algoritmus, že “převedení pověření na jinou osobu je porušením smlouvy”. Ale může být případ, kdy “pro určitou společnost je v určitém oboru předpokládáno, že se samozřejmě využije subdodavatel”. V takových případech by mělo být nemožné přijmout smlouvu, která znemožňuje převedení pověření, tedy
- smlouvu, která neuvádí nic o možnosti převedení pověření (v tomto případě se, jak bylo uvedeno výše, uplatňují zásady občanského zákoníku)
- smlouvu, která výslovně uvádí, že převedení pověření je nemožné
i kdyby to bylo “podle zásad občanského zákoníku”, bylo by to nemožné.
Navíc, v managementu je vždy riziko, že “pokud dojde k určité události, budete nuceni nést odpovědnost”. Smlouva, která pro vaši společnost “neobsahuje žádné riziko”, v zásadě neexistuje. Zda toto riziko přijmout či nikoli, je nakonec rozhodnutí managementu. Rozhodnutí managementu je na manažerech, nikoli na konzultantech, jako jsou právní poradci, ale konzultanti by měli poskytnout dostatečné informace potřebné pro rozhodnutí managementu,
- rizika, která není třeba zvlášť zdůrazňovat
- rizika, jejichž přijetí by pro danou společnost znamenalo závažné rozhodnutí, v některých případech by bylo potřeba schůzky atd.
Tato rizika musí být zdůrazněna. Pro nastavení této “intenzity” je, stejně jako v případě konzultantů v jiných oblastech, také potřeba, aby právník provádějící kontrolu smlouvy měl určitý smysl pro “management”.
Shrnutí
Jak jsme viděli, kontrola a úprava smluv zahrnuje především následující úkoly:
- Pochopit, jak jsou zásady občanského zákoníku (japonského Občanského zákoníku) a dalších přepsány smlouvou a jakým výsledným algoritmem se stávají
- Zvážit, jaké události mohou nastat v budoucnu podle tohoto algoritmu
- Zkontrolovat, zda se nevyskytnou neočekávané chování
A tyto úkoly jsou:
- Těžké pro ty, kteří nerozumí právu
- Těžké pro ty, kteří nerozumí obsahu podnikání, jako je aplikace nebo webová služba, kterou smlouva reguluje, nebo obchodní schéma
- Těžké pro ty, kteří nemají určité porozumění obsahu dané společnosti nebo podnikání, nebo obchodního smyslu
To je důvod, proč je kontrola a úprava smluv tak “odborná”.
Informace o tvorbě a revizi smluv naší kanceláří
Právnická kancelář Monolis, která se specializuje na IT, internet a obchod, nabízí svým klientům a poradenským společnostem služby jako tvorba a revize různých smluv.
Pokud máte zájem, podívejte se prosím na podrobnosti níže.
Category: IT
Tag: ITSystem Development