Pregatirea unui contract pentru livrarea de aplicații
Prezentarea de către beneficiarul aplicației a unei specificații tehnice care să conțină principalele caracteristici dorite ale produsului.
Această prezentare se face mai mult din punct de vedere managerial și nu al unui programator.
Furnizorul de software studiază specificația tehnică inițială și stabilește un numar de persoane din partea lui care vor participa la faza de strângere de informații detaliate (business requirements) la sediul beneficiarului. Aceste persoane nu sunt programatori. Ele trebuie să înțeleagă cât mai bine ce dorește beneficiarul. Tot aici se stabilesc și persoanele din partea beneficiarului care vor participa la această operațiune, preferabil ca aceste persoane să fie conduse de către managerul de proiect din partea beneficiarului.
Se semneaza un contract pentru faza de strângere de informații în care sunt trecute explicit numele persoanelor din partea beneficiarului și a furnizorului care participă la această operațiune și termenul la care se termină această operațiune. Persoanele din partea beneficiarului care participă la această operațiune trebuie să fie disponibile cât mai mult și să nu aibă alte sarcini de servici care să-i deruteze de la această operațiune. Contractul se negociază și se plătește de către beneficiar.
Faza de strângere de informații durează între 2 și 4 săptămâni, în funcție de complexitatea aplicațiilor. În această fază beneficiarul va fi încurajat să prezinte mai detaliat modulele pe care le dorește, funcționalitatea acestora, algoritmii de calcul, modalitățile de validare, regulile sale specifice ce trebuie implementate în aplicație. Se dau informatii privind numărul mediu de documente ce vor fi prelucrate, numărul aproximativ de informații care vor fi introduse în baza de date, numărul și formatul listelor principale pe care le dorește. Pentru o parte din module, beneficiarul poate prezenta și poza unor ecrane pentru preluarea datelor în viziunea sa, form-uri nefuncționale execute de exemplu în Visual Basic. Pe baza acestora, furnizorul de aplicații își face o idee privind complexitatea aplicației, poate dimensiona aproximativ necesarul de forță de muncă. Tot în această perioadă se face și inspectarea hardware-ului beneficiarului, a rețelei, a tipurilor de imprimante, a numărului de posturi de lucru pentru stabilirea soluțiilor care se vor alege.
Dupa terminarea fazei de strângere a specificațiilor, furnizorul de software stabilește o echipă care este compusa din arhitectul proiectului, coordonatorul de proiect (project manager) și programatorul principal care trece la redactarea caietului de sarcini. Specificațiile sunt din ce in ce mai precise, aplicația se sparge în cât mai multe module distincte care pot fi realizate și urmărite separat, modul de emitere a listelor (daca sunt TXT sau PDF). Se descriu fazele de elaborare a aplicației și termenele aproximative de predare parțială, de predare a versiunilor beta pentru training-ul și controlul calității la beneficiar. Totodata se stabilesc și termenele aproximative de prezentare în fața managerilor beneficiarului a versiunilor demonstrative.
În baza acestui document emis de către furnizorul de software și care prezintă modul în care el a înțeles aplicația solicitată și capacitatea sa de a livra aplicația în forma cerută, se face și oferta de preț. Documentul acesta trebuie să cuprinda 90% din facilitățile și funcționalitățile cerute de beneficiar, de obicei acelea pe care furnizorul de software are siguranța că le poate implementa cu un cost sigur și la niște termene sigure, „carnea” aplicației pentru care poate fi relativ ușor estimate costurile, necesarul de forță de muncă. Pentru restul de 10% care reprezintă problemele mai delicate se lasă loc pentru anexele la contract.
Se negociază „la sânge” contractul pe baza ultimelor specificații tehnice elaborate de către furnizorul de software și agreate de beneficiar.
Se semnează contractul care trebuie să stabilească neaparat urmatoarele:
* suma de plată contractată pentru pachetul de bază rezultat din specificațiile tehnice
* suma acordată ca avans (15-20% din valoarea aplicației)
* termenul final aproximativ de livrare a aplicației
* termenele parțiale de livrare a aplicației în forma beta pentru certificarea de către beneficiar a conformității aplicației și aprobare a plăților parțiale
* termenele parțiale de plată (uzual 2 facturi pe lună)
* ședințele pentru prezentarea de demo-uri pentru echipa managerială a beneficiarului
* persoana din partea beneficiarului care răspunde de proiectul respectiv și de conformitatea aplicației cu specificațiile tehnice
* numărul aproximativ de ore și oameni care vor fi prezenți la sediul beneficiarului pentru documentare, pentru investigare hardware
* persoana din partea beneficiarului care răspunde de controlul calității la beneficiar
* modalitatea în care beneficiarul va testa versiunile preliminare ale aplicației, termene, tipul și numărul datelor de probă
* modalitatea de raportare a defecțiunilor, preferabil direct în sistemul de bug-tracking al furnizorului aplicației
* modalitatea de desfășurare a sedințelor tehnice săptămânale la beneficiar (față în față sau prin teleconferință)
Odată semnat contractul se trece la executarea lui. Furnizorul de software începe să se organizeze și stabilește echipa de lucru.
Săptămânal , conducatorul de proiect al beneficiarului organizează o ședință de lucru la el, la care este preferabil să participe și coordonatorul de proiect al furnizorului de soft. În aceste ședințe care pot fi ținute și prin teleconferință (telefon, web) se verifică stadiul la care a ajuns proiectul, se evaluează în procente cam cât la sută din „cutare” modul a fost terminat, se verifică încadrarea în termene.
Se rezolvă anumite probleme apărute pe parcurs („nu ați dat algoritmul de calcul al concediilor medicale”). Se evaluează starea controlului calității la beneficiar și numărul de defecte raportate de catre beneficiar pe versiunile beta care au fost predate. Ședintele se stabilesc și se anunță cu o săptămână înainte. Conducatorul de proiect al beneficiarului poate solicita ca anumite module să intre în faza de proiectare și realizare mai repede decât altele datorită unor condiții specifice („vreau ca modulul de bilanț să fie gata până la 15 Decembrie ca să-l putem testa, și amânați modulul de gestiune a stocurilor că oricum nu mă intereseaza acum”). Toate concluziile ședinței de lucru săptămânale se trec într-un document scris care este trimis ambelor părți.
Ocazional, furnizorul de software stabilește cu coordonatorul de proiect anumite zile în care o echipa din partea furnizorului se deplasează la sediul beneficiarului pentru documentare, pentru negocierea unor soluții tehnice, pentru a asista la procesul de testare, pentru a cere lămuriri suplimentare. Deplasările pot fi organizate și la cererea beneficiarului. Aceste deplasări se plătesc separat de către beneficiar și ele sunt aprobate de catre coordonatorul de proiect al beneficiarului care se asigură și că personalul care colaborează la acest proiect este liber și disponibil în ziua stabilită.
Odata la 3 luni, cei doi coordonatori de proiect ale celor două părți stabilesc cu 2 săptămâni înainte, ședința cu echipa managerială a beneficiarului pentru prezentarea produselor demo, faze intermediare ale aplicației. Acestea sunt esențiale ca beneficiarul să aibă permanent convingerea că se lucrează la aplicația respectivă, că se avanseaza permanent și că banii pe care el îi dă periodic sunt cheltuiți cu rost.