Кристалл — бұл жиі жеткізу, жеке қарым-қатынас және рефлексия арқылы дамуды қамтитын ортақ генетикалық коды бар бағдарламалық қамтамасыз етуді дамыту әдістемелері отбасы. Әрбір жобаның өзінің Кристалл әдістемесі бар. Бұл мақала Кристалл Кларды кішкентай командалар (8 адамға дейін) үшін концепция ретінде зерттейді. Бұл экстремалды бағдарламалауға жақсы балама, кейбір ортақ тұстарымен.
Кристалл Отбасының Тарихы
1991 жылы, Agile Manifesto авторларының бірі, Алярдыр Кокберн тиімді бағдарламалық қамтамасыз етуді әзірлеу әдістемесін құруға мақсат қойды. Ол көптеген жоба командаларын зерттеп, олардың даму жағдайларын зерттеді.
Зерттеу Кристалл Клардың тиімді бағдарламалық қамтамасыз етуді әзірлеу концепциясының негізгі принциптерінің негізін қалады:
- Адамдарға бағытталған әдістемелер процессқа бағытталғандардан тиімдірек.
- Әдістеме жеке жобалар мен командаларға бейімделген болуы тиіс — универсалды қолданба әзірлеу әдістемесі жоқ.
1994 жылы, ол 45 адамнан тұратын $15 миллиондық тұрақты шығын жобасының жетекші кеңесшісі ретінде осы идеяларды жүзеге асырды, оның атауы «Апельсин». Алярдырдың дамытқан принциптері жоба табысының негізі болды. Ол бұл тәжірибені «Объектке Бағытталған Жобаларды Аяғында Топтама» (1997) кітабында құжаттады, ал бір жылдан кейін Кристалл әдістемелерінің отбасын дамытты.

Кристалл әдістеме отбасының бақытты авторы, Agile Manifesto авторлерінің бірі Алярдыр Кокберн
2004 жылы Кокберн үш негізгі әдісті айқындады:
- Пайдалылық кодты жылдам жеткізу: ірі, сирек код орналастырудан кіші, жиі шығарылымдарға көшу.
- Рефлексия арқылы даму: өткен бағдарламалық қамтамасыз ету нұсқасында не жақсы, не нашар болғанын талдап, келесі нұсқаны жақсарту үшін білім жинау.
- Осмостық коммуникация: Кокберн бір бөлмеде жұмыс істеп жатқан әзірлеушілер арасында ақпаратты қабылдау және алмастыруды осмос сияқты фоновый шу ретінде сипаттады.
Сол жылы, Кокберн “Crystal Clear: A Human-Powered Methodology for Small Teams” жариялады. CC-ны әзірлеу бойынша қосымша үлестерін жүйелік әкімші Марсель Вагеман көрсетті, ол бағдарламалық қамтамасыз етуді әзірлеуде Кристалл Клар, Agile және Scrum принциптерін пайдалану туралы эссе жазды.
Кристалл Әдістемесі дегеніміз не?
Кристалл — бұл осы үш әдіске негізделген әдістемелер отбасылары.
«Ең жақсы» Кристалл Клар әдістемесі жоқ; әрбір модификация әртүрлі жобаларды сипаттайды. Ұйым немесе жоба осы модификацияларды Кристаллдың «генетикалық кодына» (негізгі қолдану ережелері) негізделе отырып құрады.
Кристаллдың ең қарапайым классификациясы жобадағы адамдар саны бойынша:
- Таза: 2‑ден 8‑ге дейінгі адамдар бір немесе жақын офисде бірге жұмыс істейді.
- Сары: 10 – 20 адам.
- Көгілдір: 20 – 50 адам.
- Қызыл: 50 – 100 адам.
Кристалл Кластың генетикалық коды:
- Экономикалық ынтымақтастық ойын моделі: Кокберн бағдарламалық қамтамасыз етуді ресурстармен шектелген өнертапқыштар мен коммуникациялардың «ойындарының» сериясы ретінде қарастырады. Әр ойынның екі негізгі мақсаттары бар: осы ойынның бағдарламалық қамтамасыз етуді жеткізу және келесі ойынды дайындау. Әр жаңа жоба үшін жаңа стратегиялар қажет.
- Таңдалған басымдықтар: Барлық Кристалл әдістемелеріне тән екі басымдық: қауіпсіздік және даму тиімділігі.
- Таңдалған сипаттамалар: Бұл қауіпсіздік басымдылығын арттырады. Үш негізгі (жылдам және жиі код жеткізу, жеке коммуникация, рефлексия арқылы даму), ал қалған төртеуі қосымша: жеке қауіпсіздік, назар, сарапшыларға жеңіл қол жеткізу және автоматтандырылған тестілеумен сапалы техникалық орта.
- Таңдалған принциптер: Әдістемені индивидуализациялау басты бағытты жалғастырады:
Бағдарламалық қамтамасыз ету талаптарының, жобалау құжаттарының және жоспарлаудың егжей-тегжейі жоба спецификасына, жеке команда интеракциясының дәрежесіне және анықталмаған қателіктерден туындаған зиянға байланысты.
Кристалл Клардың Циклдік Процесі
Кристалл Клармен көптеген жобалар алты циклден тұрады, жобалық топтың міндеттері мен жауапкершіліктерін анықтайды:
- Жоба циклі: Жоба өзіне өнім бірлігі болып табылса да, әдетте циклді қайталайтын басқа проектпен қатар жүреді. Жоба циклі үш бөліктен тұрады: дайындық (команданы жинау, 360° зерттеу, әдістеменің анықтамасы), екі немесе одан да көп жеткізу циклдарының сериясы және “аяқтау ритуалы”. Ұзақтығы: бірнеше күннен апталарға дейін.
- Жеткізу циклі: Бағдарламалық қамтамасыз етуді шығару жоспарын қайта калибрлеуді қамтиды. Бір немесе бірнеше дискреттерден тұрады, нәтижесінде тесттелген интеграцияланған код, нақты пайдаланушыларға жеткізу, және “аяқтау ритуалы”. Ұзақтығы: 1 аптадан 3 айға дейін.
- Дискрет: Үш негізгі бөліктен тұрады: дискретті жоспарлау, күнделікті және интеграция циклі әрекеттері және жобаның “аяқтау ритуалы”.
- Жұмыс аптасы/күні: Циклдың уақыт өлшемі ретінде күн немесе апта таңдау жобаның форматына және командаға байланысты. Мысалдар: апталық бөлім кездесудері, команда жетекшісінің есептері және “қоңыр-жәшік” семинарлары (жоба мәселелері бойынша түскі ас талқылаулары).
- Интеграция кезеңі: Даму, интеграция және жүйені тестілеу. Кейбір командалар арнайы машинамен үздіксіз құрастыру-сынау жүргізеді, ал басқалары күнделікті немесе аптасына үш рет интеграциялайды. Интеграция циклы неғұрлым қысқа болса, соғұрлым жақсы. Ұзақтығы: 30 минуттан 3 күнге дейін (команданың тәжірибесіне байланысты).
- Даму: Кодтың бір бөлігін жазу және тексеру. Бұл бағдарламашының agile дамуындағы негізгі жұмысы. Топ мүшесі шағын тапсырманы ала алады, шешімді бағдарламалайды (идеал жағдайында тестпен), және оны бүкіл жүйемен конфигурациялауда тексереді. Ұзақтығы: 15 минуттан бірнеше күнге дейін.
Кристалл Клардың Стратегиялары және Техникалары
“Таза” Кристалл Клар ешқандай нақты стратегиялар мен техникаларды талап етпейді. Дегенмен, команданың әрбір CC циклында тиімді жұмыс жасауына көмектесетін старттық әдістер жиынтығын дайындадық.Негізгі Стратегияларға Кіреді:
- 360° Зерттеу: Жобаның басында команда өнімнің қаншалықты пайдалы және маңызды екенін, оны бар ресурстар мен технологиялармен жасауға бола ма, соны түсінуі керек. Жобаны коммерциялық құндылық, талаптар, қажетті технологиялар, жоба жоспары, команда құрамы және таңдалған әдістемелер. Тиімділік бірнеше күннен 1 – 2 аптаға дейін созылады.
- Алғашқы Жеңіс: Жеңіс топты біріктіреді және әр мүшенің сенімділігін арттырады. Бағдарламалар әзірлегенде, алғашқы жеңіс стратегиясы жұмыс істейтін кодтың алғашқы бөлшегін табуды қамтиды, көбіне пайдалы жүйе функционалитінің шағын элементі. Бұл шағын жеңіс команда мүшелеріне бір-бірінің жұмыс стилін үйренуге көмектеседі, пайдаланушылар жүйе туралы алғашқы түсінік алады және демеушілер команданың мүмкіндігіне көз жеткізеді.
- Инкременталдық Архитектураны Өзгерту: Жүйе архитектурасы технологиялық және коммерциялық талаптардың уақыт өте келе өзгеруіне қарай дамуы керек. Стратегия командаға архитектураны жүйенің жалпы функционалдылығын бұзбай, кезеңмен өзгертуге мүмкіндік береді. Сол стратегия соңғы жүйедегі функционалдық өзгерістерге де қолданылуы мүмкін.
- Ақпарат Редакторлары: Жұмыс істеп жатқанда немесе демалып жатқанда адамдар көретін жерлерде орналастырылған дисплейлер. Олар қажетті ақпаратты қосымша сұрақтар қоймай-ақ көрсетеді, Кристалл Клар ережесін “көп коммуникация, аз кедергілер”.
Ақпарат редакторы үлкен, жеңіл қолжетімді, қолдануға және оқуға оңай және жаңартылған ақпаратпен қамтамасыз етілуі тиіс. Мысалдар: Scrum және Kanban тақталары және жоба терминологиясын түсіндіретін жұмыс істеп тұрған глоссарий.

Популяр Техникалар Келесілер:
- Әдістеменің Құрылуы: Кристалл Кларды жеке жоба ретінде бейімдеу екі кезеңде жүзеге асырылады:жоба сұхбаттары (жобаның күшті және әлсіз жақтарын атап өткен ұйымдық тәжірибенің мини-библиотекасын құру) және әдістеме құру семинары (күштерді арттыру және әлсіз жақтарды өтемдеу үшін тәжірибені талдау). Бірінші кезеңнің ақпараты екінші кезеңде қолданылады.
- Рефлексия Семинары: Периодически команда “рефлексия семинарын” өткізу үшін бір сағаттық үзіліс алуы керек, қайсысы жақсы немесе нашар жұмыс істейтінін, не жетілдіру қажет екенін және келесі жоба кезеңдерінде не істелуі қажеттігін талқылау.
- Блиц Жоспарлау: Демеушілер, пайдаланушылар мен әзірлеушілерге мерзімдермен жоба карталарын бірлесіп құруға мүмкіндік береді.
- Күнделікті Тұру Кездесулер: Жобаның жағдайы, прогресі мен мәселелерін анықтау үшін қысқа кездесулер. Бұл кездесулер талқылау үшін емес, тек проблемаларды анықтау үшін өткізіледі. Нәтижелер онлайн тапсырма менеджерінде немесе физикалық Канбан тақтасында жазылады.
- Жаңа Бағдарламалауды Жасау: Бұл процесс кезінде екі адам бір бағдарламалық тапсырма бойынша бір құрылғыда жұмыс істейді. Жаңа бағдарламалауды жоюға жеке тәсілдер мен командадағы жоғары сапалы қарым-қатынастың талап етілуі назарында сыналады. Альтернативтік техника «слайд-слайд» екі адамды бір-бірінің экрандарын көріп, бірақ әртүрлі тапсырмаларда жұмыс істейтіндей жақын отыруды қамтиды. Бұл «осмостық интеракция» түсінігіне сәйкес келеді.
Кристалл Клар бойынша Ұсынылған Оқу
Өкінішке орай, 2017 жылға дейін Кристалл Клар туралы өте аз әдебиеттер бар, және Украинада арнайы шығармалар жоқ.Кристалл Кларды зерттеуге арналған негізгі ресурстар мыналарды қамтиды:
- “Кристалл Клар: Кішкентай Командалар үшін Адаммен Басқарылатын Әдістеме” Алярдыр Кокберн: әдістемені оның жасаушысының көзқарасынан түсіну үшін маңызды кітап. Бұл кітап көптеген кейс зерттеулерді, мысалдарды және ұйымдағы Кристалл элементтерінің жүзеге асырылуы бойынша мини-аралықтармен қамтамасыз етеді.
- “Жаңа Бағдарламалау: Жазылған ба?” Лори Уильямс: Кристалл Клардың техникаларының бірі, жұптық бағдарламалауды егжей-тегжейлі талдау. Бұл кітап бағдарламалық қамтамасыз етуді әзірлеуде Жаңа Бағдарламалауды пайдалануда практикалық кеңестер береді.
- “Agile Бағдарламалық Қамтамасыз Етуді Даму: Ынтымақтастық Ойыны” Алярдыр Кокберннің: бағдарламалық қамтамасыз етуді «өнертапқыштық және байланыс» ынтымақтастық ойыны ретінде түсіндіреді. Кокберн Кристалл Клардың идеяларын осы кітап бойынша кеңейтеді, кейін оны “Кристалл Клар: Кішкентай Командалар үшін Адаммен Басқарылатын Әдістеме” деген атаумен рәсімдеді.
- Кристалл Клардың жасаушысының ресми веб-сайты: Кітап болмаса да, сұхбаттар, диаграммалар, блог жазбалары және әдістеме бойынша талқылаулар сияқты көптеген ақпаратты ұсынады. Бір ғана кемшілігі, сайттың достасу дизайнының жанасымдылығы.
Пікір
Көптеген “ең жақсы” әдістемелер жобалық командалармен қабылданбайды, өйткені олар тым күрделі, қолайсыз және ауыр.