Programmalıq támiynat qurılması hám evolyuciyası / 17-18_lekciya_PTQE
.pdf17-lekciya. Programmalıq támiynattı islep shıǵıw metodologiyası.
Jobası:
1.Metodologiya túsinigi hám onıń túrleri: Awır (Heavyweight) hám Jeńil
(Lightweight).
2.Klassikalıq metodologiyalar: RUP (Rational Unified Process) hám MSF.
3.Agile (Iykemli) metodologiyalar: Scrum, Kanban, Extreme Programming (XP).
4.Metodologiyanı tańlaw kriteriyaları hám gibrid usıllar.
Metodologiya: Tártip hám filosofiya
Programmalıq támiynattı islep shıǵıw metodologiyası (Software
Development Methodology) – bul programmanı jaratıw procesin basqarıw, qadaǵalaw hám shólkemlestiriw ushın qollanılatuǵın principler, usıllar hám qurallar jıynaǵı. Ápiwayı sóz benen aytqanda, metodologiya – bul "Biz jumıstı qalay isleytuǵınımızdıń qaǵıydaları". Metodologiya proektke qatnasıwshılardıń (menedjerler, programmistler, analitikler) rollerin, hújjetlerdiń túrin hám jumıs processiniń izbe-izligin anıqlaydı. Metodologiyalar eki úlken toparǵa bólinedi: "Awır" (Heavyweight / Plan-driven) hám "Jeńil" (Lightweight / Agile). Awır metodologiyalar (mısalı, Waterfall, RUP) hújjetlestiriwge, qatań jobalastırıwǵa hám processlerdi anıq qadaǵalawǵa itibar qaratadı. Olar "Aldın oyla, keyin isle" principine súyenedi. Jeńil metodologiyalar (Agile, XP) bolsa, ózgerislerge beyimlesiwge, adamlar arasındaǵı qatnasıqqa hám islep turǵan ónimge itibar qaratadı. Olar "Isle, tekser hám dúzet" principine súyenedi.
Metodologiyanıń eń tiykarǵı wazıypası – "Táwekelshilikti (Risk) basqarıw". Awır metodologiyalar qátelerdiń aldın alıw ushın uzaq jobalastırıwdı qollanadı, bul "analiz paralichine" (analysis paralysis) alıp keliwi múmkin. Jeńil metodologiyalar bolsa qátelerdi tez tabıw hám tez dúzetiw ushın iterativ usıldı qollanadı. Qaysı metodologiyanıń jaqsı ekeni proekttiń túrine, komandanıń kólemine hám buyırtpashınıń talaplarına baylanıslı. "Gúmis oq" (bárine birdey keletuǵın metod) joq.
Metodologiya tek texnikalıq process emes, ol "Mámleketlik mádeniyat". Geybir kompaniyalar qatań ierarxiyanı hám esabatlardı jaqsı kórse (Bankler, Mámleketlik shólkemler), basqaları erkinlikti hám tezlikti qáleydi (Startaplar, IT gigantlar). Metodologiya komandanıń psixologiyasına hám jumıs stiline sáykes
keliwi shárt. Eger komanda metodologiyanı qabıl etpese, ol tek qısqa múddetli "imitaciya"ǵa aylanadı hám payda bermeydi.
Klassikalıq metodologiyalar: RUP hám MSF
Klassikalıq yamasa "Awır" metodologiyalardıń eń ayqın wákili – "RUP" (Rational Unified Process). IBM tárepinen islep shıǵılǵan RUP – bul iterativ, biraq júdá strukturalasqan hám hújjetlestirilgen process. RUP proektti tórt fazaǵa bóledi: 1) Baslaw (Inception) – maqsetti anıqlaw, 2) Anıqlaw (Elaboration) – arxitekturanı qurıw, 3) Qurıw (Construction) – kod jazıw, 4) Ótkiziw (Transition) – paydalanıwshıǵa tapsırıw. Hárbir fazada bir neshe iteraciya bolıwı múmkin.
RUP-tıń tiykarǵı ózgesheligi – onıń "Use Case" (Paydalanıw jaǵdayları) modellerine hám UML diagrammalarına súyeniwi. RUP hárbir roldiń (analitik, arxitektor, tester) ne islew kerekligin júdá detallı súwretleydi. Bul model úlken, quramalı hám turaqlı proektler ushın júdá qolaylı, sebebi ol sapanı hám tártipti kepilleydi. Biraq onıń kemshiligi – "awırlıǵı". RUP boyınsha islew ushın kóp hújjet jazıw kerek, bul bolsa processti ásteletedi hám qımbatlatadı.
"MSF" (Microsoft Solutions Framework) – bul Microsoft kompaniyasınıń metodologiyası. Ol RUP hám Agile principleriniń gibridi bolıp esaplanadı. MSF "Spiral model"ge tiykarlanǵan hám táwekelshilikti basqarıwǵa úlken itibar qaratadı. MSF komandanıń rolerin anıq bóledi (Program management,
Development, Testing, Release management, User experience, Product management). MSF-tiń tiykarǵı filosofiyası – "Juwapkershilikti teńdey bóliw" hám "Ashıq kommunikaciya".
Bul klassikalıq metodologiyalar búgingi kúnde de iri korporativ sistemalarda qollanılmaqta. Olar "Byurokratiya" emes, al "Discipina" (tártip) dep qabıl etiliwi kerek. Eger proektte 100 adam islese, Agile sıyaqlı erkin usıllar xaosqa alıp keliwi múmkin, al RUP hám MSF processlerdi sinxronizaciyalawǵa járdem beredi.
Agile (Iykemli) metodologiyalar: Scrum, Kanban, XP
XXI ásirdiń basında "Agile" revolyuciyası baslandı. Agile – bul anıq bir metodologiya emes, al bir neshe usıllardıń (Frameworks) ulıwma ataması. Olardıń eń ataqlısı – "Scrum". Scrum metodologiyası proektti qısqa iteraciyalarǵa –
"Sprintlerge" (2-4 hápte) bóledi. Komandada úsh rol bar: Product Owner (Maqsetti belgilewshi), Scrum Master (Process qorǵawshısı) hám Development Team (Jumısshılar). Hárbir sprintte komanda "Backlog"tan (wazıypalar diziminen) eń áhmiyetli wazıypalardı alıp, sprint sońında "jumıs isleytuǵın ónim" kórsetedi.
Scrum kúndelikli qısqa jıynalıslar (Daily Stand-up) arqalı komandanıń bir-birinen xabardar bolıwın támiyinleydi.
Ekinshi ataqlı usıl – "Kanban". Kanban Yaponiyanıń Toyota zavodınan kelgen "Lean" (Únemli) óndiris filosofiyasına tiykarlanǵan. Kanban-da sprintler joq, jumıs úziliksiz aǵım (flow) retinde júredi. Tiykarǵı qural – "Kanban taxtası" (To Do, In Progress, Done). Kanbannıń baslı qaǵıydası – "WIP limit" (Work In Progress). Yaǵnıy, bir waqıtta orınlanıp atırǵan wazıypalar sanın sheklew. Bul komandanıń dıqqatın shashıratpastan, baslaǵan jumıstı tezirek pitiriwge májbúrleydi.
"XP" (Extreme Programming) – bul sapalı kod jazıwǵa qaratılǵan eń radikal metodologiya. XP-da "Jup programmalastırıw" (Pair Programming – bir kompyuterde eki adam), "Test-Driven Development" (TDD – kodtan aldın test jazıw), "Úziliksiz integraciya" hám "Refactoring" májbúriy esaplanadı. XP dáslepki waqıtlarda qımbat bolıp kóriniwi múmkin, biraq ol qátelerdiń aldın alıw hám kodtıń sapasın joqarı saqlaw arqalı uzaq múddette ónimli boladı.
Agile metodologiyaları zamanagóy "VUCA" (Volatile, Uncertain, Complex, Ambiguous – Ózgeriwsheń, Anıq emes, Quramalı) dúnyada eń effektli qural. Olar bizge "úlken joba dúziw" ornına "kishi qádemler menen háreket etiw hám joljóneney dúzetip ketiw" imkaniyatın beredi. Agile komandaları ózin-ózi shólkemlestiretuǵın bolǵanlıqtan, bul usıl programmistlerdiń motivaciyasın da arttıradı.
Metodologiyanı tańlaw hám Gibrid usıllar
Qaysı metodologiyanı tańlaw kerek? Bul sorawǵa "Steysi Matricasınıń" (Stacey Matrix) járdemi menen juwap beriwge boladı. Eger talaplar anıq hám texnologiya belgili bolsa (Ápiwayı zona), Waterfall yamasa V-model jaqsı isleydi. Eger talaplar ózgeriwsheń yamasa texnologiya jańa bolsa (Quramalı zona), Agile (Scrum/Kanban) kerek. Eger hámme nárse belgisiz bolsa (Xaos), metodologiyadan aldın eksperimentler islew kerek. Kóp jaǵdaylarda taza metodologiya qollanılmaydı, al "Gibrid" usıllar (Hybrid) payda boladı. Mısalı, "Scrumban"
(Scrum + Kanban) – sprintler bar, biraq taxta hám limitler de bar. Yamasa "Water- Scrum-Fall" – proekttiń bası (jobalastırıw) hám sońı (ornatıw) Waterfall boyınsha, al ortası (islep shıǵıw) Scrum boyınsha júredi. Gibrid usıllar kompaniyanıń real imkaniyatlarına hám mádeniyatına beyimlesiwge múmkinshilik beredi.
Metodologiyanı tańlawda "Komandanıń tájiriybesi" de esapqa alınıwı kerek. Agile tájiriybeli, óz betinshe sheshim qabıllay alatuǵın "Senior" qánigelerdi talap etedi. Eger komanda jaslardan (Junior) quralǵan bolsa, olarǵa qatań instrukiyalar
hám anıq processler (RUP, Waterfall) kerek bolıwı múmkin. "Shu-Ha-Ri" principi boyınsha: dáslep qaǵıydalarǵa boysınıw (Shu), keyin olardı túrlendiriw (Ha), aqırında qaǵıydalardan joqarı turıw (Ri).
Juwmaqlap aytqanda, metodologiya – bul jol emes, bul qural. Hesh qanday metodologiya jaman programmistti jaqsı programmistke aylandıra almaydı. Biraq durıs tańlanǵan metodologiya jaqsı programmistlerdiń birge islesiwin hám sapalı ónim jaratıwın ańsatlastıradı. Eń jaqsı metodologiya – bul komandanıń jumısına tosıq bolmaytuǵın, kerisinshe, oǵan járdem beretuǵın metodologiya.
BAQLAW SORAWLARÍ:
1."Awır" (Heavyweight) hám "Jeńil" (Lightweight) metodologiyalardıń tiykarǵı ayırmashılıǵı hám filosofiyası nede?
2.RUP (Rational Unified Process) metodologiyasınıń 4 fazası qanday hám olardıń maqseti ne?
3.Scrum metodologiyasındaǵı "Sprint", "Backlog" hám "Daily Stand-up" túsiniklerin túsindirip beriń.
4.Kanban metodologiyasınıń "WIP limit" (Work In Progress limit) qaǵıydası ónimlilikke qalay tásir etedi?
5.Metodologiyanı tańlawda "Steysi Matricasınıń" (Stacey Matrix) roli qanday?
