0_Sarcinile și abilitățile unui analist

Deci vrei să fii analist de cerințe?

Explicit sau nu, cineva ocupă întotdeauna rolul de analist de cerințe într-un proiect de dezvoltare software. Desigur, titlul oficial al postului poate fi „inginer de cerințe”, „analist de afaceri”, „analist de sisteme”, „manager de produs” sau pur și simplu „analist”, dar totuși trebuie să combinați diferite puncte de vedere atunci când scrieți o specificație de cerințe, și interacționează cu toate părțile interesate. Poate cea mai importantă parte a muncii unui analist este de a ajuta la determinarea diferenței dintre ceea ce clienții spun că au nevoie și ceea ce au nevoie cu adevărat. Dar mai ușor de spus decât de făcut.

Responsabilitatea principală a unui analist de cerințe este să colecteze, să analizeze, să documenteze și să valideze nevoile părților interesate. În calitate de intermediar principal între reprezentanții clienților și echipa de dezvoltare, vei juca un rol central în colectarea și distribuirea informațiilor despre produse, în timp ce managerul de proiect va gestiona procesul de distribuire a informațiilor despre proiect.

Analist de cerințe - un rol în proiect, nu neapărat un titlu de post. Acest rol poate fi ocupat de unul sau mai mulți specialiști. Cu toate acestea, acestui rol pot fi atribuiți orice număr de membri ai echipei: un manager de proiect, un manager de produs, un expert în domeniu, un dezvoltator sau chiar un utilizator. Cu toate acestea, un analist talentat poate face o diferență semnificativă în succesul unui proiect. În cartea sa Software Cost Estimation with Cocomo II, Prentice Hall PTR, 2000, Barry Boehm notează că un analist experimentat este capabil săreduce cu o treime efortul necesar pentru a finaliza un proiect în comparație cu un proiect similar care implică un analist fără experiență, iar un proiect care implică un analist înalt specializat necesită jumătate din efortul unuia care implică un analist mai puțin capabil.

0_sarcinile

Orez. 1 - Analistul de cerințe stabilește comunicarea între părțile interesate ale clientului și echipa de dezvoltare

Între ideile vagi ale clientului și o specificație clară care va ghida echipa de dezvoltare pe drumul potrivit, analistul trebuie să înțeleagă mai întâi obiectivele pe care utilizatorii și le-au stabilit pentru noul sistem. Definiți apoi cerințele funcționale și atributele de calitate care vor permite managerului de proiect să evalueze, dezvoltatorilor să proiecteze și să dezvolte, iar testerilor să testeze produsul. Puteți descărca o descriere generică a postului de analist de cerințe de lahttp://www.processimpact.com/goodies.shtml.

Următoarele sunt sarcini tipice pe care le veți efectua în calitate de analist.

Definirea nevoilor afacerii. Munca dumneavoastră începe cu a ajuta clientul sau managerul de produs să definească cerințele de afaceri pentru proiect. Prima întrebare care trebuie pusă este: „De ce ne asumăm acest proiect?” Cerințele de afaceri includ o declarație a obiectivelor de afaceri ale organizației și viziunea finală despre cum va arăta și va face sistemul. Puteți folosi șablonul de document Vision and Scope, un exemplu disponibil lawww.processimpact.com/goodies.shtml, pentru a vă ajuta angajații să-și comunice opiniile.

Recuperarea cerințelor. Cerințele pentru un produs software nu sunt doar să zăboviți să aștepte pe cinevava colecta. Un analist activ îi ajută pe utilizatori să articuleze capacitățile sistemului de care au nevoie pentru a-și îndeplini obiectivele de afaceri. Utilizatorii subliniază în mod natural cerințele funcționale ale sistemului, așa că gestionează discuția pentru a include atribute de calitate, cerințe de performanță, reguli de afaceri, interfețe externe și constrângeri. De asemenea, puteți contesta presupunerile, dar încercați să nu vă forțați propriile preferințe asupra utilizatorilor.

Efectuarea analizei cerințelor. Căutați cerințe care decurg în mod logic din solicitările clienților și, de asemenea, extrageți acele cerințe implicite pe care aceștia nu le-au exprimat, dar se așteaptă să fie luate în considerare. Observați cuvinte vagi, obscure, care provoacă ambiguitate și confuzie. Acordați atenție cerințelor conflictuale și zonelor care necesită mai multe detalii. Definiți cerințele funcționale la nivelul potrivit de detaliu pentru dezvoltatorii care trebuie să le implementeze. Un proiect de site web dezvoltat progresiv de o echipă mică coerentă poate avea o documentație superficială privind cerințele, dar un sistem încorporat complex care trebuie externalizat trebuie să fie descris cu atenție într-o specificație a cerințelor software (SRS).

Elaborarea specificațiilor cerințelor. Un proces eficient de dezvoltare a cerințelor se rezumă la construirea unei înțelegeri comune și la construirea unui sistem care să rezolve problema clientului. Sunteți responsabil pentru scrierea unei specificații bine structurate care reflectă în mod clar această viziune generală pentru sistem. Utilizarea șabloanelor standard pentru descrierea cazurilor de utilizare și specificarea cerințelor software accelerează procesul de dezvoltare a cerințelor, reamintindu-vă problemele caretrebuie discutat cu utilizatorii. Puteți găsi câteva șabloane aici:www.processimpact.com/goodies.shtml

Dezvoltarea modelelor de cerințe. Ar trebui să determinați când este util să prezentați cerințele sub formă de modele analitice grafice, tabele, ecuații matematice, secvențe de schițe sau prototipuri în loc de text. Modelele analitice descriu informațiile la un nivel mai ridicat de abstractizare decât textul detaliat. Pentru a crește inteligibilitatea și claritatea informațiilor, creați modele analitice în conformitate cu notațiile standard acceptate în general, cum ar fi Unified Modeling Language (UML).

Managementul cerințelor. Odată ce baza cerințelor este stabilită, concentrarea dvs. va trebui să se îndrepte spre gestionarea acelor cerințe și să vă asigurați că sunt implementate în produs. Produsele comerciale concepute special pentru stocarea cerințelor pot ajuta.

Poate doriți să urmăriți starea cerințelor funcționale individuale pe măsură ce acestea trec de la concepție la validarea implementării lor în produs. Adunați informații urmăribile de la echipa de dezvoltare pentru a corela cerințele individuale cu alte elemente ale sistemului. Aceste date vor ajuta la gestionarea modificărilor la nivelul de bază al cerințelor prin procesul și instrumentul de control al schimbărilor.

Un analist eficient combină capacitatea de a interacționa, de a participa la munca în echipă, de a dezvolta comunicarea interpersonală și cunoașterea contextului tehnic și de afaceri, precum și calitățile personale potrivite pentru acest job. Răbdarea și dorința reală de a lucra cu oamenii sunt factori cheie. Mai jos sunt 10 abilități de care aveți nevoie pentru a avea succes.

2. Capacitatea de a conduceinterviu și pune întrebări. Majoritatea cerințelor provin din discuții, așa că analistul trebuie să fie capabil să pună întrebările potrivite. De exemplu, este firesc ca utilizatorii să se concentreze asupra comportamentului normal așteptat al sistemului. Cu toate acestea, orice programator știe cât de mult cod trebuie scris pentru a gestiona excepțiile. Pune întrebări din categoria: „Ce ar trebui să se întâmple dacă. ” sau „Ar putea apărea o astfel de problemă?” - astfel încât să puteți determina modul în care sistemul ar trebui să răspundă la excepții neașteptate. Cu experiență, veți învăța arta de a pune întrebări care descoperă și clarifică incertitudinile, dezacordurile, presupunerile și așteptările nespuse. Donald Gause și Gerald Weinberg descriu „întrebări independente de context” în Exploring Requirements: Quality Before Design (1989, Dorset House).

3. Abilitati analitice. Va trebui să înveți cum să operezi la diferite niveluri de abstractizare. Uneori trebuie să treceți de la informații de nivel înalt în jos și la detalii. În alte situații, va trebui să treceți de la o anumită nevoie de utilizator la un set de cerințe care se aplică unei întregi clase de utilizatori. Evaluați critic informațiile din diferite surse pentru a rezolva conflictele, separați dorințele utilizatorilor de nevoile lor și diferențiați între idei și cerințe.

4. Organizarea muncii de grup. Atelierele de colectare a cerințelor sunt o practică comună. Pentru implementarea lor cu succes, este nevoie de un curator neutru. Veți avea nevoie de bune abilități de întrebări și observație pentru a ajuta grupurile să-și dezvolte un sentiment de încredere și să dezamorseze atmosfera tensionată care apare uneori.între reprezentanţii afacerilor şi specialiştii tehnici. În Requirements by Collaboration: Workshops for Definiting Needs, Addison-Wesley, 2002, Ellen Gotsdiener oferă o cantitate semnificativă de sfaturi pentru facilitatorii atelierelor.

5. Observarea. Dacă observați cu conștiință modul în care utilizatorul își face treaba sau folosește aplicația, puteți urmări subtilitățile pe care poate nu le-au menționat și, astfel, puteți descoperi noi domenii pentru discutarea cerințelor.

6. Întocmirea documentaţiei. Principalul rezultat al muncii dumneavoastră va fi o specificație scrisă a cerințelor, care este destinată clienților, marketerilor, managerilor și specialiștilor tehnici. Veți avea nevoie de cunoaștere excelentă a limbii engleze sau a unei alte limbi pentru a finaliza această sarcină. Străduiți-vă pentru claritate, evitați cuvintele și frazele ambigue, erorile gramaticale și abundența de expresii idiomatice.

7. Abilitati organizatorice. Veți avea de a face cu o gamă largă de informații disparate obținute din extragerea și analiza cerințelor. Structurarea tuturor părților care se schimbă rapid într-un întreg coeziv, împreună cu răbdarea și perseverența, necesită abilități organizatorice remarcabile.

9. Interacțiune interpersonală. Trebuie să vă organizați munca astfel încât oamenii cu interese concurente să poată lucra împreună. De asemenea, ar trebui să vă simțiți confortabil interacționând cu reprezentanții diferitelor poziții la orice nivel al scarii corporative. Este posibil să trebuiască să lucrați cu echipe ai căror membri sunt împărțiți pe linii geografice, temporale, culturale sau lingvistice.

Cunoașterea domeniului, afacerii și sarcinilor

unuNumai entuziasmul nu te va duce departe în colectarea cerințelor: amploarea cunoștințelor dobândite prin experiență este singura modalitate de a-ți perfecționa abilitățile. Pentru început, consolidați înțelegerea tehnicilor moderne de dezvoltare a cerințelor și a modului în care acestea se potrivesc în diferite cicluri de viață de dezvoltare a software-ului. Analistul trebuie să înțeleagă rolul pe care dezvoltarea și managementul cerințelor îl joacă în ciclul de viață al produsului. O înțelegere profundă a disciplinelor precum managementul proiectelor, managementul riscurilor și asigurarea calității vă poate ajuta să evitați situațiile în care problemele legate de cerințe subminează sustenabilitatea proiectului. În proiecte reale, veți beneficia de cunoștințele conceptelor de management al produselor și ale modului în care sunt poziționate și dezvoltate produsele software pentru întreprinderi.

Cunoașterea domeniului aplicației care reduce neînțelegerile cu utilizatorii este un atu puternic pentru un analist de succes. Un analist care înțelege o zonă de aplicație descoperă adesea ipoteze neenunțate și cerințe implicite. De asemenea, îi indică utilizatorilor modalități de a-și îmbunătăți procesele de afaceri. Un astfel de analist oferă uneori funcționalități valoroase la care utilizatorul nici nu s-a gândit. În schimb, el poate detecta împodobiri, de ex. funcționalitate redundantă sau inutilă pe care cineva care nu este familiarizat cu zona cu probleme nu ar face-o.

Nu instruit, dar educat

Deoarece nu există un program de studii recunoscut sau o fișă de post pentru analiștii de cerințe, majoritatea provin dintr-o varietate de medii profesionale. Dacă treceți la analiză ca utilizator anterior al sistemului, va trebui să vă completați cunoștințele complete despre mediul de afaceri și de lucru cu instruire îninginerie software și învață cum să interacționezi cu colegii tăi tehnici. De asemenea, va trebui să realizați că experiența dvs. de utilizator nu este atotcuprinzătoare, că nu ar trebui să vă concentrați doar pe interfața cu utilizatorul și că nu trebuie să ignorați opiniile utilizatorilor adevărați ai noilor produse. Pe de altă parte, dacă ați fost dezvoltator în trecut, trebuie să vă extindeți înțelegerea domeniului de afaceri și să nu folosiți excesiv gândirea tehnică și jargonul.

Indiferent de mediul tău profesional, învățarea abilităților necesare (cum ar fi ascultarea, negocierea și organizarea muncii în grup) și punerea lor în practică îi va ajuta pe noii analiști din toate mediile să descopere dorințele utilizatorilor nespuse până acum.

Aplicație: Colectarea datelor

Încercați următoarele trucuri pentru a colecta informații despre cerințe: