Ocena złożoności mechaniki umów
Wprowadzenie
Umowy w sektorze AEC (architecture engineering and construction, czyli w architekturze, inżynierii i budownictwie – przypis red.) wyróżniają się pewną szczególna cechą, na którą rzadko zwraca się uwagę podczas analizowania ich treści. Ta cecha dotyczy wszystkich typów i rodzajów umów: umowy mogą być proste i „łatwe w stosowaniu” ale też mogą być bardzo złożone i niezwykle uciążliwe w codziennej pracy. Intuicyjnie możemy przeczuwać, że umowy na typowe zlecenia są łatwiejsze, a umowy na realizację dużych zakresów lub skomplikowanych projektów są bardziej złożone – tak też jest w praktyce, choć nie jest to regułą.
Stopień złożoności umowy może decydować o tym, jakie zasoby wykonawca powinien delegować do administrowania procesami na kontrakcie. Niektóre umowy, np. takich zamawiających jak Gaz-System lub CPK są niezwykle skomplikowane i oprócz ryzyk kontraktowych wynikających ze specyfiki robót i warunków kontraktu, wewnętrzna logika postanowień i procedur zaszytych w samej umowie dodaje kolejną warstwę ryzyk do całego procesu. Administrowanie takim kontraktem staje się szczególnie wymagające, ponieważ wykonawca może narazić się na odpowiedzialność kontraktową nie tyle w wyniku jakiegoś zaniedbania technicznego, ale np. w wyniku niedochowania jakiegoś wielokrotnie złożonego warunku terminowego. Taka złożoność umowy może być celowa w sytuacji, gdy zamawiający ma jakieś szczególne wymagania proceduralne, ale też zdarza się, że ta złożoność jest niezamierzona i wynika z nadgorliwości.
Jednak niezależnie od intencji zamawiającego złożoność umowy jest realnym wskaźnikiem, który przekłada się na to, jakie wykonawca powinien oddelegować zasoby prawne i administracyjne do obsługi kontraktu. Prowadząc badania i eksperymenty nad automatyzacją oceny ryzyk kontraktowych postanowiliśmy zrobić przegląd miar złożoności i przybliżyć to zjawisko polskiej branży.
Złożoność mechaniki umowy.
Złożoność mechaniki umowy odnosi się do stopnia skomplikowania struktury i logiki kontraktu – czyli tego, jak liczne i zawiłe są jego klauzule oraz powiązania między nimi (np. warunki zależne, wzajemne odwołania, wyjątki i zasady wykonania). Pytanie które sobie zadaliśmy brzmi, czy istnieje uznana miara lub metoda ilościowej oceny takiej złożoności, a jeśli nie – jakie były dotychczasowe próby jej ujęcia.
Okazuje się, że w ostatnich latach literatura naukowa i branżowa coraz częściej analizuje złożoność kontraktów i rozpoznaje takie zjawisko jako przedmiot badań. Przykładowo, Hwang i Jennejohn (2019) zauważają, że badacze opracowują nowe teorie i narzędzia empiryczne do badania złożoności umów [1]. Mimo rosnącego zainteresowania, nie wykształcił się jeden powszechnie przyjęty wskaźnik. Istnieje jednak szereg proponowanych podejść i miar – od prostych metryk (np. długości dokumentu) po wielowymiarowe modele uwzględniające powiązania klauzul i obciążenie poznawcze. Poniżej przedstawiam przegląd tych koncepcji, obejmujący zarówno literaturę akademicką, jak i źródła branżowe.
Definicje złożoności kontraktu w literaturze
W literaturze przedmiotu złożoność kontraktu bywa definiowana na różne sposoby, zwykle jednak akcentuje się liczbę elementów umowy i złożoność ich interakcji:
- Liczba klauzul i zależności: Hagedoorn i Hesen (2009) proponują definiować złożone kontrakty jako takie, które „zawierają wiele elementów (klauzul) o relatywnie dużej liczbie współzależności” oraz nakładają istotne obciążenie poznawcze na strony[2]. Innymi słowy, im więcej postanowień i im bardziej są one ze sobą powiązane (warunkują się wzajemnie, odsyłają do siebie), tym większa złożoność.
- Interaktywność postanowień: W podobnym duchu, jedno z nowszych opracowań teoretycznych wskazuje, że złożoność umowy to w istocie stopień interakcji między jej postanowieniami [3]. Taka definicja, inspirowana teorią złożoności (complexity theory), podkreśla dynamiczną sieć powiązań wewnątrz kontraktu.
- Wielość warunków i planów awaryjnych: Ekonomiści często utożsamiają złożoność z liczbą koniecznych do uwzględnienia scenariuszy awaryjnych (kontyngencji). Przykładowo Eggleston (2000) zauważa, że złożone kontrakty w modelach ekonomicznych zwykle przewidują wiele stanów umów i odpowiadających im scenariuszy. . Zgodnie z tym podejściem kontrakt jest tym bardziej złożony, im więcej różnych „co jeśli…” szczegółowo reguluje.
- Trudność zrozumienia (klarowność): Złożoność można też rozumieć jako odwrotność przejrzystości – kontrakt jest złożony, gdy jest trudny do zrozumienia. Henderson (2021) dzieli to na dwa wymiary: jakościowy (język i struktura utrudniająca pojmowanie) oraz ilościowy (czysta objętość tekstu) legalevolution.org legalevolution.org. Złożoność jakościowa przejawia się np. w niejasnych lub wieloznacznych klauzulach, żargonie prawniczym i „legalese” – czyli cechach, które powodują, że nawet istotne postanowienia są niezrozumiałe dla laika legalevolution.org legalevolution.org . Z kolei złożoność ilościowa to nadmierna długość i wielowarstwowa struktura (liczne załączniki, dokumenty odsyłane, itp.) przekraczające możliwości percepcji użytkownika legalevolution.org.
Podsumowując, wspólnym mianownikiem definicji jest, że złożoność umowy rośnie wraz z:
(a) rozmiarem kontraktu (liczbą klauzul, stron, wariantów), oraz
(b) stopniem zawiłości powiązań między tymi elementami (czyli jak bardzo warunki i wyjątki się ze sobą przeplatają). Niektórzy dodają trzeci wymiar:
(c) trudność percepcyjna – ile wysiłku wymaga odczytanie i poprawne zinterpretowanie całości umowy.
Obiektywne miary złożoności umowy
Najprostsze podejścia starają się mierzyć złożoność kontraktu ilościowo, poprzez pewne policzalne cechy dokumentu:
- Długość dokumentu – najczęściej mierzona liczbą stron lub słów. Intuicyjnie, im dłuższa umowa, tym więcej zawiera postanowień i potencjalnie zawiłości. W wielu badaniach przyjmowano długość jako surogat złożoności. Na przykład Robinson i Stuart (2007) zmierzyli złożoność umów wielkością pliku (w bajtach) – dłuższe pliki oznaczały bardziej rozbudowane kontrakty[4]. Inne analizy używały po prostu liczby paragrafów/klauzul lub stron. Choć takie metryki są łatwe do ustalenia, mają charakter bardzo ogólny – wychwytują skalę kontraktu, ale nie jego strukturę logiczną.
- Liczba zdefiniowanych scenariuszy – jak wiele różnych sytuacji i wyników reguluje umowa. To podejście wynika z teorii kontraktów niekompletnych. Stowarzyszenie IACCM (International Association for Contract & Commercial Management) sugeruje mierzyć złożoność liczbą rozstrzygnięć, które umowa explicite przewiduje. Ich badania wskazują, że kontrakty obejmujące mniej wariantów wyników (czyli bardziej ogólne) są łatwiejsze w weryfikacji i rzadziej prowadzą do sporów. Innymi słowy, kontrakt próbujący drobiazgowo przewidzieć wszystko staje się przez to dłuższy i trudniejszy w obsłudze.
- Gęstość zależności między klauzulami – to miara strukturalna, patrząca na sieć powiązań w tekście umowy. Obejmuje m.in.: liczbę odesłań jednej klauzuli do innych części umowy, częstość użycia warunków typu „jeżeli X, to Y”, występowanie wyjątków („z zastrzeżeniem, że…”) itp. Choć trudno podać jedną liczbę, można wyobrazić sobie wskaźnik typu liczba wewnętrznych odwołań na stronę tekstu. W praktyce zwracają na to uwagę eksperci – np. definicja „Contract Complexity” wg firmy Gatekeeper explicite wymienia „gęstość wzajemnych zależności między klauzulami” jako jeden z czynników złożoności[5]. Kontrakt o wysokiej gęstości takich powiązań jest jak sieć, w której zmiana lub interpretacja jednej części wymaga ciągłego odwoływania się do innych fragmentów.
- Liczba dokumentów i załączników – umowy korporacyjne często składają się z wielu powiązanych dokumentów (główna umowa + załączniki, aneksy, odrębne warunki). „Zagnieżdżone” dokumenty i cross-referencje zwiększają złożoność, bo aby pojąć całość, trzeba scalić informacje z różnych miejsc. Wspomniany Gatekeeper wskazuje liczbę osobnych dokumentów składających się na całość porozumienia jako czynnik komplikujący umowę. Podobnie Cummins (IACCM) opisywał przypadek umowy, która nominalnie miała 14 stron, ale odsyłała do 14 innych zbiorów warunków – jeden z nich liczył 82 klauzule – co efektywnie tworzy kilkudziesięciostronicową układankę trudną do objęcia naraz[6].
Warto zauważyć, że powyższe obiektywne miary koncentrują się na rozmiarze i strukturze formalnej kontraktu. Są one relatywnie proste do wyliczenia (np. automatycznie przez oprogramowanie do zarządzania umowami), lecz każda z nich uchwytuje tylko jeden wymiar. Dlatego najnowsze podejścia starają się łączyć różne aspekty w bardziej złożone wskaźniki lub profile złożoności.
Subiektywne i językowe wskaźniki złożoności
Drugim nurtem są miary oceniające trudność zrozumienia umowy – czyli to, na ile przeciętny odbiorca (lub nawet profesjonalista) jest obciążony lekturą i analizą kontraktu:
- Czytelność języka (readability) – umowy pisane są często skomplikowanym językiem prawnym. Istnieją klasyczne wskaźniki mierzące złożoność językową tekstu, takie jak Flesch–Kincaid czy Gunning Fog Index, które bazują na długości zdań i trudności słownictwa. Stosowano je również do tekstów prawnych. Przykładowo, duże badanie obejmujące 2 mln umów zbadało ich czytelność i potwierdziło, że większość kontraktów ma bardzo niski wynik w skali czytelności dla przeciętnego odbiorcy (czyli są pisane złożonym, technicznym językiem). W kontekście złożoności mechaniki umowy, niski poziom czytelności może sygnalizować, że tekst jest trudny do ogarnięcia, co faktycznie zwiększa złożoność (bo strona może nie zrozumieć wszystkich niuansów i zależności).
- Obciążenie poznawcze czytelnika – przywołani wcześniej Hagedoorn i Hesen sugerują mierzyć złożoność również od strony odbiorcy. Proponują oni subiektywny wymiar złożoności: stopień, w jakim umowa obciąża procesy poznawcze stron (wymaga intensywnego przetwarzania informacji, analizowania wielu zależności naraz). W praktyce próba zmierzenia tego polegała na ocenie umów przez ekspertów lub samych sygnatariuszy pod kątem trudności ich zrozumienia i zarządzania nimi. Ich badania na prawie 400 kontraktach R&D wykazały, że długość umowy i odczuwalne obciążenie poznawcze to odrębne aspekty złożoności – najczęściej powiązane, ale jednak mierzą inne rzeczy. Dlatego zalecają traktować oba wymiary (obiektywny i subiektywny) łącznie, by uzyskać pełniejszy obraz złożoności kontraktu.
- Klarowność vs. niejednoznaczność postanowień – innymi słowy, ile w umowie miejsc potencjalnie rodzi niepewność interpretacyjną. To również wpływa na złożoność: dokument może być długi, ale jeżeli jest napisany jednoznacznie i logicznie, łatwiej go stosować niż krótszy, lecz zagmatwany. Pewną miarą pośrednią może tu być np. liczba pytań/doprecyzowań wymaganych przez strony po lekturze umowy, lub liczba rozbieżności interpretacyjnych wynikłych z umowy. Choć formalnie takich miar nie standaryzowano, badania ankietowe pokazują, że biznes odczuwa problem niejasności: w jednym z sondaży WorldCC niepewność co do znaczenia kluczowych klauzul została wskazana jako największe zagrożenie dla realizacji wartości z kontraktu. Wysoka niepewność wynika zaś z braku klarowności – czyli nadmiernej złożoności językowej/pojęciowej umowy.
Podsumowując, subiektywne podejście do mierzenia złożoności skupia się na użytkowniku kontraktu: im więcej wysiłku, wiedzy eksperckiej i czasu potrzeba, by poprawnie zinterpretować i zastosować umowę, tym wyższa jej złożoność mechaniki. Te miękkie aspekty często trudno ująć jedną liczbą, ale można je włączyć jako komponent oceny (np. w skali 1–5 oceniana przez prawników, albo poprzez wskaźniki czytelności tekstu).
Przegląd badań naukowych nad złożonością umów
W literaturze akademickiej problem złożoności kontraktów pojawia się na styku prawa, ekonomii i nauk o zarządzaniu. Choć brak jednej uznanej miary, istnieje kilka nurtów badawczych, które starały się tę złożoność zmierzyć lub przeanalizować:
- Empiryczne badania kontraktów handlowych: Wspomniane prace Hagedoorn & Hesen (2009) były jednymi z pierwszych, które mierzyły złożoność realnych umów. Zastosowali oni podejście dwuwymiarowe: długość/liczba klauzul oraz obciążenie poznawcze (mierzone poprzez ekspercką ocenę trudności). Ich analiza kontraktów aliansów biotechnologicznych wykazała m.in., że większe asymetrie informacji i specyficzność aktywów prowadzą do większej złożoności (kontrakty stają się dłuższe i bardziej szczegółowe), natomiast wypracowane rutyny organizacyjne mogą tę złożoność ograniczać. Badanie to potwierdziło, że złożoność to zjawisko wielowymiarowe – różne czynniki wpływają na jego poszczególne aspekty.
- Badania ekonomiczne nad niekompletnością kontraktów: Ekonomiści wskazują, że kontrakty mogą być celowo niekompletne właśnie ze względu na koszty złożoności. Rasmusen (2023) pokazał modelowo, że koszty czytania umowy rosną wraz z długością i złożonością klauzul – w efekcie nadmiernie skomplikowane „drobne druczki” mogą zostać odrzucone przez strony albo prowadzić do pominięcia pewnych kwestii[7]. Felli i Sanchez (2018) w pracy o Kosztach złożoności (complexity costs) argumentują podobnie – istnieje punkt, gdzie doprecyzowanie kolejnych warunków jest nieopłacalne, bo ludzki umysł/organizacja i tak nie przetworzy tego efektywnie. Takie prace nie wprowadzają jednej miary, ale traktują złożoność jako koszt, który można w modelach optymalizować.
- Eksperymenty behawioralne: Ciekawym podejściem było przetestowanie wpływu złożoności na działanie kontraktów w warunkach kontrolowanych. Przykładowo, Kalkancı, Chen & Erhun (2011) przeprowadzili eksperymenty z uczestnikami symulujące negocjacje przy asymetrycznej informacji popytowej[8]. Porównali proste kontrakty (np. cena jednoskładnikowa) z kontraktami złożonymi (np. zawierającymi klauzule podziału ryzyka lub warunkowe bonusy) i oceniali wydajność oraz częstość błędów. Wyniki wskazały, że nadmiernie rozbudowane mechanizmy kontraktowe mogą prowadzić do gorszej realizacji umowy, zwłaszcza gdy strony nie w pełni rozumieją wszystkie warunki. Choć badanie nie dało formuły na miarę, potwierdziło negatywny wpływ rosnącej złożoności na efektywność współpracy w niektórych sytuacjach consensus.app colab.ws.
- Analizy językoznawcze i informatyczne: Najnowsze prace w dziedzinie Legal Tech i Przetwarzania Języka Naturalnego (NLP) podejmują próbę analizy struktury umów automatycznie. Xu i inni (2022) zaproponowali model ConReader do rozpoznawania klauzul, który ekstraktuje „implicit relations” (ukryte relacje) w obrębie umowy [9]. Wskazali oni trzy typowe zjawiska zwiększające złożoność kontraktów: (1) dalekosiężne zależności kontekstowe – klauzule odległe w tekście, ale wzajemnie powiązane znaczeniowo; (2) relacje termin–definicja – konieczność łączenia pojęć z ich definicjami prawnymi rozsianymi po dokumencie; (3) podobieństwa klauzul – powtarzające się typy postanowień, które trzeba zidentyfikować jako analogiczne. Uwzględnienie tych relacji znacząco poprawiło skuteczność automatycznej ekstrakcji klauzul. To badanie nie tyle wprowadza jedną metrykę, co potwierdza obecność złożonych powiązań utrudniających analizę umowy przez maszynę (a zapewne i przez człowieka).
Narzędzia i podejścia praktyczne
Poza akademickimi badaniami, problem oceny złożoności pojawia się w praktyce – np. przy zarządzaniu ryzykiem kontraktowym czy w narzędziach Contract Lifecycle Management (CLM). Rozwiązania komercyjne stosują kilka praktycznych podejść:
- Checklisty czynników złożoności – Firmy doradcze i twórcy oprogramowania wskazują listy cech, które czynią kontrakt „complex”. Przykładowo wspomniany Gatekeeper definiuje złożoność umowy poprzez takie czynniki, jak: nietypowość i techniczność tematyki, niska czytelność języka, gęstość powiązań między klauzulami, liczba dorozumianych (niewypowiedzianych) zobowiązań, łączna liczba słów, oraz liczba dokumentów składających się na umowę. Jest to holistyczne ujęcie – nie daje jednej liczby, ale pozwala ocenić, czy dany kontrakt plasuje się wysoko czy nisko na skali złożoności, patrząc na różne aspekty.
- Indeks złożoności w systemach CLM – Niektóre systemy do zarządzania kontraktami proponują wewnętrzne klasyfikacje umów według złożoności. Np. firma Lexagle wspomina o Contract Complexity Index używanym do kategoryzacji kontraktów i odpowiedniego przydziału zasobów (bardziej złożone dostają więcej uwagi). Szczegóły algorytmu nie są publiczne, ale zapewne opierają się on na kombinacji ww. czynników (długość, typ umowy, liczba klauzul wysokiego ryzyka itp.). Podobnie Icertis czy Cobblestone w materiałach marketingowych wspominają o śledzeniu poziomu złożoności kontraktów, choć raczej jakościowo (np. poprzez typologię: umowa prosta standardowa vs. umowa złożona wielopodmiotowa).
- Analiza klauzul ryzykownych (complexity mitigation) – W praktyce zarządzania ryzykiem kontraktowym spotyka się podejście: im więcej klauzul problematycznych, tym kontrakt bardziej złożony. Eksperci radzą identyfikować „ciężkie” klauzule (np. dotyczące własności IP, kar umownych, warunków wypowiedzenia) i zarządzać nimi indywidualnie, bo to one generują największą złożoność w negocjacjach i wykonaniu. Podejście to nie daje sumarycznego indeksu, ale praktycznie upraszcza zarządzanie skomplikowanymi umowami przez rozbicie ich na elementy. Przykładem jest metodologia proponowana przez K. Mitchella (2023), gdzie dla kontraktów strategicznych identyfikuje się klauzule wysokiego ryzyka, przypisuje „właściciela” każdej z nich i opracowuje gotowe scenariusze działania na wypadek problemów. Taka praca u podstaw pozwala okiełznać nawet bardzo złożone mechanicznie umowy.
- Standaryzacja i modułowość – Innym praktycznym sposobem na ocenę (a raczej ograniczenie) złożoności jest stosowanie standardowych, modułowych konstrukcji. Badacze tacy jak przywołany wcześniej M. Jennejohn sugerują, że kontrakty mogą być projektowane jak systemy modułowe albo przeciwnie – wysoko spersonalizowane (flexible). W praktyce, jeżeli kontrakt trzyma się sprawdzonego standardu i np. dokłada tylko kilka aneksów, uznamy go za mniej złożony niż kontrakt pisany całkowicie od nowa z unikalnymi rozwiązaniami w każdej klauzuli. IACCM zaleca wręcz dążyć do upraszczania i standaryzacji umów – co oznacza ograniczanie liczby wariantów oraz zachowanie spójnej, przejrzystej struktury we wszystkich kontraktach danej organizacji[10]. Wskaźnikiem postępu w tym kierunku może być np. zmniejszenie średniej liczby unikalnych klauzul w kontraktach lub redukcja średniej długości w wyniku uproszczeń.
Powyższe podejścia branżowe pokazują, że choć formalnego „współczynnika złożoności” nie ma, to w praktyce firmy segmentują umowy pod względem złożoności i dostosowują do nich procesy (np. prostsze idą szybką ścieżką, a złożone wymagają dodatkowej analizy prawnej, negocjacji, monitoringu realizacji). Taka kategoryzacja często wynika z doświadczenia (historycznie które umowy sprawiały problemy) oraz z połączenia kilku mierzalnych cech.
Podsumowanie
Nie istnieje jedna powszechnie uznana miara liczbowa złożoności mechaniki umowy, jednak liczne badania i praktyki dostarczyły różnych sposobów jej oceny. Wspólnym wnioskiem jest, że złożoność ma charakter wielowymiarowy – obejmuje zarówno aspekty ilościowe (jak rozmiar i struktura dokumentu), jak i jakościowe (zawiłość wzajemnych powiązań, czytelność i klarowność). Próby podejmowane w literaturze akademickiej sugerują łączenie kilku metryk w jedną ocenę lub profil. Na przykład, model dwuwymiarowy Hagedoorna i Hesena oddziela długość od obciążenia poznawczego, wykazując że oba te wymiary są ważne. Z kolei podejścia oparte na teorii złożoności koncentrują się na tym, jak bardzo kontrakt przypomina gęstą sieć współzależnych elementów.
W praktyce oznacza to, że ocena złożoności umowy powinna uwzględniać różnorodne wskaźniki: liczbę stron/klauzul, liczbę przewidzianych warunków i wyjątków, liczbę odwołań wewnętrznych, stopień zrozumiałości tekstu, itp. Narzędzia Legal Tech coraz lepiej radzą sobie z automatycznym wyłuskiwaniem tych cech (np. rozpoznawaniem definicji, zależności między odległymi klauzulami
Choć brak nam jednej uniwersalnej miary złożoności mechaniki umowy, świadomość tego zjawiska jest wysoka – zarówno w teorii, jak i praktyce. Różne podejścia akcentują odmienne aspekty (objętość, strukturę, język, logikę). W przypadku analizy konkretnej umowy najrozsądniejsze jest zastosowanie kombinacji tych metod – np. ocenić rozmiar i liczbę zależności, a także poprosić eksperta o opinię co do trudności. W ten sposób można stworzyć profil złożoności, który pozwoli porównać umowy między sobą i zidentyfikować obszary wymagające uproszczenia. Jak ujął to jeden z praktyków: „upraszczanie umów powinno być traktowane jak zwiększanie wartości aktywów organizacji”, ponieważ redukcja niepotrzebnej złożoności prowadzi do klarowniejszych, mniej ryzykownych kontraktów. Jednocześnie pewna złożoność bywa nieunikniona przy skomplikowanych transakcjach – kluczem jest jej świadoma kontrola i zarządzanie, by umowa pozostała narzędziem ułatwiającym współpracę, a nie przeszkodą.
[1] The New Research on Contractual Complexity, Capital Markets Law Journal 381 (2019), Cathy Hwang, Associate Professor of Law, University of Utah. Robert W. Barker Professor of Law, Brigham Young University.
[2] Contractual Complexity and the Cognitive Load of R&D Alliance Contracts, 3rd Annual Conference on Empirical Legal Studies Papers, John Hagedoorn, Maastricht University, School of Business and Economics, Geerte G. Hesen, University of Maastricht
[3] Complexity Contractual Complexity, Spencer Williams Associate Professor, Golden Gate University School of Law.
[4] THE ARCHITECTURE OF CONTRACT INNOVATION MATTHEW JENNEJOHN *Associate Professor of Law, BYU Law School.
[5] Glossary C, Contract Complexity, A measure of the difficulty of understanding a Contract. gatekeeperhq.com
[6] The cost of contract complexity (228) , Bill Mooz & Paula Doyle,March 28, 2021
[7] Contract Complexity Puts Revenue Risk – A Tool For Mitigation, Kirk Mitchell, JD
[8] Contract Complexity and Performance Under Asymmetric Demand Information: An Experimental Evaluation – Basak Kalkanci, Kay-Yut Chen and Feryal Erhun
[9] Exploring Implicit Relations in Contracts for Contract Clause Extraction, eiwen Xu, Yang Deng, Wenqiang Lei, Wenlong Zhao, Tat-Seng Chua, Wai Lam
[10] Avoiding Complexity in Technical Contracts, Graeme Wood


