Әр жоба барысында туындайтын көптеген сұрақтардың ішіндегі бір мәселе айқын: өнімді дамыту процесін басқарудың ең жақсы жолы қандай? Ерекше еске түсетіні — су құлағы – жылдар бойы дәлелденген нұсқалардың бірі (немесе бағдарламалық қамтамасыз етуді басқаруға арналған каскадтық су құлағы моделі).
Шын мәнінде, бұл методология қатты сынға алынып жатыр, бірақ ол шынымен де соншалықты нашар ма, әлдетақырып тағы да өз тарихын қайталауын анықтаймыз ба?
Бағдарламалық қамтамасыз етуді дамыту циклі
Әрбір әзірлеушілер тобы өзінің бағдарламалық қамтамасыз ету өмірлік циклі моделін құра алады немесе жалпы мойындалған нәрсені пайдалана алады. Нұсқалардың бірі – су құлағы. Американдық В.Ю.Ройс бұл модельді негіздеген деп саналады. Ол көптеген нәрселерді әріптестерінен ұрлап, олардың еңбегіне несие алғаны туралы айтылған. Бұл 1970 жылы болды. Бүгінгі күнге дейін Ройс ұсынған әдіс көптеген жобаларда не өз бастапқы нұсқасында, не модификацияланған түрде қолданылады.
Дегенмен, кейбір IT инсайдерлері мұндай методологияның ешқашан болмағанын айтады:
“IT маманы және ұстаз ретінде, 40 жылдан астам уақыт бойы IT индустриясы туралы көптеген мифтерді естідім. Бірақ мені таң қалдыратын нәрсе –«Су құлағы» сөзінің не үшін жоқ методологияны сипаттау үшін әлі де қолданылып жатқаны, және не үшін даму әдістері мен жүйелерінің жасаушылары оны салыстыру объектісі ретінде пайдаланады.”
Дэвид Дисхав, Сиракуз университетінің Ақпараттық зерттеулер мектебінің профессоры, АҚШ
Әр түрлі іс-шаралар үшін бағдарламалық қамтамасыз етуде бірнеше онжылдықтар бойы қолданылған методология туралы мұндай сөздерді есту таңқаларлық. Мысалы, автомобиль өнеркәсібі, ғимараттар мен құрылымдарды салу, қаржы мен бухгалтерлік есеп, медицина және электроника.
IT-дегі Су құлағы
Су құлағы моделі үшін негізгі негізгі принцип – әрбір соңғы қадам алдыңғысы аяқталмаса басталмайды. Сонымен қатар, алға немесе артқа ерікті қозғалыстарға рұқсат жоқ, және фазалар сәйкес келмеуі керек. Бұл каскадты методологияны өзінің арнайы аналогтарынан (немесе бәсекелестерінен), мысалы, Agile, DSDM, Scrum немесе FDD-дан бөлетін негізгі мәселе.
Су құлағында әрекет алгоритмі

Ройстың модельге негізделген ойларын түсіну үшін, оның түпнұсқа жұмысын оқи аласыз:
Ройс, Уинстон (1970), Үлкен бағдарламалық қамтамасыз етулерді дамыту.
Каскадтық негіздегі жұмыс процесі
Идея ойлап табу және талқылау
Бұл кезең негізінен даму кезеңін қамтымайды. Фактикалық түрде бір немесе бірнеше адамға қызықты жаңа идея қарастырылады.
Талаптарды талдау
Бұл кезең жобаның тапсырыс берушісінің талаптарын ең егжей-тегжейлі түрде сипаттауды қамтиды. Мақсатқа жетудің жолдары анықталады; операцияларға мерзімдер белгіленеді, сондай-ақ қаржылық аспект көрсетіледі. Сонымен қатар, әрбір жұмыс бөліміне белгілі бір уақыт және қаржы резерві бөлінеді. Талаптардың талдауы аяқталғаннан кейін бағдарламашыларға техникалық міндеттемелер мен бюджет дайын болады.
Бағдарламалық қамтамасыз етуді жобалау
Бұл кезең нақты қадамдарды қамтиды:
- бағдарламалау платформасын таңдау (Python, PHP, JS және т.б.)
- техникалық бөлшектерді нақтылау (мысалы, қызмет немесе өнімнің серверлермен қарым-қатынасы, API-ді пайдалану немесе пайдаланбау, сыртқы және ішкі интерфейстің логикасы және т.б.)
- жобаның қауіпсіздік мәселелерін шешу (мысалы, HTTPS пайдалану немесе пайдаланбау, SSL шифрлау және т.б.)
- бағдарламалық қамтамасыз етуді пайдаланушылардың рөлдерін анықтау (администратор, клиент, менеджер және т.б.)
- мақсат өнімінің сенімділігін, тиімділігін және одан әрі техникалық қолдау мәселелерін аяқтау.
- арнайы команданы қалыптастыру.
Бағдарламалық қамтамасыз етуді дамыту
Бұл кезең алдын ала әзірленген құжаттарға сәйкес код жазуды қамтиды.
Бағдарламалық қамтамасыз етуді тестілеу
Мамандар өнімнің соңғы нұсқасын нақты жағдайларға жақын жағдайда тестілейді, оған ақауларды тіркеу арқылы. Жалпы бағдарламалық қамтамасыз етудің жұмыс істеуі үшін ең маңызды ақаулар түзетіледі, ал аз маңызды ақаулар түзетусіз қалдырылуы мүмкін, егер уақыт өтіп кетсе немесе бюджет жұмсалса.
Бағдарламалық қамтамасыз етудің техникалық қолдауы
Нәтижесінде шығатын қызмет көрсететін бағдарламалық өнім мақсатты түрде қолдануға беріледі, сонымен бірге қолдау көрсетіледі. Бұл өнімнің қызмет көрсетуін, ақауларды түзетуді, пайдаланушы пікірлері негізінде функционалдық жаңартуларды жоспарлауды білдіреді.
Жоғарыда аталған кезеңдер қатаң реттілікпен жүзеге асырылады және олардың нәтижелері тіркеледі.
Жоғарыда сипатталған классикалық Су құлағы методологиясының эволюциясын түсіну үшін, Жобаны басқару білімінің денесін зерттеуге болады. 3‑ші және 4‑ші нұсқаларда “каскадты” жолды түсінуге көмектесетін бірқатар айырмашылықтар бар.
Каскадты бағдарламалық қамтамасыз етуді дамыту моделінің артықшылықтары мен кемшіліктері
Өкінішке орай, біздің әлемде ештеңе мінсіз емес, сондықтан каскадтық методологияның да күшті және әлсіз жақтары бар.
Каскадты бағдарламалық қамтамасыз етуді дамыту моделінің күшті жақтары | Каскадты бағдарламалық қамтамасыз етуді дамыту моделінің әлсіз жақтары |
|
|
|
|
| |
|
|
|
|
|
Каскадты даму моделін қалай қолдану керек және қандай жағдайларда?
Тәжірибеге сәйкес, Су құлағы моделінің бағдарламалық қамтамасыз етуі келесі жағдайларда өте өзекті:
- тапсырыс беруші жобада тек бірінші кезеңде қатысады, содан кейін ол аяқталған өнімді қабылдайды;
- өнімнің талаптары өзгерістерге ұшырамайды;
- жоба жоғары күрделілікке, ұзақ мерзімділікке және қымбатқа ие;
- сапа негізгі басымдық, тіпті уақыттың есебінен;
- қосымша кластағы әзірлеушілерден тұратын команда жоқ;
- жобаны жүзеге асыру үшін мамандарды аутсорсинг ету мүмкіндігі бар.
Каскадтық методологиядан бас тарту мүмкін себептерін түсіну үшін, Стивен Ковидің “Скрам. Жобаларды басқарудағы революциялық әдіс” кітаптарын оқи аласыз.
Су құлағын қолдану мысалдары
Таза каскад моделі қазіргі заманғы дамуында соншалықты кең таралған емес, және көбінесе
Agile ретінде сыныптала алмайтын нәрселер Су құлағы деп аталады, осылайша бұл методологияның қай endroits қолданылып жатқанын анықтау өте қиын.
Сарапшылардың пікірінше, ERP жүйелерінің және құрылыс, медицина, мемлекеттік шарттармен операциялар немесе осындай негізгі қолданбалар үшін бағдарламалардың маңызды бөлігі, әдетте модификацияланған Су құлағы нұсқасы арқылы дамытылады.
Осындай жобаларды өңдеудің ерекшелігін түсіну үшін, Сергей Зыковтың “Кәсіпорын жүйелерінің үлгіге негізделген дамуы” кітабында жақсы сипатталған.
Бұл логикалық тұрғыдан түсінікті. Оны Agile әдістеріне, жобаларды басқарудың мұғалімі, жаттықтырушы, және кітаптардың авторы Чак Кобб та баяндаған.
Егер сіз өзеннің үстінде көпір салып жатсаңыз, “Біз алдымен алғашқы құрылымын саламыз, содан кейін нәтижесін көріп, қалған құрылымдарын салып-салмауымызды шешеміз!” деп айту күлкілі болар еді.
Су құлағын қолданған компаниялардан бірқатарын атап өтуге болады:
Компания атауы | Су құлағы моделін қолданудың мақсаты | Методология қазір қолданылуда ма | Компания өкілінің пікірі |
Вюстенрот & Вюрттемберг (W&W) | Қаржы секторы үшін ERP жүйесін дамыту | Деректер жоқ | — |
Cisco | Қауіпсіздік жүйелерін дамыту | Ия | — |
EPAM | Әр түрлі өнімдер немесе шешімдер немесе олардың бөліктері | Ия | Алексей Ионов: “…бүкіл үлкен жобаны Agile-мен жасау міндетті емес — икемді даму белгілі бір кезеңдер немесе жұмыс ағындары ішінде қолданылуы мүмкін…” |
IBM | Әр түрлі өнімдер немесе шешімдер немесе олардың бөліктері | Ия | Розалинд Рэдклифф: “Кері байланыссыз Waterfall-мен жұмыс істейтін даму командалары бизнес талаптарын орындау мүмкін емес, сондықтан мұндай жобалар мен өнімдер көп техникалық қызмет алуда … Waterfall жаңа технологиялармен және жаңа бизнес-практикаларды енгізу кезіндегі жаңа командалармен кезең-кезеңмен алмастырылады.” |
Microsoft IT | Әр түрлі өнімдер немесе шешімдер немесе олардың бөліктері | Жоқ | “Соңғы бірнеше жылда… барлық командаларымыз икемді методологиялармен қамтамасыз етілді. Олар дәстүрлі Waterfall моделінен келген көптеген мәселелерді шешті. Жобалар алдын ала жоспарланып, айлар мен тіпті жылдар бойы созылатын. Осы модель аясында, өнім біз шығарған кезде ескірген деп саналуы мүмкін”. |
AT Consulting | Әр түрлі өнімдер немесе шешімдер немесе олардың бөліктері | Ия | Василий Короблев: “«Негіздерден» жүйелерді дамыту үшін, біз, егер қажет болса, икемді (Agile) немесе каскад (Waterfall) дамыту тәсілдерін немесе екеуін де біріктіреміз.” |
Parallels | Әр түрлі өнімдер немесе шешімдер немесе олардың бөліктері | Ия | Николай Добровольский: “Әр түрлі жобаларда біз әр түрлі тәсілдер қолданамыз — кейбір жағдайларда Agile-мен бір немесе екі апта сprints, басқа жағдайларда — quasi-Waterfall жобаларында, белгілерді бірнеше айға созу рұқсат етіледі. Көп жылдар бойы, біз үлкенірек жоба немесе команда неғұрлым күрделі болады, ақпараттарды Agile процессіне сәйкес енгізудің тиімділік дәрежесін төмендете беретінін түсіндік”. |
SAP | Әр түрлі өнімдер немесе шешімдер немесе олардың бөліктері | Ия | Евгений Арнаутов: “Өнімді кезең-кезеңмен шығаруда, Agile нұсқалары жиі көңілге көрінеді, кейде олар Waterfall әдісімен біріктіріледі.” |
Тойота | Әр түрлі өнімдер немесе шешімдер немесе олардың бөліктері | Жоқ | Сатоши Ишии: “…біз TPS (Батыста Lean) бағдарламалық қамтамасыз етуді дамытуға қолдануды үйренуге тырысамыз |
Каскад моделі негізіндегі даму басқару бағдарламалары мен бағдарламалары
Су құлағын басқару үшін, сіз уақытты бақылауға арналған бірнеше өнімдерді қолданып, Гант диаграммаларын құрастыру мүмкіндігі бар.
Worksection

Бұл ыңғайлы мобильді нұсқасын ұсынатын тартымды украиндық saas қызметі.
Бұл мынадай функцияларға байланысты мұқият жоспарлау үшін қолайлы:
- тапсырмалар мен мерзімдер арасындағы байланыстары бар Гант диаграммасы
- әртүрлі лауазымдармен жауапкерлер арасында міндеттерді бөлу
- әртүрлі есеп беру формаларының жүйесі
- комментарийлерді, эмодзилерді және жобадағы барлық жұмыс тарихын сақтау
- дамыту процесінің ашықтығы үшін тапсырыс берушінің/клиенттің шектеулі қолжетімділігі
- бюджеттер мен шығындарды көрсету мүмкіндігі
- тапсырмаларды орындауда дәл рәсімдерге сәйкес әрекет ету үшін кішкентай кезеңдерге тексеру тізімдері
Қорытынды
Су құлағы ұзақ уақыт бойы қолданылатын әдістеме және сыншылар не айтса да,
көптеген жағдайда тиімді.
Сонымен қатар, бұл әдіс көптеген жобалар үшін таза формада мерзімді нарық қажеттіліктеріне жылдам жауап беруді талап етпейді. Әртүрлі компаниялардың өкілдері бұл сөздердің негізінде, Су құлағы қазіргі заманғы жобаларда рөл атқаруға лайық екенін қорытындылай алатындығымызды тұжырымдаймыз. Бірақ Су құлағын пайдалану жобаның мерзімдері бойынша тұрақты болып қалатын талаптар кезінде ғана негізделген.