3. 5 motive pentru MPS
Împărțirea efortului și a responsabilităților
E nevoie de un numitor comun într-o echipă
Oamenii gândesc diferit, lucrează diferit
Vin oameni fără experiență,
pleacă oameni cu experiență
Oamenii uită ce au implementat (și mai ales cum)
4. MPS e esențial dacă ...
Ești Oracle, IBM, Microsoft, Adobe, Google sau
IXIA
Dacă ai deja clienți cu cerințe clare
Ai echipe mari
Angajezi și concediezi des
Ai un proiect cu câteva sute de mii/milioane de
linii
5. ... dar probabil ...
Ai o echipă mică: tu și un coleg de facultate
Poate ai câțiva clienți (care nu știu clar ce vor)
Lucrezi cu oameni puțini
Ai resurse puține (bani, timp)
Lucrezi la un proiect mic, cu viitor nesigur
( probabil ideea genială care va fi următorul
Google/Facebook)
Schimbi lucruri mai repede decât poate planifica
cineva
6. ... și atunci ?
Nu faci project management ?
Riscant, dar interesant
O soluție bună pentru prototip
Planifici pe măsură ce execuți
PivotalTracker.com
BaseCamp
Agile Developemnt, Scrum Development
Găsești ceva potrivit în context
Google Docs/Spreadsheets
7. Probleme optimiste
...dacă proiectul tău va avea succes
Nu te vei mai descurca în cod
Nu vei putea explica oamenilor noi
Nu vei putea scala pe 100 de servere
Vei uita ce/cum ai făcut
Nu vei putea extinde codul, dacă nu proiectezi
corespunzător arhitectura/clasele/metodele
8. Probleme reale
Te vei plictisi, vei abandona
Nu vei găsi clienți
Vei găsi metode mai bune de a implementa
Vei pierde prea mult timp planificând
Apar probleme reale, pe care nu ți le-ai fi putut
imagina
9. Cel mai rău lucru ...
Ești freelancer/startup
No money
No experience
No customers
Gândești ca o corporație
Planifici orice înainte să faci
Iluzia controlului
Nu faci tot ce planifici
Faci presupuneri despre piață și clienți
Presupui (în loc să afli)
11. Lucruri mai puțin cunoscute
Legea lui Brooks
Design by comittee
Premature optimization
Analysis paralysis
Code bloating
12. Legea lui Brooks
”Nouă femei nu pot face un copil într-o
lună”
... Sau legea lui Amdahl pentru management
Adăugând oameni unui proiect software în
derulare acesta va fi întârziat, nu grăbit.
Durează până cei noi înțeleg proiectul și devin
productivi
Creșterea echipei îngreunează comunicarea
Unele activități sunt seriale, nu pot fi executate în
paralel.
13. Design by comittee
A camel is a horse designed by committee
Implicarea prea multor oameni într-o decizie
Compromisuri inutile
Iluzia minimizării riscului
Distrugerea unicității
Funcționalități inutile
14. Premature optimization
“Premature optimization is the root of all evil.”
Donald Knuth
”Oare o să reziste sistemul la 1000 de request-uri
simultane ?”
”Dar la 100.000 de mii de useri ?”
”Aș putea să folosesc 5% în loc de 10% din
procesor”
”Aș putea să scriu doar un bit, în loc de un byte”
Cel mai probabil, n-o să ajungi niciodată la
100.000 de useri
Vei pierde timp rezolvând probleme pe care nu le
15.
16. Analysis paralysis
“seeking the optimal or <perfect> solution upfront,
and fear making any decision which could lead to
erroneous results”
”Poate ar trebui să folosim MVPC în loc de MVC”
”Hai să vedem avantajele și dezavantajele unei
alternative”
Analiza unor situații/probleme inexistente
Aducerea unor argumente ipotetice
Întârzierea, complicarea sau paralizarea
procesului de dezvoltare
18. Avantajul de a fi mic ?
Pasiune
Auto-motivare
Concentrare
Echipa compactă
Încredere
19. Câteva sfaturi
E bine să ai probleme raportate de utilizatori.
Înseamnă că îi pasă cuiva.
Don’t use a canon to kill a fly.
Nu gândi ca o corporație. Gândește pentru tine.
Best practices nu sunt universale. Unele fac mai
mult rău decât bine.
20. TimeOP – studiu de caz
Build it fast, fail often
Utilizatorii găsesc probleme / sugerează features
Eu + coleg de liceu
1000 man-hours
200 utilizatori înregistrați
21.
22. 5 motive pentru MPS
Împărțirea efortului și a responsabilităților
E nevoie de un numitor comun într-o echipă
Oamenii gândesc diferit, lucrează diferit
Vin oameni fără experiență,
pleacă oameni cu experiență
Oamenii uită ce au implementat (și mai ales cum)
23. Bibliografie
Get Real (37 Signals)
REWORK (37Signals)
http://en.wikipedia.org/wiki/Anti-pattern
24. ”Leave the beaten track behind
occasionally and dive into the
woods. Every time you do you will
be certain to find something you
have never seen before.”
Alexander Graham Bell