Домогт Хүн-Сар

Adding manpower to a late software project makes it later.
—Frederick P. Brooks, The Mythical Man-Month

Програм хангамжийн инженерчлэлийн сонгодог номуудын нэг бол яах аргагүй МММ(Mythical Man-Month) билээ. Компьютерийн шинжлэх ухаан, програм хангамжын инженерчлэл бол харьцахгуй залуу салбар мөртөө хамгийн хурдан хөгжиж байгаа гэж болно. Шинэ хэвлэгдсэн ном хэдхэн сарын дараа хуучирч, жилийн дараа мартагдах нь энгийн үзэгдэл болоод байхад утга агуулга нь хэзээд үнэ цэнэтэй хэвээрээ байдаг цөөн номуудын нэг гэж энэ номыг үнэлдэг. Програм хөгжүүлэгч хүн заавал нэг удаа, төслийн менежер хүн жилд нэг удаа уншиж байвал зохино гэж хүртэл магтжээ. Зохиогч бээр IBM OS/360 системийг хийх явцдаа олж авсан туршлага, ололт амжилт дээрээ тулгуурлан бичихдээ, систем хөгжүүлэлтийн процесийг хүний хүчин зүйл талаас нь харж, асуудалд хэрхэн хандах хандлагыг тайлбарлажээ. Систэм хөгжүүлэлтийн нилээд төвөгтэй ажлын хувьд хоцорч байгаа төсөлд шинэ хүн нэмэх нь дуусах хугацааг богиносгох бус уртасгах тал руу нь хандуулдаг гэдгийг тайлбарлаад, ганцхан өдрийн дотор төслийг нэг жилээр хоцроохгүйн тул явцыг бодит цаг хугацаанд ян тан хөтлөж явахын чухлыг, системийг бүхэлд нь нийцтэй байлгахын тулд архитектурыг аль болох цөөн хүн хийх тухай, системийн гадаад спекийг нарийн тодорхой байлгах, төслийн удирдагч ямар баримтуудыг заавал хийж явах ёстойг, туршилтын систем хийж үзэж зөв чиглэлээ олж болох тухай, мэс заслын баг шиг голлох хүндээ бусад нь туслаж ажиллахын учрыг, баг хоорондын холбоо харилцааны үүргийг, төслийн багийг онцгойлон зориулагдсан багаж хэрэгслээр хангах инженерийн тухай, хөгжүүлэлтэд зарцуулагдах өртгийг хэрхэн багасгаж болох зэргийг сонирхолтойгоор, бодит байдал дээр тулгуурлан бичжээ. Хорин жилийн дараа мэдээж зарим мэдээ, өгөгдөл, нөхцөл байдал өөр болсон ч зохиогч хуучин бүлгүүдэд засвар оруулалгүйгээр шинэ 4-н бүлэг нэмээд, хуучин бүлгүүдийн утга санаа нь өнөөдөр хүчин төгөлдөр хэвээрээ эсэх, хориод жилийн өмнөхөөс юу өөрчлөгдсөн зэргийг эргэцүүлэхийн зэрэгцээ, "No Silver Bullet"- бүлгээр програмчин хүний бүтээмжийг чанарийн түвшинд өөрчилж чадах цор ганц техник, арга барил гэж байхгүй юм гэсэн санаагаа нэмж оруулжээ.

Номын талаархи хүмүүсийн янз бүрийн санал сэтгэгдлийг уншиж, өөрийнхтэйгээ харьцуулж байхнээ эргээд сөхөж харахаар зүйл ч гарч байлаа, миний сэтгэгдэл гэвэл:

  • Систэм болгонд таарсан хөгжүүлэлтийн арга барил гэж байхгүй. Системийн төрөл, хэрэглэж байгаа технологи, хөгжүүлэлийг явуулж буй орчин нөхцөл, оролцож байгаа хүмүүсийн зан чанар хөгжүүлэлтийн процесд хүчтэй нөлөөлнө. Гэтэл эдгээр хүчин зүйлс нь бүгд хувирамтгай тогтворгүй байдаг, ялангуяа хүмүүс.
  • Номонд хөгжүүлэгчдийн тоо нэмэгдэх тусам холбоо харилцаа том асуудал болж ирнэ гэсэн байгаа. Одоо цагт хүн бүхэн хурдтай сүлжээгээр холбогдсон хурдтай компьютэрийн ард сууж байхад холбоо харилцааны тал дээр хүндрэл үүсгэхгүй байж болно. Тухайлбал дэлхий даяар таран байрласан хэдэн мянган програмчид линукс зэрэг том том системүүдийг хамтдаа амжилттай хөгжүүлж чадаж байгаагаас харж болно.
  • Нээлттэй хөгжүүлэлтийн баримтлалаар бол системийг тал талаас дуртай хүн болгон оролцоод хөгжүүлэх учиртай. Харин МММ-д архитектурыг нэг эсвэл маш цөөн хүнтэй баг гардаж хийхийг хүчтэй сургадаг. Иймд энэ хоёр үзэл баримтлал харшилдаж байгаа мэт харагдах болно. Би хэдий нээлттэй эхийн томоохон төсөлд гар нэмэрлэж байгаагүй ч, үнэндээ хэрэгтээ, линукс гэх мэт том төслүүдийн ерөнхий архитектур, гол цөмийг цөөхөн мундаг хүмүүс хариуцаж хянаж байдаг. Бусад нь яг нөгөө МММ-д зөвлөдөг мэс заслын баг шиг тэдгээр мундагцуулдаа дэмжлэг болж явдаг гэж ойлгодог.

Номын талаарх зарим тэмдэглэлүүдийг дор заалаа. Хэрэв та төслийн удирдагч, эсвэл ирээдүйд систем хөгжүүлэлийн ажил удирдана гэж боддог бол энэ номыг заавал уншаарай.

Холбоосууд: