JavaRush /Java Blogu /Random-AZ /Proqram təminatının hazırlanması metodologiyaları haqqınd...

Proqram təminatının hazırlanması metodologiyaları haqqında bilməli olduğunuz hər şey: yeni başlayanlar üçün tendensiyalar, prinsiplər və tələlər

Qrupda dərc edilmişdir
Proqram təminatının inkişafı mürəkkəb bir iş prosesidir. Bu o deməkdir ki, İT optimallaşdırma, planlaşdırma və hesablama dilində danışmalıdır. Proqram təminatının hazırlanması metodologiyaları haqqında bilməli olduğunuz hər şey: yeni başlayanlar üçün tendensiyalar, prinsiplər və tələlər - 1İdarəetmə konsepsiyalarını başa düşmək həm işəgötürənlər, həm də tərtibatçılar üçün böyük üstünlük təmin edir və əməkdaşlığı növbəti səviyyəyə qaldırmağa kömək edir.

Başlayanlar üçün qeyd: modellər, metodologiyalar və ümumi qarışıqlıq

Başlamaq üçün vacib bir aydınlıq: proqram təminatının inkişafı üçün ayrıca modellər və bu inkişaf üçün ayrıca metodologiya var. Modellər sistemin gələcək davranışını proqnozlaşdırır. Sistemin lazım olduğu kimi işləməsi üçün metodologiyalar lazımdır. Proqram təminatının işlənib hazırlanması modelləri və metodologiyalarını çaşdırmaq hər bir İT təcrübəsinin müqəddəs vəzifəsidir, ona görə də bu, kobud səhv hesab edilmir. Bununla belə, modellər xəttiliyi, hər bir mərhələ üçün aydın hədəf təyini və son tarixlərə ciddi nəzarəti ilə klassik kaskadlı Şəlalədir . Modellər layihə risklərinin erkən müəyyən edilməsinə və azaldılmasına yönəlmiş spiraldır . Spiral inkişafı kiçik miqyasda başlayır, əvvəlcə yerli problemləri həll edir, sonra isə daha mürəkkəbdir. Yekun model IID- dir, layihənin həyat dövrünü hər biri “mini layihəyə” bənzəyən iterasiya ardıcıllığına bölür. Ümumiyyətlə, model proqram təminatının inkişaf prosesini təsvir edən bir şeydir . Lakin metodologiyalar təyin edilmiş tapşırıqlar üzrə işlərə nəzarət, qiymətləndirmə və monitorinq sistemləridir. Metodologiyalar inkişaf prosesinin hər bir halqasını idarə etmək üçün lazım olan müasir inkişafın kökü və çubuğudur. Onlar layihənin istiqaməti, onun büdcəsi və son məhsulun vaxtı əsasında seçilir. Bundan əlavə, metodologiyalar layihə rəhbərinin və onun komandasının temperamentinə əsasən seçilə bilər. Hətta şirkətin və ya müştərinin fəlsəfəsinə əsaslanaraq. Ən məşhur metodologiyalara baxaq.

1. Scrum metodologiyası

Scrum çevik layihə idarəetmə üsuludur . O, "sprintlərə" əsaslanır - qısa təkrarlamalar, ciddi şəkildə vaxtla məhdudlaşır (adətən 2-4 həftə). Görüşlərin müddəti minimuma endirilir, lakin onların tezliyi artır. Hər bir sprint iterasiyanın sonuna qədər tapşırıqlar siyahısından ibarətdir və onların hər birinin öz “çəkisi” var. Görüşlər zamanı komanda kimin nə etdiyini, nə edəcəyini və hansı problemlərin olduğunu müzakirə edir. Scrum planlaşdırma üçün sprint jurnalından istifadə edir. Bu yanaşmada komandada tez-tez Scrum ustası peyda olur, o, bütün komandanın fasiləsiz işini qurur, bunun üçün rahat şərait yaradır. Həmçinin layihədə Məhsul Sahibinin rolu görünür - inkişaf meneceri, məhsula nəzarət edən və müştərinin istəyi ilə komandanın nəticəsi arasında əsas əlaqə rolunu oynayan şəxs.

Müsbət cəhətləri:

  • mümkün olan ən aşağı büdcə ilə tez layihənin işə salınması;
  • işin gedişatının gündəlik monitorinqi, layihənin tez-tez nümayişi;
  • layihə irəlilədikcə dəyişiklik etmək imkanı.

Minuslar:

  • sabit büdcənin olmaması səbəbindən müqavilələrin bağlanmasında çətinliklər;
  • komandanın aşağı ixtisası, düzgün qiymətləndirilməmiş iş müddətləri və ya büdcə ilə işləmir;
  • sprintlər arasında davamlı olaraq dəyişiklik etmək bacarığı çaşqınlıq yarada bilər.

Kim üçün uyğundur:

Bu sistem on nəfərə qədər olan layihələr üçün uyğundur - müstəqil və ya böyük şirkətlər daxilində. Komandanın böyük iş həcmi və uzun ömür dövrü varsa, bu, onları dəyişməyə və yeni bazar şərtlərinə uyğunlaşmağa məcbur edirsə, bu rahatdır.

2. Kanban metodologiyası

Kanban-ın ən vacib xüsusiyyəti layihənin həyat dövrünün vizuallaşdırılmasıdır . Fərdi olaraq təqdim olunan tapşırıqları yerinə yetirmək üçün sütunlar yaradılır. Sütunlar aşağıdakı kimi markerlərlə qeyd olunur: Ediləcək, Davam edir, Kod nəzərdən keçirilir, Test edilir, Bitdi (sütunların adları, əlbəttə ki, dəyişə bilər). Hər bir komanda üzvünün məqsədi birinci sütundakı tapşırıqların sayını azaltmaqdır. Kanban yanaşması vizualdır və problemin harada olduğunu anlamağa kömək edir. Kanban strukturu qəti və dönməz şəkildə müəyyən edilmir: layihənin xüsusiyyətlərindən asılı olaraq, doğaçlama sütunları əlavə edilə bilər. Məsələn, bəzi komandalar tapşırığı yerinə yetirməzdən əvvəl onun hazırlığı meyarlarını müəyyən etməli olduqları sistemdən istifadə edirlər. Sonra iki sütun əlavə olunur - təyin edin (parametrləri göstərin) və icra edin (işləməyə başlayın).

Müsbət cəhətləri:

  • planlaşdırma çevikliyi. Komanda yalnız cari işə diqqət yetirir, tapşırığın prioriteti də müəyyən edilir;
  • görmə qabiliyyəti. Bütün aktorların məlumatlara çıxışı olduqda, qlobal problemlərin fərqinə varmaq daha asan olur;
  • inkişaf prosesində yüksək iştirak. Prosesin vizuallaşdırılması özünü təşkili və özünə nəzarəti artırır.

Minuslar:

  • beş nəfərdən çox olan komandalarla işləmir;
  • uzunmüddətli planlaşdırma üçün nəzərdə tutulmamışdır;
  • motivasiya olmadan komandada işləmək üçün uyğun deyil. Kanbanda hər bir tapşırıq üçün müəyyən edilmiş müddətlər yoxdur və metodologiya gecikməyə görə cərimələri nəzərdə tutmur.

Kim üçün uyğundur:

Kanban, komandanın inkişaf etmək və nəticə əldə etmək üçün motivasiya olunduğu şirkətlərdə əla işləyir. Artıq göründüyü kimi, kiçik bir komanda. Bəlkə də bir bölmə və ya komandanın bir hissəsi.

3. RUP metodologiyası

RUP metodologiyası iterativ inkişaf modelindən istifadə edir. Hər iterasiyanın sonunda (2-6 həftə çəkir) komanda planlaşdırılan məqsədlərə nail olmalı və layihənin müvəqqəti, lakin işlək versiyasına malik olmalıdır. RUP layihənin dörd mərhələyə bölünməsini nəzərdə tutur , hər birində məhsulun yeni nəsli üzərində iş aparılır: layihənin başlanğıc mərhələsi, dəqiqləşdirmə, tikinti və icra. Mərhələnin sonunda mərhələ tamamlama işarəsi (Project Milestone) daxil edilir. Layihənin Mərhələ daşını komandanın əldə edilmiş nəticələri qiymətləndirdiyi an hesab etmək olar. Nəticədə, metodologiya əsas xüsusiyyətlərin birinci mərhələdə buraxıldığını və sonrakı mərhələlərdə əlavələrin əlavə olunduğunu nəzərdə tutur.

Müsbət cəhətləri:

  • həm müştəridən gələn, həm də iş zamanı yaranan dəyişən tapşırıqların öhdəsindən gəlməyə imkan verir;
  • məhsulun davamlı olaraq təkmilləşdirilməsini təmin edir. İterasiyalar zamanı dizayn diqqətlə nəzərdən keçirilə bilər;
  • işin ilkin mərhələlərində riskləri müəyyən etməyə və aradan qaldırmağa, həmçinin inkişafın keyfiyyətinə effektiv nəzarət etməyə imkan verir.

Minuslar:

  • kiçik bir komanda və ya şirkətlə həyata keçirmək çətin olan olduqca mürəkkəb bir üsul;
  • mütəxəssislərin tapşırıq qoymaq bacarığından asılılıq;
  • tələblərin həddindən artıq sənədləşdirilməsi tələb olunur.

Kim üçün uyğundur:

Məhsulun mümkün qədər tez buraxılması lazım olduqda, dəqiq müəyyən edilmiş tələblərə və müəyyən edilmiş risklərə malik iri layihələr. Hətta funksionallıq hesabına, tez bir zamanda yerini tutmaq və yalnız bundan sonra nüansları dəqiqləşdirmək üçün.

Bir çox metodologiya, bir tendensiya

“Agile” ümumi adı altında çeviklik prinsiplərinə əsaslanan danılmaz məşhur Scrum və Kanban-a , eləcə də möhkəm təkrarlanan RUP-a əlavə olaraq , şirkətlər bir çox metodologiya variantları ilə işləyirlər. Bəzi insanlar ekstremal proqramlaşdırmaya və ən sürətli və ən sadə qərarlar qəbul etməyə, bəziləri test əsaslı inkişafa, bəziləri isə sürətli proqram inkişaf etdirməyə (RAD) üstünlük verirlər. Eyni zamanda, əsas və qeyd-şərtsiz tendensiya bir neçə metodologiyanın eyni vaxtda istifadəsidir . Və ya hətta modelləri və metodologiyaları unikal idarəetmə sisteminə birləşdirin. Proqram təminatının hazırlanması metodologiyaları haqqında bilməli olduğunuz hər şey: yeni başlayanlar üçün tendensiyalar, prinsiplər və tələlər - 2Müasir şirkətlər məsuliyyəti şöbələr və bloklar arasında dəyişmədən bürokratik maneələri aradan qaldırmağa və təşkilat daxilində ümumi komanda işi mühiti yaratmağa çalışır. Scrumalliance hesabatına görə , İT şirkətlərinin 70%-i Scrumdan istifadə edir. Onların arasında Google, Amazon, Salesforce, Microsoft, Adobe kimi nəhənglər var. Startaplar və gənc layihələr Kanban-a daha çox meyllidir, lakin ondan Toyota və məsələn, Wargaming-dən olan oyunçular da istifadə edirlər. Daha təvazökar MDB şirkətləri Prom.ua, Bigl.ua, Kabanchik.ua Scrum və Kanban metodologiyalarından eyni vaxtda istifadə edirlər, lakin müxtəlif vəzifələr üçün. Scrum - planlaşdırma vasitəsi kimi, Kanban - işin gedişatını izləmək üçün. RUP-a gəlincə, bunu daha çox 50-200 işçisi və 1-10 milyon dollar gəliri olan Qərb şirkətləri tətbiq edirlər. Lakin eyni zamanda, IBM OpenUP metodologiyasını buraxaraq Çevik prinsiplərə yaxınlaşmaq üçün RUP-u dəyişdi - “RUP, yalnız çevik”. Eyni təriflənmiş Çeviklik indi İT mənzərəsini idarə edir . Bu, indiki vaxtda sadəcə dəb deyil - hələ də innovativdir və əslində bir çox böyük şirkətlərdə işləyir. Agile Silikon Vadisində istifadə olunur və Facebook və Uber tərəfindən istifadə olunur.

Alt xətt

Hər bir layihənin komandadan, maliyyələşdirmədən, vaxtdan və müştəri tələblərindən asılı olaraq öz proqram təminatının hazırlanması metodologiyası var. Universal idarəetmə texnologiyası yoxdur: hətta vəhşicəsinə populyar olan Agile inkişaf prosesinə ən yaxşı yanaşmanı təmin edə bilməz. Buna görə də, metodologiya diqqətlə, bəzən hətta əsaslı şəkildə seçilir. O qədər ki, ondan şirkətin özü və ya müştəriləri haqqında nəticə çıxarmaq üçün istifadə edə bilərsiniz. Metodologiyalar qarışıqdır, modellərlə tamamlanır və özlərinə uyğunlaşdırılır. O qədər ki, onlar yeni yanaşmalara səbəb olur. Baxmayaraq ki, nəticədə idarəetmə sahəsi gözlənilməz Şəlalə modeli və ya təkrarlanan RUP daxil olmaqla Scrum və Kanban-ın əlində qalır.
Başqa nə oxumaq
Veb saytlar: Kitablar:
  • Endryu Stelman, Cennifer Qrin: “Çevikliyi öyrənmək”;
  • Per Kroll, Bruce MacIsaac: “Çeviklik və nizam-intizam asanlaşdırıldı: OpenUP və RUP-dan təcrübələr”;
  • Mike Cohn: Scrum. Çevik inkişaf";
  • Robert K. Martin: “Sürətli proqram təminatının inkişafı. Prinsiplər, nümunələr, təcrübə”;
  • Markus Hammarberq, Joakim Sunden: “Kanban fəaliyyətdədir”;
  • A Jacobson, G. Booch, J. Rumbaugh: "Vahid Proqram Təminatı İnkişafı Prosesi."
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION