Хөгжүүлэгчийн хувьсал

B.Bilguun
B.Bilguun
Aug 28, 2017 · 5 min read

Энэ бол бидний түүх. Арай олон оймс элээсэн буюу арваас дээш жилийн туршлагатай хүмүүст танил санагдах, дөнгөж эхэлж буй залууст харин ямар замнал хүлээж буйг нь хэлж захих гэсэн нийтлэл юм.

Эхэн үе

Энэ үеийг бид бүгд тойрч биш дайраад гардаг. Их сургуулийн төслийн ажил, эсвэл өөртөө зориулж жижиг хэмжээний софтвер бичиж дуусаад код бичихийн сайхныг гэнэт олж харах шиг, түүндээ шунан дурлах шиг л болдог. Сурах зүйлс, судлах зүйлс, турших зүйлс зөндөө. Бичсэн мөр код ажиллах бүрт бидний тархинаас допамин ялгарч, тэр мэдрэмжийг хөөцөлдсөөр донтож эхэлдэг. Гэхдээ айлтгүй. Энэ бол өвчин биш зүгээр л тархины үйл ажиллагааны онцлог юм.

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

Гэхдээ бид энэ үедээ хангалттай асуулт асуухгүй өнгөрөх хандлагатай. Магадгүй аливаа зүйлсийг мэдэхгүй байх нь ичмээр санагддаг болохоор, эсвэл хувь хүний зан араншингийн онцлогоос болдог уу ямартаа ч инженерүүд бид асуухын оронд өөрсдөө нухаж цаг алддаг дутагдалтай. Энэ үзэгдлийн гол шалтгаан нь өнөөх тархийг өдөөгч хүчин зүйлүүдтэй холбоотой байх. Бидэнд тулгамдсан асуудлыг — ялангуяа төвөгтэй хүнд асуудлууд шийдвэрлэх шиг тархины таашаал үгүй биз. Гэхдээ бидний замд маш олон “мэдэхгүй” тааралдах ба асуулт асуух нь хамгийн оновчтой шийдлүүдийн нэг болно.

Алдаж онож олон жил зарцуулсан хүнээс богионо хугацаанд мэдлэг хураах нь үнэлж баршгүй зүйл билээ.

Бид мэнторуудын зөвлөгөөг хангалттай тунгаалгүй, сохроор дагах нь олонтаа. Тэдний зөвлөгөө ихэвчлэн зөв байдаг ч хаяа — ялангуй эргэлзээ төрсөн үед тунгаан бодох хэрэгтэй. Мэнторууд ихэвчлэн хэт прагматик, хуучинсаг болох хандлагатай байдаг. Хийж байгаа ажлаа тэдэнд ойлгомжтой хялбараар тайлбарлахад цаг зарцуулах хэрэгтэй. Тэд туршлагатай сайн инженер байх хэрэгтэй ба гаргаж буй шийдвэрийг чинь тэд тун ухаалгаар шүүх ба засах сайжруулах зүйлсийг чинь олж хэлэх болно.

Мөн энэ үедээ гаргадаг түгээмэл алдааны нэг нь хэт хурдлах. Бид өөрсдийн потенциалаа батлах хүсэлдээ автаж маш хурдтайгаар, их хэмжээний код бичдэг. Гол нь зөв зүйлд төвлөрч байгаа эсэхээ тунгаадаггүй. Энэ нь эргээд маш их цаг гарздаж магадгүй тул, амьсгаа авч эргэцүүлж сурах хэрэгтэй.

Олон оймс солих “зугаатай” үе

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

Ажил хайхдаа арай шилэмтгий болох ба зүгээр л шинэ зүйл сурах биш сурсан дуртай технологиороо гайхамшигтай зүйлс хийж бүтээх ажил хайж эхлэнэ.

Энэ үедээ бид ажлыг оймс шиг л сольдог. Цаасан дээр сэтгэл хөдөлгөм байсан компаниуд дотор нь ороод онц биш уйтгартай санагдана. Тууштай байсны эцэст үнэхээр сайхан таарсан ажил олдоно. Эсвэл одоохондоо ажиллаж болохоор ажил олно. Гол нь буцаад ажилдаа орно.

Хэт инженерчилэх үе

Бид цааш хөгжсөөр төгс кодод хүрэх халуурал тусч магадгүй. Рефакторын араас дараагийн рефактор, тэгээд дахиад рефактор хийсээр, бидний код бидний нүдэнд улам үзэсгэлэнтэй сайхан, бусдын нүдэнд улам ойлгомжгүй болсоор байж магадгүй.

Зөвлөгөө: Шинэ DSL, эсвэл маш хурдан ажиллагаатай код бичихийн тулд хичнээн их хугацаа шаардаж байгааг шалгах хэрэгтэй. Сүүлд нь “git diff” хийгээд үнэхээр сайжруулсан эсэхээ хараад үз. Ихэвчлэн олон код устгасан бол энэ нь сайны шинж ба нөгөөтэйгүүр merge хийхээ түр азнасан нь дээр.

Яг энэ үедээ бид өөрсдийн ямар ухаантайг бусаддаа харуулахыг хүсч байдаг. Хэвийн ажлууд уйтгартай, давтагдсан болдог учир ажил дээрх цагаа тэсч өнгөрөөхөд хүрэлцэхүйц допаминээ ийм байдлаар ялгаруулдаг.

Ийм нөхцөлд миний өгч чадах хамгийн сайн зөвлөгөө бол: Продакшн орчинд асуудалгүй ажилладаг кодтой байх нь ажил бага үед шинэ аргачлал, шинэ фреймворк, туршилтын сан ашиглаж үзэх цагийг олгодог. Продакшнд нэвтрүүлсэн ойлгомжгүй шинэ асуудлаас үүсэх стрэсс тийм ч таатай байдаггүй. Тиймээс бага ашиглагддаг, чухал биш хэсгээс өөрчлөлтийг эхлээд бага багаар нэвтрүүлэх нь илүү үр дүнтэй.

Мөн түгээмэл гаргадаг алдаа нь бүх зүйлийг 100% ажилладаг байлгах гэж хичээх. Бүх гарч болох алдааг тойрохын тулд кодоо улам төвөгтөй болгох шаардлагагүй. Төгс биш систем нь бизнэсийн өнцөгөөс хангалттай байж магадгүй.

Шуугиан(“buzz”) дагах

Бидэнд жамаараа тохиолддог зүйлсийн нэг нь: бүх ертөнцийг түр“паузлаад” шинэ зүйлс сурч эхэлдэг. Шинэ хэл, шинэ фреймворк, шинэ аргачлал өөр юу ч байж болно.

Гол асуудал нь түр зуурын шуугиан, салбар өөрчлөх технолги хоёрыг ялгаж сурах. Миний өгч чадах цорын ганц арга зам нь өөрийн биеэр туршиж үзэх.

Тодорхой цагийг зарцуулах хэрэгтэй. Дан блог пост уншаад зогсолгүй, улам гүнзгий ухаж өөрт таарсан pros, cons жагсаалтаа гаргах хэрэгтэй. Энэ үнэхээр асуудлыг шийдвэрлэж байна уу.

Янз бүрийн фреймворк болон сангууд ашигласан энэ бүх хугацааны дараа миний сурсан зүйл гэвэл, тэдгээрийг эх кодынхоо “ирмэгт” нь байлгах нь чухал. Хэрвээ хэтэрхий их bug байвал хаях эсвэл дараагийн хувилбараар амархан солих боломжтой байх ёстой.

Шинэ технологи өдөр бүр шинээр үүсч байдаг ба тэрийг ашигла гэж хэн ч хүчлэхгүй.

Энэ нь сониуч байхаа боль эсвэл шинэ зүйл сурахаа зогсоо гэсэн үг биш гэдгийг анхаарна уу.

Аугаад хүрэх үе

Бид ахлах албан тушаалд очих үедээ улам прагматик болдог. Ийм байдал нь бидний дор байгаа залуу үеийнхэнд бага зэрэг ядаргаатай санагдах болно. Өмнөх шигээ код бичихээ багасгаж, ялих шалихгүй ажил ард өнгөрсөн гэж бодож эхэлнэ.

Эрч хүчтэй багийн гишүүдээс бид урам зориг авч суралцахаа үргэжлүүлсээр байх хэрэгтэй. Бидний туршлага шинэ технологи сонгоход хавьгүй дөхөм болгож өгөх тул шинэ зүйлд суралцсаар байх хэрэгтэй.

Ахлах инженерүүдийг ерөнхийлөн томёолоход хэцүү. Учир нь бид хэдэн арван жилийн дараа өөр өөр замналаар өөрчлөгдсөн байдаг. Гэхдээ хэд хэдэн адилхан асуудал бий.

Энэ үедээ бид хангалттай инженерчлихгүй байх(under-engineering) алдааг гаргаж эхэлдэг. Ихэнхи эрт үеийн абстракт загварууд ажилладаггүйг бидний туршлага бидэнд байнга сургадаг. Хэрвээ багийн гишүүд чинь кодын аль нэг хэсгээс зугтааж байгаа бол энэ нь инженерчлэл дутаж ард хоцорсоны шинж. Тиймээс техникийн төлөөсөө төлөх цаг гаргаж сурах хэрэгтэй.

Дараагийн тохиолдож болзошгүй аюул нь өөрсдийн бий болгосон итгэл үнэмшлийнхээ золиос болох. Өөрийн итгэл үнэмшилийг хаяа нэг эргэцүүлж, нүүрэлдэж сурах хэрэгтэй.

Даруу байх талаар

Олон жилийн туршлага нь сайн кодруу шууд хөрвөдөггүй. Бусдаар code review хийлгэж, бусдын санаа бодлыг сонсож сурах. Би заримдаа эхнэрээрээ (программист биш) кодоо уншуулж хэр ойлгомжтой байгааг асуудаг.

Үүнийг магадгүй өмнө нь сонсож байсан байх. Гэхдээ чиний туршлага чинь чамд нэг зүйлийг ойлгуулсан байх ёстой: Чи бүгдийг мэдэх боломжгүй. Хэн ч чамд чиний мэдэхгүй зүйлийн талаар шинэ зүйл зааж болно.

Бууж өгөхгүй байх талаар

Бидний хөгжүүлэгчийн кареерт амжилттай амжилтгүй янз бүрийн үе тохионо. Бидний зарим нь ажлын таашаалаас мөнгийг илүүд үзэж өндөр цалинтай уйтгартай ажилд орох болно. Зарим нь bug-гүй амьдал хайж менежер болно.

Тасралтгүй урсах асуудлууд нь биднийг оюун санааны хувьд сорих ба софтверийн ертөнц угаасаа ийм юм. “Би ягаад ийм юм хийдэг юм бэ” гэж асуухад хүргэдэг асуудлаар дүүрэн өдрүүдээс зайлах боломжгүй.

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



Nomadays

Create a world that inspires human connection. Big challenges, Beautiful solutions.

)

B.Bilguun

Written by

B.Bilguun

Co founder & lead developer of a start up project “Nomadays”. Full stack developer & system architect. Deep into scalable architectures & agile development.

Nomadays

Nomadays

Create a world that inspires human connection. Big challenges, Beautiful solutions.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade