Гэрээний бичиг баримтыг шалгах ба дэбаг хийхийн төстэй байдлыг өмнө нь IT инженер байсан хуульч тайлбарласан

Хэлэлцээр байгуулахад байнгын хуульчийн үүрэг голдуу компанийн өдөр тутмын клиент болон бизнес хамтрагч нартай байгуулдаг гэрээний төслийг шалгаж, засварлах явдал байдаг. Мөн энэхүү шалгалт ба засварлалтыг зөвхөн ‘хууль ба тухайн салбарын мэдлэгтэй хүн’ л хангалттай хийж чадна. Энэ нь яагаад вэ гэдгийг тайлбарлаж өгье.
Гэхдээ доорх тайлбар нь инженер эсвэл программчлалын туршлагатай хүмүүсээс бусад нь ойлгоход хэцүү байж магадгүй. Монолит Хууль Зүйн Газар нь өмнө нь IT инженер байсан бөгөөд компанийн удирдлагын туршлагатай хуульч нь захирал болгон ажилладаг. Энэ нийтлэл нь ‘Өмнө нь IT инженер байсан, компанийн удирдлагын туршлагатай хуульч захиралтай хууль зүйн газар нь инженер болон программчлалын туршлагатай удирдагчдад зориулан гэрээний төслийг шалгах, засварлах талаар тайлбарласан нийтлэл’ гэж үзэж байна.
Тэгвэл энэ байр суурийн дээр, гэрээний төслийг шалгах ба засварлах нь хэлбэржүүлсэн ‘дебаг’ ажиллагаатай төстэй гэж хэлж болно.
- Эхлээд ‘баг’ гэж юу вэ
- ‘Дебаг’ гэж ямар ажиллагаа вэ
- Гэрээний төсөл нь хэрхэн алгоритмыг тодорхойлдог вэ
- Гэрээний төслийг засварлах нь ямар ажиллагаа вэ
Ийм дарааллаар, инженерүүдэд ‘түгээмэл’ сэдвээс эхлэн тайлбарлаж эхэлнэ.
‘Баг’ ба ‘Дебаг’ гэж юу вэ
Баг гэдэг нь “Компьютерийн гэмтэл” биш
“Баг” гэхээр зарим хүмүүс компьютер дээр ажиллаж байхад түүнээс утаа гарч, дэлгэцэнд хачин жигтэй зураг гарч ирэх зэрэг төсөөлөлтэй байж магадгүй. Гэхдээ компьютер гэдэг нь ерөнхийдөө “хэлсэн дагуу” ажилладаг. Энэ нь баг үүсэх үед ч мөн адил. Өөрөөр хэлбэл, “баг” гэдэг нь:
- Компьютер хэлсэн дагуу ажиллаж байгаа ч
- Хэрэглэгчийн хувьд тухайн ажиллагаа “хүлээгдээгүй үйлдэл” болох
гэсэн үзэгдэл юм.
「Төлөвлөгөөгүй үйлдэл」 нь яагаад гардаг вэ?
Жишээ нь, Марио төрлийн аркад тоглоомд гардаг “хана нэвтрэх” алдааг авч үзье.
Мариогийн алхам бол хоёрдогч функц юм. Хурдатгал, хурд, байрлал. Гэхдээ хэрэв энгийн хоёрдогч функц байвал, жишээ нь “X=1.76582 үед Y нь юу вэ?” гэх мэтчилэн, X-ийг хязгааргүй нарийн хувааж болно. Гэвч телевизийн тоглоомд цаг хугацааг хязгааргүй нарийн хуваах боломжгүй. Учир нь дэлгэц нь секундэд (жишээ нь) зөвхөн 30 удаа шинэчлэгддэг. Иймд, Марио секундэд 30 удаа “шилжих” гэж үзэж болно.
Энэ дээр үндэслэн, жишээлбэл, “Марио алхахад дээр нь хана байсан учраас түүнд мөргөлдөнө” гэдэг нь
- Өмнөх мөчид Марио агаарт байсан боловч
- Дараагийн мөчид Мариогийн байрлал хананы дотор болсон
гэсэн үйл явдал юм.

Ийм тохиолдолд “Марио алхаж байхад дээрх хананд мөргөлдсөн” гэж үзэж болно. Иймд, естой хэллэгээр хэлбэл
Хэрэв Мариогийн байрлал хананы дотор байвал, мөргөлдөөний процессыг гүйцэтгэнэ (※1)
гэсэн програмыг бичвэл “Марио алхахад дээр нь хана байсан учраас түүнд мөргөлдөнө” гэсэн процессыг бодит байдлаар хэрэгжүүлж чадна.
※1 нь дээрх шиг бичигдсэн хэвээр байхад зөв харагдаж байна. Тэгвэл үнэндээ “тодорхой нөхцөл байдалд” энэ процесс зөв байдаг.
Гэхдээ сайн бодоход, доорх шиг тохиолдол ч бас боломжтой (※2).

Энэ тохиолдолд “Мариогийн байрлал хананы дотор” гэсэн мөчлөг байхгүй бөгөөд ингэснээр мөргөлдөөний процесс хэзээ ч болохгүй, Марио ханыг дайран өнгөрөх болно.
Энэ бол “алдаа”-ны жишээ юм. Ийм шалтгаанаар “хана нэвтрэх алдаа” гарсан ч, компьютер эвдэрсэн гэсэн үг биш. Компьютер зөвхөн өгөгдсөн үйлдлийг гүйцэтгэж байгаа бөгөөд тэр үйлдлийг “төлөвлөгөөгүй” эсвэл “алдаатай” гэж үнэлэх нь хүн юм. Тэгвэл энэ “алдаа” нь алгоритм зохимжгүй байгаагаас болж гарч байна.
「Төлөвлөгөөгүй үйлдэл гарах эсэхийг» шалгах гэж байна
Гэхдээ тоглоомыг жинхэнээр тоглох явцад дээрхи “хана нэвтрэх” үйлдэл гарах эсэх нь, дээр дурдсан шиг абстракт сэтгэгдэлээр бодоход тодорхойгүй байдаг. “Хана нэвтрэх” үйлдэл гарах эсэх нь дараах нөхцөлүүдээс шалтгаална:
- Мариогийн анхны харайлтын хүч (эхлэх хурд) хэр байгааг, харайлтын хүчийг нэмэгдүүлэх зүйлс байдаг эсэх
- Хана хамгийн нимгэн байхад хэр зузаан байдгийг
Эдгээр нөхцөлүүдээс хамаарч, ※2 дугаартай мэт тохиолдол гарах эсэх нь тодорхой болно. ※2 тохиолдол гарахгүй бол, ※1 дугаартай програм нь асуудалгүй гэсэн үг юм.
「デバッグ」とはどのような作業なのか
Тиймээс, ‘デバッグ’ гэдэг нь багийг олж илрүүлэх ба засварлах ажиллагааг хийхийн тулд:
- Програм хэрхэн ажилладаг алгоритмыг уншиж ойлгох (※1 дээрх нь естой хэл боловч, үнэндээ програмууд өөрсдийн гэсэн хэлээр бичигдсэн тул уншиж ойлгох нь хүнд)
- Тухайн програм нь ямар нөхцөлд ажилладагийг тодорхойлох (жишээ нь, үсрэх чадвар болон ханын зузааныг судлах)
- Тэр үед төлөвлөөгүй зан төлөв байдал гарах эсэхийг шалгах
гэсэн процесс шаардлагатай болдог билээ.
Гэрээний бичиг баримтыг шалгах гэж юу вэ?

Гэрээний бичиг баримтыг шалгах ажил мөн адилхан байдаг. Гэрээний бичиг баримт гэдэг нь эхлээд тухайн талууд, өөрөөр хэлбэл, альфа ба бета талуудад ирээдүйд гарч болох үйл явдлыг төсөөлж, тэр үед альфа ба бета талуудад ямар эрх болон үүрэг гарч ирэх, тэдгээр нөхцөлд хоёр тал хэрхэн үйлдэл хийх ёстойг зохицуулах зорилготой байдаг. Энэ утгаараа “бодит ертөнцийг зохицуулах програм” гэж хэлж болох юм. Жишээ нь,
●● гэсэн үйл явдал гарсан тохиолдолд, альфа тал бета талд 1 сая иений төлбөр төлөх.
Ийм зохицуулалттай гэрээний бичиг баримт нь ирээдүйд гарч болох үйл явдлын нөхцөл болон үр дагаврыг тодорхойлдог.
Тэгвэл энэ “бодит ертөнцийг зохицуулах програм” дээр асуудал байгаа эсэхийг шалгаж, асуудал байвал засварлах ажил нь “дебаг хийх”тай маш ойролцоо байдаг.
Гэрээнд алгоритмын бүтэн байдал нь тодорхой заагдсан байдаггүй
Гэрээ гэдэг нь хуульчлалын мэргэжилтэн биш хүмүүст ойлгоход хэцүү, гэхдээ маш чухал нэг цэг байдаг. Тодруулбал, гэрээнд тухайн талуудын хоорондын харилцааг зохицуулах алгоритмын “зарим хэсэг” л хамааралтай байдаг. Өөрөөр хэлбэл, гэрээг зөвхөн уншиж байгаад та болон таны харилцагч хэрхэн алгоритмын дор зохицуулагдаж буйг, түүний бүтэн байдалыг мэдэх боломжгүй.
Жишээ нь, дэлгүүрээс хуучин CD худалдаж авах үед, дэлгүүр ба худалдан авагч “худалдааны гэрээ” гэх мэт зүйл байгуулахгүй ч, хэрэв худалдаж авсан CD-н дискэнд тоглуулагчаар тоглуулах боломжгүй гэмтэл байвал, та дэлгүүрт гомдол гаргахыг хүсч магадгүй бөгөөд дэлгүүр танд хариу өгөхийг хүлээж байгаа байх. Энэ нь “үйлчилгээний салбар учраас” гэсэн түвшний яриа биш, эрдэм шинжилгээний хувьд:
- Гэрээ байгуулагдаагүй ч, худалдааны гэрээ байгуулагдсан байдаг
- Иргэний хуульд тодорхойлогдсончлон, хуучин CD зэрэг (тодорхой зүйл гэж нэрлэгддэг) худалдааны гэрээнд худалдагч нь дутагдалд хариуцлага хүлээх ёстой гэж заасан байдаг
- Иймд, иргэний хуульд заасан алгоритм дэлгүүр ба худалдан авагчийн хооронд ажиллаж, дэлгүүр нь дутагдалд хариуцлага хүлээх ёстой
гэсэн утгатай болно. Тэгвэл “гэрээ” гэдэг нь иргэний хууль гэх мэт хууль тогтоомжоор тодорхойлогдсон алгоритмыг өөрчлөх зорилготой. Жишээлбэл, хэрэв дэлгүүр ба худалдан авагчийн хооронд “Манай дэлгүүр CD-н ямар ч доголдолд хариуцлага хүлээхгүй” гэсэн гэрээ байгуулагдсан бол:
- Худалдааны гэрээ байгуулагдсан байдаг
- Иргэний хуульд худалдагч нь дутагдалд хариуцлага хүлээх ёстой гэж заасан байдаг
- Гэхдээ гэрээнд заасан заалтын дагуу, 2-р зарчмыг өөрчилж, дэлгүүр нь дутагдалд хариуцлага хүлээхгүй
гэсэн байдалд орно.
Гэрээ нь Иргэний хууль гэх мэт үндсэн зарчмуудыг “давхар бичих” зүйл

Энэ нь систем хөгжүүлэлт гэх мэт, компаниуд хооронд байгуулагдаж буй гэрээнүүдэд ч мөн адил хамаатай юм. Жишээ нь, хэрэв А Б хооронд гүйцэтгэлийн төрлийн систем хөгжүүлэлтийн гэрээ байгуулагдсан бол,
- Тухайн гэрээг байгуулснаар тодорхой гүйцэтгэлийн гэрээ байгуулагдсан болно
- Гүйцэтгэлийн гэрээний хувьд, Иргэний хуулийн заалт нь гүйцэтгэгч талд дутагдлын баталгаа үүрэх үүрэг гаргадаг
- Хэрэв гэрээнд дутагдлын баталгааны заалт байгаа бол, тухайн заалт нь 2-р дэх Иргэний хуулийн зарчмыг давхар бичих болно. Жишээлбэл, Иргэний хуулийн зарчмаас урт хугацааны дутагдлын баталгааны заалт тогтоосон бол, тухайн хугацааны заалт хүчинтэй болно
гэсэн бүтэцтэй болно. Өөрөөр хэлбэл, жишээ нь, гэрээнд дутагдлын баталгаа хариуцлага тухайн заалт онцгойлон тогтоосонгүй ч, дутагдлын баталгаа хариуцлага үүснэ гэсэн үг юм.
Энэ нь гүйцэтгэл, систем хөгжүүлэлт гэх мэтэд хязгаарлагдсан яриа биш, харин компаниуд хийдэг бүх төрлийн гэрээнүүд, хувьцааны шилжүүлэг, өр төлбөрт зээл (мөнгөний зээл), ажилд авалт, хувьцаа гаргах гэх мэт, холбогдох ерөнхий онол юм.
Иймд, гэрээг зөвхөн уншиж байгаад, та бүхний байгууллага болон өөрсдийн харилцааг зохицуулах “алгоритм”-ын бүтэн байдлыг ойлгох боломжгүй. Түүний бүтэн байдлыг ойлгохын тулд “Иргэний хууль гэх мэт хууль тогтоомжоор тогтоосон анхдагч алгоритм”-ыг ойлгож байх шаардлагатай. Гэрээ нь зөвхөн тэр “анхдагч алгоритм”-ыг давхар бичих зүйлээс илүү биш юм.
Ирээдүйд гарч болзошгүй үйл явдлыг төсөөлж чадахгүй бол “дебаг” хийх боломжгүй
Мөн, алгоритмыг ойлгох нь л хангалттай биш, “энэ алгоритмын хувьд төсөөлөөгүй үйл ажиллагаа гарах уу” гэдгийг шалгах боломжгүй болно. Тоглоомын “баг” тохиолдолтой адил, алгоритм нь зөвхөн абстракт зүйл бөгөөд, ирээдүйд ямар нэгэн үйл явдал гарахыг төсөөлөөгүй бол, “тэр үйл явдал гарсан үед төсөөлөөгүй хөдөлгөөн болох уу” гэдгийг шалгах боломжгүй болох нь тэр.
Энэ нь тухайлбал, шинэ аппликейшн эсвэл үйлчилгээ зэрэг бүтээгдэхүүн, шинэ бизнес схем гэх мэт тохиолдолд чухал асуудал болдог. Тийм бүтээгдэхүүн, схемийг ашиглан бизнесээ өргөжүүлэхэд ирээдүйд ямар нэгэн зүйл болох уу. Энэ нь тухайн салбарын мэдлэг гэх мэт зүйлгүй бол төсөөлөхөд хэцүү байдаг. Мөн, тухайлбал, компаниуд хоорондын гэрээний тохиолдолд, харилцагч компани мөн өөрийн компани ч тодорхой эдийн засгийн ухамсартайгаар үйл ажиллагаа явуулдаг учраас, ирээдүйн үйл явдлыг, түүнийг бий болгох харилцагчийн үйлдлийг урьдчилан таамаглахын тулд, компанийн удирдлагад хамаарах тоглоомын онолын санаачилга ч мөн шаардлагатай болдог.
Удирдлагын шийдвэрт суурилсан “төсөөлөөгүй” эсэх шийдвэр
Мөн адил, компьютер биш хүн нь тодорхой үйл явдлыг “алдаа” гэж үздэг шиг, гэрээний үр дүн нь “төсөөлөөгүй” байгаа эсэхийг шийдвэрлэх нь ч зүй ёсны хууль судлалын асуудал биш, удирдлагын шийдвэрлэх асуудал юм.
Жишээ нь, “Япон Иргэний хуулийн зарчмын дагуу” алгоритм нь тодорхой компанийн тодорхой бизнесийн хувьд хүлээн зөвшөөрөх боломжгүй байдаг тохиолдол бодит байдлаар гарч болно. Энэ хүртэлх жишээнээс яриаг өөрчилж, Япон Иргэний хууль нь, жишээлбэл, зөвлөмжийн гэрээнд “гэрээний биелүүлэгч нь дахин зөвлөмж өгөх нь гэрээний зөрчил болно” гэсэн үндсэн алгоритмыг зааж өгдөг. Гэвч жишээлбэл, “тодорхой компанийн хувьд тодорхой бизнес нь гадаад гүйцэтгэгч компаниудыг ашиглах нь төсөөлөгдсөн” гэсэн тохиолдол байдаг. Ийм тохиолдолд, дахин зөвлөмж өгөх боломжгүй гэрээ, өөрөөр хэлбэл:
- Дахин зөвлөмж өгөх эсэх талаар тодорхой заалт байхгүй (энэ тохиолдолд дээрхи Япон Иргэний хуулийн зарчим хэрэглэгдэнэ)
- Дахин зөвлөмж өгөх боломжгүй гэсэн заалт тодорхой бичигдсэн
гэрээг хүлээн зөвшөөрөх нь, тэр ч байтугай “Япон Иргэний хуулийн зарчмын дагуу” байгаа ч гэсэн, боломжгүй байх ёстой.
Мөн удирдлагад үргэлж “тодорхой шалтгаан үүссэн тохиолдолд хариуцлага хүлээх” гэсэн эрсдэл байдаг. Өөрийн компанид “эрсдэл” гэж юу ч байхгүй гэрээ гэдэг нь үндсэндээ байдаггүй. Энэ эрсдлийг хүлээн зөвшөөрөх эсэх нь сүүлдээ удирдлагын шийдвэр болно. Удирдлагын шийдвэрийг гаргах нь удирдагч бөгөөд зөвлөх хуульч болон бусад зөвлөхүүдийн үүрэг биш, гэхдээ зөвлөхүүд нь удирдагчид удирдлагын шийдвэр гаргахад шаардлагатай бүх мэдээллийг өгөх ёстой бөгөөд:
- Тусгайлан анхааруулах шаардлагагүй эрсдэл
- Тухайн компанийн хувьд чухал шийдвэр болох, заримдаа хурал зэрэг шаардлагатай эрсдэл
гэх мэт зүйлсийг онцлон тэмдэглэх хэрэгтэй. Энэ “онцлог” -ийг тогтоохын тулд, гэрээг шалгах хуульчидад ч мөн “удирдлагын” мэдрэмж нэг хэмжээний шаардлагатай болдог.
Хураангуй
Иймд, гэрээний бичиг баримтыг шалгах ба засварлах ажил нь энгийнээс илүүтэйгээр, доорхи шиг ажлууд гэж хэлж болно.
- Гэрээний бичиг баримт нь Японы Иргэний хууль гэх мэт үндсэн зарчмуудыг хэрхэн өөрчилж, үр дүнд нь ямар алгоритм болгон хувиргадагийг ойлгох
- Тухайн алгоритмын дор ирээдүйд ямар үйл явдал гарах боломжтойг тодорхойлох
- Тэр үед төлөвлөөгүй үйлдэл гарах эсэхийг шалгах
Мөн дээрх бүрдүүлэг бүр нь
- Хууль зүйн мэдлэгтэй хүн бусадтай харьцуулахад хүндрэлтэй ажил
- Тухайн гэрээгээр зохицуулагдаж буй, жишээ нь аппликэйшн эсвэл вэб үйлчилгээ гэх мэт бизнесийн агуулга, бизнесийн схем зэргийг ойлгодог хүн бусадтай харьцуулахад хүндрэлтэй ажил
- Тухайн компани эсвэл бизнесийн агуулга, удирдлагын мэдрэмжийг тодорхой хэмжээгээр ойлгодог хүн бусадтай харьцуулахад хүндрэлтэй ажил
Ийм учраас гэрээний бичиг баримтыг шалгах ба засварлах ажил нь “мэргэжлийн” хэрэгцээтэй байдаг.
Манай хууль зүйн фирмийн гэрээ бичиг боловсруулах, хянах үйлчилгээний танилцуулга
Монолис хууль зүйн фирм нь IT, Интернет, бизнесийн салбарт тусгай мэдлэгтэй хууль зүйн фирм болохоор, өөр өөр төрлийн гэрээ бичиг боловсруулах, хянах үйлчилгээг зөвлөх үйлчилгээ авах компаниуд болон клиент компаниудад санал болгож байна.
Сонирхож буй хүмүүс, доорхи дэлгэрэнгүй мэдээллийг заавал үзнэ үү.
Category: IT
Tag: ITSystem Development