Иди на текст

Ограничења при развоју софтвера

Кад би развојни тим имао неограничено времена, неограничен буџет и неограничен број стручњака на располагању, готово сваки софтверски производ могао би да буде готово савршен. У стварности, сваки пројекат се одвија унутар одређених граница које се морају поштовати. Управо та ограничења у великој мери одређују како ће пројекат бити испланиран и који ће се компромиси направити.

Шта су ограничења пројекта?

Ограничења пројекта су фактори који лимитирају начин на који се пројекат може извршити - они дефинишу оквир (границе) унутар којих тим мора да пронађе решење, утичући на обим, квалитет, брзину или начин извођења пројекта.

Троугао пројектног менаџмента

Најпознатији приказ основних ограничења сваког пројекта јесте такозвани "троугао пројектног менаџмента" (енгл. Project Management Triangle), који чине три међусобно повезана ограничења:

  • Обим (енгл. Scope): Шта тачно треба да буде урађено - које функционалности производ треба да има.
  • Време (енгл. Time): До ког рока производ (или његов део) мора бити готов.
  • Трошак (енгл. Cost): Колики је буџет на располагању - новац за плате, алате, инфраструктуру итд.

Ова три ограничења су међусобно зависна - промена једног готово увек утиче на друга два. У средишту троугла обично се налази квалитет, који трпи последице уколико се са преостала три ограничења не поступа пажљиво.

Зашто се троугао пројектног менаџмента понекад назива и „изабери два од три“?

Зато што у пракси није могуће истовремено имати широк обим, кратак рок и мали трошак уз задржан висок квалитет - ако наручилац инсистира на већем обиму посла и краћем року, то ће неминовно захтевати већи буџет (нпр. више програмера), или ће квалитет производа трпети последице.

На пример, ако клијент затражи да се дода нова, обимна функционалност (промена обима), а рок остаје исти (време је фиксно), тим ће морати или да ангажује додатне раднике (повећање трошка), или да прихвати пад квалитета кроз мање тестирања и брже, мање пажљиво писање кода.

Остале врсте ограничења

Осим три основна ограничења из троугла, на пројекат утичу и друга, подједнако важна ограничења:

  • Техничка ограничења: Постојећа инфраструктура, застарели системи са којима нови софтвер мора да буде компатибилан, ограничења изабране технологије или платформе (нпр. апликација мора да ради и на старијим верзијама Android-а).
  • Ограничења људских ресурса: Број доступних чланова тима, њихово искуство и специфична знања. Недостатак стручњака за одређену технологију може озбиљно успорити пројекат, без обзира на буџет.
  • Правна и регулаторна ограничења: Закони и прописи које софтвер мора да поштује - на пример, ГДПР (заштита личних података у ЕУ), прописи о финансијском пословању за банкарски софтвер, или медицински стандарди за софтвер који се користи у здравству.
  • Организациона ограничења: Интерна правила компаније, устаљени процеси, алати које компанија већ користи, или чак организациона култура која може успорити увођење нових пракси.
  • Ограничења животне средине (енгл. Environmental constraints): Услови у којима софтвер мора да функционише - на пример, апликација за теренски рад мора да ради и уз слаб или нестабилан интернет сигнал.

Ограничења као подстицај, не само препрека

Иако ограничења звуче негативно, она нису искључиво препрека - она усмеравају тим ка реалистичним и фокусираним решењима. Без икаквих граница, пројекти често пате од такозваног „ширења обима“ (енгл. Scope Creep) - непрестаног додавања нових функционалности без јасног краја, што готово увек доводи до кашњења, прекорачења буџета или пада квалитета.

Добар инжењер и добар менаџер пројекта не покушавају да игноришу ограничења, већ их узимају у обзир још у фази планирања и доносе свесне, документоване одлуке о томе шта ће бити приоритет, а шта ће морати да сачека или буде изостављено.

Задатак

Замисли да си добио задатак да развијеш мобилну апликацију за резервисање термина у фризерском салону, са роком од само 6 недеља и буџетом који дозвољава ангажовање само двоје програмера.

  1. Наведи бар четири различита ограничења (из ове лекције) која би могла да утичу на овај пројекат и укратко их образложи у контексту овог примера.
  2. Клијент, након две недеље рада, тражи да се дода и функционалност онлајн плаћања, без помака рока и без повећања буџета. Објасни, позивајући се на троугао пројектног менаџмента, шта тим реално може да уради у овој ситуацији и које компромисе би требало да предложи клијенту.