Managementul dezvoltarii software

Managementul dezvoltării software ( ing.  Managementul proiectelor software ) este un tip special de management al proiectelor , în cadrul căruia are loc planificarea, urmărirea și controlul proiectelor de dezvoltare software . Cheia pentru gestionarea unui proiect de dezvoltare software este alegerea metodei corecte de dezvoltare.

Principalele diferențe față de alte tipuri de management de proiect

Istorie

Cauze

Datorită creșterii rapide a puterii computerelor în anii 60 și 70 ai secolului XX , problemele care puteau fi rezolvate cu ajutorul lor au devenit mai dificile. Prin urmare, au fost necesare proiecte mai mari , care au inclus coordonarea muncii mai multor oameni și scrierea mult mai mult cod . Cu toate acestea, metodele utilizate pentru gestionarea unor astfel de proiecte au fost concepute pentru a răspunde provocărilor proiectelor mult mai mici. Lipsa metodologiei necesare a dus la un număr mare de proiecte eșuate. Încercările de schimbare a situaţiei în bine au condus la crearea unui nou model al procesului de dezvoltare , concentrându - se mai mult pe conformitatea produsului software final cu cerinţele originale ale clientului .

Dezvoltare ulterioară

Studiile proiectelor eșuate au arătat că cele mai frecvente cauze ale eșecului au fost: [1]

  1. Obiective de proiect irealizabile sau neclare
  2. Calcularea greșită a resurselor necesare
  3. Cerințe de sistem definite incorect
  4. Lipsa de conștientizare a managerului de proiect cu privire la stadiul exact al proiectului
  5. Riscuri negestionate
  6. Interacțiune slabă între client, dezvoltator și utilizator
  7. Folosind tehnologii prea noi, instabile
  8. Incapacitatea de a face față complexității proiectului
  9. Management slab al proiectelor
  10. Restricții financiare

De atunci, au fost introduse câteva îmbunătățiri la metodele deja existente ( abordare iterativă ) și complet noi ( dezvoltare bazată pe teste ) de gestionare a dezvoltării software. Cu toate acestea, astăzi există tendința de a trece de la un model în cascadă la un model ciclic care imită etapele dezvoltării software .

Metode de bază de dezvoltare software

GOST -uri

GOST 19 „Sistem unificat de documentare software” [2] și GOST 34 „Standarde pentru dezvoltarea sistemelor automate” [3] se concentrează pe o abordare consecventă a dezvoltării software. Dezvoltarea în conformitate cu aceste standarde se realizează în etape, fiecare dintre acestea implicând implementarea unei lucrări strict definite. Respectarea strictă a acestor GOST duce la un model în cascadă. Pe baza acestor standarde, sistemele software sunt dezvoltate pentru comenzi guvernamentale în Rusia.

SW-CMM

Acest model a fost dezvoltat la mijlocul anilor 1980 de Institutul de Inginerie Software de la Universitatea Carnegie Mellon pentru a crea un model de referință pentru organizarea dezvoltării software. Se bazează pe verificarea conformității organizației cu anumite cerințe și determinarea nivelului de maturitate a procesului de dezvoltare software.

RUP

Procesul unificat a fost dezvoltat de Rational Software ca o completare a UML . Modelul RUP descrie un proces general abstract, pe baza căruia o organizație sau o echipă de proiect ar trebui să creeze un proces specific specializat, concentrat pe nevoile sale.

MSF

Microsoft Solutions Framework este construit în jurul dezvoltării iterative. O trăsătură specială a MSF este marea atenție acordată creării unei echipe eficiente și nebirocratice.

PSP /TSP

Procesul software personal definește cerințele de competență ale dezvoltatorului, astfel încât aceștia să poată dobândi abilitățile necesare pentru Procesul software de echipă. Team Software Process în combinație cu Personal Software Process se bazează pe echipe autogestionate de 3-20 de persoane. Echipele trebuie:

Agil

Ideea de bază din spatele tuturor modelelor agile este că procesul de dezvoltare a software-ului ar trebui să fie adaptiv. Ele își propun să se concentreze pe oameni și pe interacțiunile lor, mai degrabă decât pe procese și instrumente. Toate modelele flexibile se bazează pe iterație, incrementalitate, autogestionarea echipei și adaptabilitatea proceselor.

Procese conexe în managementul proiectelor

Procesul de gestionare a unui proiect de dezvoltare software include alte procese, mai specifice, care vizează luarea anumitor decizii de afaceri. Multe dintre ele pot fi aplicate și altor tipuri de proiecte. De exemplu:

Planificarea, urmărirea și controlul proiectului

Filosofie

În general, managementul dezvoltării software, care are multe împrumuturi din managementul proiectelor, poate fi aplicat metodelor din managementul tradițional . Cu toate acestea, datorită unicității industriei, experiența profesioniștilor acumulată în producția de materiale și stabilită, de exemplu, în standardul PMI PMBOK , contribuie puțin la succesul în gestionarea unui proiect software. Există multe opinii despre ce cunoștințe și abilități ar trebui să aibă un manager de proiect de dezvoltare software. De exemplu, faimosul informatician american John Reynolds a scris:

Unii susțin că este posibil să se gestioneze crearea de software fără a avea abilități de programare . Această încredere pare să provină din concepția greșită că dezvoltarea de software este o formă de producție. Dar producția este crearea de obiecte identice care se repetă, în timp ce producția de software este crearea de obiecte unice, adică este una dintre formele creativității . Astfel, producția de software este asemănătoare cu publicarea  — un manager de dezvoltare software care nu poate codifica este ca un editor de ziare care nu poate scrie.

Text original  (engleză)[ arataascunde] „Unii susțin că se poate gestiona producția de software fără abilitatea de a programa. Această credință pare să apară din punctul de vedere greșit conform căruia producția de software este o formă de fabricație. Dar fabricarea este construcția repetată a obiectelor identice, în timp ce producția de software este construcția de obiecte unice, adică întregul proces este o formă de design.

Vezi și

Note

  1. IEEE Arhivat 21 decembrie 2011 Articolul Wayback Machine de Robert N. Charette în engleză „De ce eșuează software-ul”
  2. [1] Copie de arhivă din 24 noiembrie 2010 pe Wayback Machine ESPD pe site-ul FSUE Standartinform
  3. [2] Copie de arhivă din 11 aprilie 2012 pe Wayback Machine GOST 34 pe rugost.com

Literatură

Link -uri

Link rupt