Взлет и эво­лю­ция Agile-раз­ра­бот­ки

Otkrytye sistemy. SUBD. - - СОДЕРЖАНИЕ - Ра­ши­на Хо­да, Нор­са­ре­ма Сал­лех, Джон Гран­ди

За­ро­див­шись в кон­це про­шло­го ве­ка, ме­то­ды Agile за­ня­ли се­год­ня гос­под­ству­ю­щее по­ло­же­ние в ми­ре про­грамм­ной ин­же­не­рии, прой­дя путь от фор­ми­ро­ва­ния ос­нов и ин­те­гра­ции с тра­ди­ци­он­ны­ми под­хо­да­ми к раз­ра­бот­ке до при­ме­не­ния вме­сте с ин­стру­мен­та­ми на ос­но­ве ис­кус­ствен­но­го ин­тел­лек­та и сред­ства­ми раз­ра­бот­ки ПО си­ла­ми ко­неч­ных поль­зо­ва­те­лей.

За­ро­див­шись в кон­це про­шло­го ве­ка, ме­то­ды Agile за­ня­ли се­год­ня гос­под­ству­ю­щее по­ло­же­ние в ми­ре про­грамм­ной ин­же­не­рии, прой­дя путь от фор­ми­ро­ва­ния ос­нов и ин­те­гра­ции с тра­ди­ци­он­ны­ми под­хо­да­ми к раз­ра­бот­ке до при­ме­не­ния вме­сте с ин­стру­мен­та­ми на ос­но­ве ис­кус­ствен­но­го ин­тел­лек­та и сред­ства­ми раз­ра­бот­ки ПО си­ла­ми ко­неч­ных поль­зо­ва­те­лей.

Клю­че­вые сло­ва: Agile, Devops, ин­те­гра­ция раз­ра­бот­ки и экс­плу­а­та­ции Keywords: Continuous delivery and continuous feedback

Из­на­чаль­но ПО раз­ра­ба­ты­ва­лось бес­си­стем­но — про­грам­ми­сты обыч­но спе­ци­аль­но не обу­ча­лись раз­ра­бот­ке и ос­но­вам про­грамм­ной ин­же­не­рии, но име­ли от­лич­ную ма­те­ма­ти­че­скую под­го­тов­ку и хо­ро­шо раз­би­ра­лись в пред­мет­ной об­ла­сти. Для про­грам­ми­ро­ва­ния ис­поль­зо­ва­лись от­дель­ные ма­ши­ны, не под­клю­чен­ные к се­ти, и от­сут­ство­вал еди­ный на­бор прин­ци­пов и ме­то­дов. Раз­ра­бот­ка в то вре­мя боль­ше на­по­ми­на­ла ре­мес­ло, чем ин­же­нер­ную дис­ци­пли­ну.

Со вре­ме­нем ро­ди­лась дис­ци­пли­на про­грамм­ной ин­же­не­рии, уста­но­вив­шая для про­цес­сов раз­ра­бот­ки бо­лее стро­гие рам­ки. В 1970-х, 80-х и на­ча­ле 90-х го­дов про­ис­хо­дил рост чис­ла про­грамм­ных си­стем, рас­ши­ря­лась об­ласть их при­ме­не­ния, уве­ли­чи­ва­лась чис­лен­ность раз­ра­бот­чи­ков. По­яви­лась Все­мир­ная па­у­ти­на. Про­бле­мы, свя­зан­ные с ин­же­не­ри­ей ПО, рос­ли как снеж­ный ком, что за­ста­ви­ло сфор­ми­ро­вать на­бор прин­ци­пов, ме­то­дов, прак­тик и ин­стру­мен­тов, об­лег­ча­ю­щих раз­ра­бот­ку.

В усло­ви­ях пе­ре­хо­да на слож­ные про­цес­сы, стро­гие прин­ци­пы управ­ле­ния про­ек­та­ми, ин­стру­мен­ты, ме­то­ды из­ме­ре­ния и ве­де­ния до­ку­мен­та­ции ста­ли за­бы­вать о человеке как глав­ном субъ­ек­те про­цес­са раз­ра­бот­ки. В ито­ге, в са­мом кон­це про­шло­го ве­ка по­яви­лась аль­тер­на­ти­ва гос­под­ство­вав­шим то­гда слож­ным ме­то­дам — ме­то­ди­ка Agile, пред­ла­гав­шая упо­ря­до­чен­ные, но про­стые про­цес­сы и по­ме­щав­шая в центр раз­ра­бот­ки де­я­тель­ность, опыт и вза­и­мо­дей­ствие лю­дей [1]. Agile со­хра­ня­ет стро­гость ин­же­нер­ных про­цес­сов и оп­ти­маль­ных ме­то­дов, но луч­ше по­мо­га­ет со­зда­вать, раз­вер­ты­вать и со­про­вож­дать слож­ное ПО.

Се­год­ня Agile — круп­ней­шее на­прав­ле­ние про­грамм­ной ин­же­не­рии как с прак­ти­че­ской, так и с ис­сле­до­ва­тель­ской то­чек зре­ния. Фор­ма­ли­зо­ван­ная в «Ма­ни­фе­сте Agile-раз­ра­бот­ки» в ви­де 4 цен­но­стей и 12 прин­ци­пов, эта ме­то­до­ло­гия ста­ла се­год­ня пред­по­чти­тель­ным стан­дар­том раз­ра­бот­ки ПО во всем ми­ре.

AGILE НА ПРАК­ТИ­КЕ

Среди ор­га­ни­за­ций, при­няв­ших уча­стие в по­след­нем ан­ке­ти­ро­ва­нии State Of Agile (опро­се об Agile-раз­ра­бот­ке, са­мом мас­штаб­ном и име­ю­щем са­мую дли­тель­ную ис­то­рию про­ве­де­ния среди ему по­доб­ных), в 2018 го­ду ско­рые ме­то­ды в той или иной сте­пе­ни при­ме­ня­ли 97% ком­па­ний и пред­при­я­тий. Для срав­не­ния, в 2007 го­ду, ко­гда опрос про­во­дил­ся впер­вые, ана­ло­гич­ный по­ка­за­тель со­ста­вил 84%. Со­глас­но по­след­не­му опро­су, в 52% ор­га­ни­за­ций от 50 до 100% групп раз­ра­бот­чи­ков прак­ти­ко­ва­ли Agile.

Са­мым по­пу­ляр­ным ва­ри­ан­том Agile оста­ет­ся Scrum: в 2007 го­ду им поль­зо­ва­лись 40% ре­спон­ден­тов, то­гда как в 2018 го­ду 56% при­ме­ня­ли его от­дель­но, а 70% — в со­че­та­нии с дру­ги­ми ме­то­да­ми. Ме­то­ды экс­тре­маль­но­го про­грам­ми­ро­ва­ния (Extreme Programming, XP), в 2007 го­ду за­ни­мав­шие вто­рое ме­сто (23%), в 2018 го­ду по­лу­чи­ли лишь 6% в со­че­та­нии со Scrum. Kanban, при­ме­ня­е­мый от­дель­но (5%) и в со­че­та­нии со Scrum (Scrumban, 8%), вы­тес­нил с тре­тье­го ме­ста ме­тод раз­ра­бот­ки ди­на­ми­че­ских си­стем (dynamic systems development method, DSDM), ко­то­рый по­лу­чил 8%. Еще один ре­зуль­тат 2018 го­да: в 71% ор­га­ни­за­ций со­об­щи­ли, что пла­ни­ру­ют вло­жить­ся в про­ек­ты Devops или уже ин­ве­сти­ро­ва­ли в них.

Среди про­блем, упо­ми­нав­ших­ся участ­ни­ка­ми са­мо­го пер­во­го опро­са, — от­сут­ствие пред­ва­ри­тель­но­го пла­ни­ро­ва­ния, до­ку­мен­та­ции и пред­ска­зу­е­мо­сти про­цес­са раз­ра­бот­ки, а та­к­же по­те­ря ру­ко­во­ди­те­ля­ми кон­тро­ля над про­ек­та­ми. В 2018 го­ду глав­ные слож­но­сти уже ка­са­лись пе­ре­хо­да на ор­га­ни­за­ци­он­ную куль­ту­ру Agile

и бы­ли вы­зва­ны со­про­тив­ле­ни­ем пе­ре­ме­нам и недо­ста­точ­ной под­держ­кой со сто­ро­ны ру­ко­вод­ства.

Од­ним из при­ме­ча­тель­ных ре­зуль­та­тов по­след­не­го опро­са ста­ло то, что в 84% ор­га­ни­за­ций про­цес­сы Agile все еще не до­стиг­ли ста­дии зре­ло­сти, а зна­чит, по-преж­не­му су­ще­ству­ет про­стран­ство для ис­сле­до­ва­ний в об­ла­сти осво­е­ния и ис­поль­зо­ва­ния Agile.

ИС­СЛЕ­ДО­ВА­НИЯ В ОБ­ЛА­СТИ AGILE

В те­че­ние по­след­них двух де­сят­ков лет ме­то­до­ло­гия Agile показала фе­но­ме­наль­ный рост при­ме­не­ния и ста­ла важ­ным объ­ек­том ис­сле­до­ва­ний в об­ла­сти про­грамм­ной ин­же­не­рии. Ос­нов­ные на­прав­ле­ния ис­сле­до­ва­ний: внед­ре­ние, ме­то­ды, прак­ти­ки, кад­ро­вые и со­ци­аль­ные ас­пек­ты, Agile и ин­же­не­рия ПО во всем ми­ре, Agile и удоб­ство ис­поль­зо­ва­ния, Agile и на­бор мо­де­лей CMMI (Capability Maturity Model Integration), ор­га­ни­за­ци­он­ная гиб­кость, Agile и встро­ен­ные си­сте­мы, про­ек­ти­ро­ва­ние про­дук­то­вых ли­не­ек.

Наи­бо­лее ак­тив­но изу­ча­ют­ся прак­ти­ки Agile. В этой об­ла­сти пред­став­ле­но семь си­сте­ма­ти­че­ских об­зо­ров по та­ким те­мам, как раз­ра­бот­ка че­рез те­сти­ро­ва­ние, мет­ри­ки, оцен­ка объ­е­ма уси­лий и тре­бо­ва­ния. Мно­го об­зо­ров по­свя­ще­но на­прав­ле­нию «Agile и удоб­ство ис­поль­зо­ва­ния», од­на из ос­нов­ных тем ко­то­рых — ин­те­гра­ция поль­зо­ва­тель­ско­го опы­та в Agile-про­цес­сы, что не­уди­ви­тель­но, с уче­том важ­но­сти прин­ци­па ори­ен­та­ции на че­ло­ве­ка при раз­ра­бот­ке по этой ме­то­до­ло­гии. Сле­ду­ю­щее по важ­но­сти на­прав­ле­ние — «Agile и гло­баль­ные груп­пы раз­ра­бот­ки ПО».

К чис­лу до­пол­ни­тель­ных сфер ак­тив­ных ис­сле­до­ва­ний, вполне за­слу­жи­ва­ю­щих от­дель­но­го об­зо­ра, от­но­сят­ся обу­че­ние прин­ци­пам Agile и пар­ное про­грам­ми­ро­ва­ние — один из наи­бо­лее по­пу­ляр­ных ме­то­дов XP.

ЭВО­ЛЮ­ЦИЯ AGILE

Су­дя по ана­ли­зу от­рас­ли, кон­сен­су­са от­но­си­тель­но сро­ков по­яв­ле­ния кон­крет­ных тен­ден­ций в об­ла­сти Agile нет, од­на­ко мож­но про­сле­дить даты вы­хо­да пер­вых ис­сле­до­ва­тель­ских до­кла­дов по со­от­вет­ству­ю­щим те­мам. На ос­но­ва­нии этих све­де­ний бы­ла со­став­ле­на хро­но­ло­гия по­яв­ле­ния и раз­ви­тия Agile-раз­ра­бот­ки (см. ри­су­нок) [1–3].

На ран­них эта­пах ис­сле­до­ва­лись фун­да­мен­таль­ные ос­но­вы: ме­то­ды, внед­ре­ние, прак­ти­ки, гу­ма­ни­тар­ный и со­ци­аль­ный ас­пек­ты, обо­зна­чен­ные на ри­сун­ке как «За­клад­ка ос­нов». По­сколь­ку в боль­шин­стве ор­га­ни­за­ций про­цес­сы Agile все еще не до­стиг­ли зре­ло­сти, мно­гие из фун­да­мен­таль­ных тем по-преж­не­му ак­ту­аль­ны. Кро­ме то­го, са­ми участ­ни­ки ис­сле­до­ва­тель­ско­го со­об­ще­ства про­дол­жа­ют при­зы­вать к со­зда­нию бо­лее проч­ных тео­ре­ти­че­ских ос­нов Agile.

Тен­ден­ция ин­те­гра­ции с про­грамм­ной ин­же­не­ри­ей, по­явив­ша­я­ся в на­ча­ле-се­ре­дине 2000-х го­дов, ка­са­лась вза­и­мо­от­но­ше­ний Agile с тра­ди­ци­он­ны­ми раз­де­ла­ми про­грамм­ной ин­же­не­рии, та­ки­ми как удоб­ство ис­поль­зо­ва­ния, раз­ра­бот­ка тре­бо­ва­ний, гло­баль­ная раз­ра­бот­ка, про­ек­ти­ро­ва­ние ар­хи­тек­ту­ры ПО и про­ек­ти­ро­ва­ние си­стем, кри­тич­ных к без­опас­но­сти. Позд­нее воз­ник­ли по­хо­жие тен­ден­ции, в том чис­ле ин­те­гра­ция Agile c CMMI (ко­нец 2000-х го­дов) и при­ме­не­ние Agile для раз­ра­бот­ки игр. Боль­шин­ство из них по-преж­не­му ак­ту­аль­ны, при­чем на фоне ак­тив­но­го раз­ви­тия блок­чей­нов и крип­то­ва­лют на­блю­да­ет­ся всплеск ин­те­ре­са к про­бле­мам без­опас­но­сти и раз­ра­бот­ки си­стем, кри­тич­ных к без­опас­но­сти.

Из­на­чаль­но глав­ны­ми плю­са­ми Agile счи­та­ли ком­пакт­ные, ра­бо­та­ю­щие в од­ном ме­сте груп­пы, бли­зость к за­каз­чи­ку, ак­цент на про­грам­ми­ро­ва­нии и ран­нем те­сти­ро­ва­нии, а та­к­же быст­рое по­лу­че­ние от­кли­ков по каж­дой ите­ра­ции вы­пу­щен­но­го ПО. Од­на­ко в се­ре­дине 2000-х го­дов про­изо­шел «вы­ход из зо­ны ком­фор­та»: на­чал­ся пе­ре­ход от ма­лых групп к круп­но­мас­штаб­ным и к при­ме­не­нию ги­брид­но­го под­хо­да — Agile на уровне ин­ди­ви­ду­аль­ных групп и тра­ди­ци­он­ные ме­то­ды раз­ра­бот­ки и пла­ни­ро­ва­ния на уровне ор­га­ни­за­ции в це­лом.

В се­ре­дине 2010-х го­дов Agile на­чи­на­ют при­ме­нять не толь­ко в раз­ра­бот­ке, воз­ник­ла необ­хо­ди­мость в обес­пе­че­нии вза­и­мо­дей­ствия меж­ду про­цес­са­ми раз­ра­бот­ки и экс­плу­а­та­ции в рам­ках ме­то­дов Devops, в ко­то­рые от­лич­но укла­ды­ва­ют­ся прин­ци­пы непре­рыв­ной по­став­ки и об­рат­ной свя­зи поль­зо­ва­те­лей с раз­ра­бот­чи­ка­ми. Вме­сте с тем по­яв­ля­ет­ся ряд во­про­сов тех­ни­че­ско­го, со­ци­аль­но-тех­но­ло­ги­че­ско­го и ор­га­ни­за­ци­он­но­го ха­рак­те­ра. На­при­мер, ко­гда и как нуж­но со­би­рать от­кли­ки кли­ен­тов и ре­а­ги­ро­вать на них, ко­гда вно­сить из­ме­не­ния; как по­сту­пать, ес­ли ПО раз­вер­ну­то в несколь­ких ор­га­ни­за­ци­ях с раз­ны­ми тре­бо­ва­ни­я­ми поль­зо­ва­те­лей; как эф­фек­тив­но те­сти­ро­вать непре­рыв­но вы­пус­ка­е­мое ПО в случае се­рьез­ных из­ме­не­ний ин­фра­струк­ту­ры; как из­ме­не­ния в Devops вли­я­ют на Agile-прак­ти­ки.

Еще од­на важ­ная тен­ден­ция — при­ме­не­ние Agile с на­ча­ла это­го ве­ка за рам­ка­ми раз­ра­бот­ки ПО, в смеж­ных об­ла­стях, в том чис­ле в сфе­ре управ­ле­ния зна­ни­я­ми и ин­фор­ма­ци­он­ных си­сте­мах. Бла­го­да­ря прин­ци­пу ори­ен­та­ции на че­ло­ве­ка, Agile уда­лось зна­чи­тель­но сбли­зить дис­ци­пли­ны про­грамм­ной ин­же­не­рии и ин­фор­ма­ци­он­ных си­стем. Пер­вая по­за­им­ство­ва­ла у вто­рой нема­ло фун­да­мен­таль­ных тео­ре­ти­че­ских ос­нов, а та, в свою оче­редь, по­лу­чи­ла поль­зу от прак­ти­че­ских ис­сле­до­ва­ний, ка­са­ю­щих­ся при­ме­не­ния Agile в про­грамм­ной ин­же­не­рии.

Кро­ме то­го, на­чи­ная с се­ре­ди­ны ну­ле­вых го­дов ме­то­ды Agile по­лу­чи­ли рас­про­стра­не­ние в сфе­ре встро­ен­ных си­стем, а с се­ре­ди­ны 2010-х го­дов — в сфе­ре про­ек­ти­ро­ва­ния про­дук­то­вых ли­не­ек. При этом в обо­их слу­ча­ях име­лись свои соб­ствен­ные усто­яв­ши­е­ся про­цес­сы, прак­ти­че­ские ме­то­ды, прин­ци­пы из­ме­ре­ния и куль­ту­ра вза­и­мо­дей­ствия. В част­но­сти, в ми­ре встро­ен­ных си­стем ин­же­не­ры ча­ще все­го при­ме­ня­ли кас­кад­ный ме­тод, опи­ра­ю­щий­ся на пла­ни­ро­ва­ние, до­ку­мен­та­цию, из­ме­ре­ния и ин­стру­мен­ты про­ек­ти­ро­ва­ния на ос­но­ве мо­де­лей.

Внед­ре­ние прин­ци­пов Agile в этих об­ла­стях про­ис­хо­ди­ло с тру­дом, од­на­ко осво­е­ние осу­ществ­ля­лось быст­ро, и се­год­ня стре­ми­тель­ное внед­ре­ние Agile на­блю­да­ет­ся в ав­то­мо­биль­ной ин­ду­стрии, ко­то­рая с по­яв­ле­ни­ем са­мо­пи­ло­ти­ру­е­мых ма­шин все силь­нее по­ла­га­ет­ся на раз­ра­бот­ку ПО.

Ко­нец ны­неш­не­го де­ся­ти­ле­тия озна­ме­но­вал­ся ин­те­ре­сом к при­ме­не­нию Agile в раз­ра­бот­ке мик­ро­сер­ви­сов, пол­но­стью ме­ня­ю­щих прин­ци­пы ком­по­нов­ки ПО, что вли­я­ет на про­ек­ти­ро­ва­ние ар­хи­тек­ту­ры и раз­вер­ты­ва­ние про­грамм­ных про­дук­тов, за­став­ляя ста­вить но­вые во­про­сы — на­при­мер, как обес­пе­чить ба­ланс меж­ду прак­ти­ка­ми Agile и мик­ро­сер­вис­ны­ми ар­хи­тек­ту­ра­ми, со­зда­ние ко­то­рых тре­бу­ет опре­де­лен­но­го объ­е­ма пред­ва­ри­тель­но­го пла­ни­ро­ва­ния.

AGILE В БУ­ДУ­ЩЕМ

Се­год­ня Agile раз­ви­ва­ет­ся в кон­тек­сте раз­ра­бот­ки но­вых тех­но­ло­гий Ин­тер­не­та ве­щей, ана­ли­ти­ки боль­ших дан­ных, со­зда­ния си­стем до­пол­нен­ной и вир­ту­аль­ной ре­аль­но­сти, по­яв­ле­ния ин­тел­лек­ту­аль­ных ре­ше­ний. Кро­ме то­го, на по­ро­ге но­во­го де­ся­ти­ле­тия в раз­ра­бот­ке ПО на­чи­на­ют ис­поль­зо­вать­ся воз­мож­но­сти на ос­но­ве ис­кус­ствен­но­го ин­тел­лек­та и воз­об­нов­ля­ет­ся ин­те­рес к прин­ци­пу раз­ра­бот­ки си­ла­ми ко­неч­но­го поль­зо­ва­те­ля. Мож­но ожи­дать, что в рам­ках ис­сле­до­ва­ний бу­дет изу­чать­ся це­лый ряд но­вых во­про­сов.

Как ис­поль­зо­вать Agile в рам­ках про­цес­сов ин­же­не­рии ПО, ос­но­ван­ных на ис­кус­ствен­ном ин­тел­лек­те?

К се­го­дняш- нему дню су­ще­ствен­но вы­рос­ло чис­ло пуб­ли­ка­ций о про­грамм­ных ин­стру­мен­тах, опи­ра­ю­щих­ся на сред­ства ис­кус­ствен­но­го ин­тел­лек­та, и, на­обо­рот, о при­ме­не­нии ис­кус­ствен­но­го ин­тел­лек­та для оп­ти­ми­за­ции Agile-раз­ра­бот­ки.

Мо­жет ли Agile усо­вер­шен­ство­вать про­цес­сы ис­сле­до­ва­ния дан­ных (data science) и ана­ли­ти­ки так же, как бы­ла усо­вер­шен­ство­ва­на про­грамм­ная ин­же­не­рия? В ка­кой сте­пе­ни ме­то­ды Agile спо­соб­ны по­вли­ять на ин­ду­стрию Ин­тер­не­та ве­щей? Как обес­пе­чить эф­фек­тив­ность ра­бо­ты про­ек­ти­ров­щи­ков поль­зо­ва­тель­ских ин­тер­фей­сов все­воз­мож­ных устройств в рам­ках групп Agile-раз­ра­бот­ки и мож­но ли про­ек­ти­ро­вать ап­па­рат­ное обес­пе­че­ние «ве­щей» с по­мо­щью ме­то­дов Agile?

Без­опас­ность как неиз­мен­но важ­ная про­бле­ма для раз­ра­бот­чи­ков и поль­зо­ва­те­лей. С од­ной сто­ро­ны, прак­ти­ки Agile и непре­рыв­ной до­став­ки ПО мож­но ис­поль­зо­вать для быст­ро­го ис­прав­ле­ния про­блем без­опас­но­сти, с дру­гой, ста­но­вит­ся все ак­ту­аль­нее по­треб­ность в бо­лее тща­тель­ном те­сти­ро­ва­нии на за­щи­щен­ность пе­ред раз­вер­ты­ва­ни­ем при­ло­же­ний. Вме­сте с тем те­сти­ро­ва­ние не предот­вра­тит угро­зы «ну­ле­во­го дня», а ис­прав­ле­ние по прин­ци­пу Agile во мно­гих об­сто­я­тель­ствах бу­дет непри­ем­ле­мо. Как обес­пе­чить га­ран­ти­ро­ван­ное вы­пол­не­ние тре­бо­ва­ний без­опас­но­сти с по­мо­щью ме­то­дов Agile?

Как с по­мо­щью про­цес­сов Agile обес­пе­чить под­держ­ку раз­ра­бот­ки кри­тич­ных к без­опас­но­сти си­стем, в том чис­ле для про­грамм­но-кон­фи­гу­ри­ру­е­мых си­стем, бес­пи­лот­ных транс­порт­ных средств и ро­бо­то­тех­ни­че­ских ком­плек­сов?

Все ши­ре бу­дет при­ме­нять­ся прак­ти­ка раз­ра­бот­ки слож­но­го ПО си­ла­ми ко­неч­ных поль­зо­ва­те­лей, в том чис­ле пу­тем про­грам­ми­ро­ва­ния, на­строй­ки, ком­по­нов­ки или со­че­та­ния этих ме­то­дов. Спо­соб­ны ли Agile-прак­ти­ки по­мочь неспе­ци­а­ли­стам быст­ро и эф­фек­тив­но со­вер­шен­ство­вать и раз­вер­ты­вать ком­по­нен­ты ис­поль­зу­е­мых ими про­грамм­ных си­стем? Со­трут­ся ли гра­ни­цы меж­ду про­фес­си­о­наль­ны­ми груп­па­ми Agile-раз­ра­бот­ки и раз­ра­бот­чи­ка­ми — ко­неч­ны­ми поль­зо­ва­те­ля­ми?

Как обес­пе­чить успех при­ме­не­ния Agile и Devops в но­вых пред­мет­ных об­ла­стях, в том чис­ле для раз­ра­бот­ки ин­тел­лек­ту­аль­ных си­стем, ра­бо­та­ю­щих с боль­ши­ми объ­е­ма­ми дан­ных? ***

За­ро­див­шись в кон­це 1990-х го­дов, се­год­ня ме­то­ды Agile ста­ли гос­под­ство­вать в ми­ре про­грамм­ной ин­же­не­рии, прой­дя путь от фор­ми­ро­ва­ния ос­нов и ин­те­гра­ции с тра­ди­ци­он­ны­ми эле­мен­та­ми раз­ра­бот­ки до при­ме­не­ния с ин­стру­мен­та­ми на ос­но­ве ис­кус­ствен­но­го ин­тел­лек­та и сред­ства­ми со­зда­ния ПО си­ла­ми ко­неч­ных поль­зо­ва­те­лей.

Ос­нов­ная об­ласть ис­сле­до­ва­ний се­год­ня — прак­ти­че­ское при­ме­не­ние Agile сов­мест­но с усто­яв­ши­ми­ся па­ра­диг­ма­ми про­грамм­ной ин­же­не­рии. Долж­ны быть изу­че­ны ба­рье­ры, ло­ка­ли­зо­ва­ны зо­ны кон­флик­тов и си­нер­гии, вы­ра­бо­та­ны стра­те­гии раз­ви­тия и на­ме­че­ны об­ход­ные пу­ти ре­ше­ния про­блем. Вый­дя за рам­ки пер­во­на­чаль­ных ком­пакт­ных групп, Agile се­год­ня при­ме­ня­ет­ся сов­мест­но с Devops в про­ек­тах мас­шта­ба кор­по­ра­ций.

Несмот­ря на то что ис­то­рия при­ме­не­ния ме­то­до­ло­гии на­счи­ты­ва­ет уже два де­сят­ка лет, в ор­га­ни­за­ци­ях все еще не при­шли к нуж­ной ста­дии зре­ло­сти про­цес­сов внед­ре­ния, оп­ти­ми­за­ции и адап­та­ции Agile-прак­тик. Од­ним из объ­ек­тов ис­сле­до­ва­ний яв­ля­ет­ся фун­да­мен­таль­ная про­бле­ма управ­ле­ния из­ме­не­ни­я­ми в рам­ках про­цес­са, тре­бу­ю­ще­го как мож­но бо­лее быст­рых пе­ре­мен. Но, несмот­ря на неуве­рен­ность в уровне зре­ло­сти Agile-про­цес­сов, ин­же­не­ров ПО се­год­ня вос­при­ни­ма­ют как экс­пер­тов по Agile в смеж­ных об­ла­стях, та­ких как встро­ен­ные си­сте­мы и про­ек­ти­ро­ва­ние про­дук­то­вых ли­не­ек. Спе­ци­а­ли­сты с прак­ти­че­ским опы­том в об­ла­сти Agile мо­гут по­мо­гать во внед­ре­нии ско­рых ме­то­дов вне раз­ра­бот­ки ПО, в том чис­ле в управ­ле­нии пер­со­на­лом, в ло­ги­сти­ке и мар­ке­тин­ге, управ­ле­нии про­ек­та­ми, ис­сле­до­ва­ни­ях и раз­ра­бот­ке, при­ме­няя уро­ки, усво­ен­ные в «род­ной» сфе­ре и адап­ти­руя их для но­вых усло­вий.

За­гля­ды­вая в бу­ду­щее, мож­но пред­ви­деть вза­им­ное по­лез­ное вли­я­ние Agile, тех­но­ло­гий Ин­тер­не­та ве­щей, сер­ви­сов об­ра­бот­ки боль­ших дан­ных, ис­кус­ствен­но­го ин­тел­лек­та и ме­то­дов раз­ра­бот­ки си­ла­ми ко­неч­ных поль­зо­ва­те­лей.

Newspapers in Russian

Newspapers from Russia

© PressReader. All rights reserved.