1 / 30

Razvoj Software-a u Microsoftu

Razvoj Software-a u Microsoftu. Marin Bezi ć marin.bezic@concero.hr 19 . 12 .201 1. O meni. Osnivač Concero d.o.o. Optimiziram razvojne timove i procese iOLAP Dev Center advisor 4 godine MSFT u Europi Business i marketing management 8 godina MSFT u Redmond -u

ayita
Télécharger la présentation

Razvoj Software-a u Microsoftu

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Razvoj Software-a u Microsoftu Marin Bezić marin.bezic@concero.hr 19.12.2011

  2. O meni • Osnivač Concero d.o.o. • Optimiziram razvojne timove i procese • iOLAP Dev Center advisor • 4 godine MSFT u Europi • Business i marketing management • 8 godina MSFT u Redmond-u • Izbacio na tržište 3 verzijeprvog MS business intelligence proizvoda • Vodio tim od 25 programerau SQL Server produkt grupi

  3. Izazovi • Napraviti najuspješniji OLAP server • Za globalno tržište • Pobijediti konkurente koji imaju X puta više resursa: • Oracle, Hyperion, Cognos, Business Objects • Lokaliziran na 8 jezika • english, japanese, german, french, spanish, chinese, italian, korean • Koordiniran razvojsa ~1000 ljudi u SQL Server timu • I još ~1000 u DevDiv • Radinasvim server OS verzijama • Microsoft podržava 10 god stare OS • Koji će biti podržan slijedećih 10 godina

  4. Temezadanas • Počeci u Microsoft-u – “startup” mentalitet • Transformacija u Software Inženjering • Kako smo razvijali software • Najčešći problemi u razvoju softvera u našoj regiji

  5. Kako se razvija software u MS • Kultura • Organizacija tima • Razvojni ciklus • Vođenje tima • Razvojni procesi • Testiranje i kvaliteta

  6. KulturA

  7. Kultura • Menadžment tim definira kulturu • Tie breaker u SQL Server timu: • “Što je najbolje za korisnika?” • Kultura ima različitih • Command and control • Trust and track • U kakvoj kulturi želite raditi?

  8. Kultura uspješne organizacije • Meritokracija • Svrha - veliki ciljevi • Uspjeh/rezultat je jedino važan • Ok je napraviti pogreške – (nauči od njih) • Ok je pitati za pomoć • Izgovori su gubljenje vremena • Pojedinci: • Ovlašteni • Odgovorni za svoje postupke • Samokritični • Commitment – korisnici, kvaliteta, schedule

  9. Struktura Tima

  10. Organizacija tima

  11. Što znači kvalitetan softver? • Ovisi koga pitate • Korisnici/kupci • Funkcionalnost radi • Efikasan – troši koliko treba, ne više,resurse kao CPU, disk, memorija • Performantan • Skalabilan • Pouzdan • Lagan za korištenje • Siguran • Dokumentiran • Proizvođači softvera • Čist kod • Lagan za održavanje • Lagan za testiranje • Instrumentiran – lagan za debug-iranje

  12. Razvojni ciklus

  13. Tipični Microsoft App Development Lifecycle M0 M1 M2 CTP/Beta 1 CTP/Beta 2 RTM/RTW SP M0 M1 Version N+1 “Eat your own dogfood”

  14. Zašto Milestones/Iteracije? • Proslavite male pobjede • Pokažite kod koji radi • Integriraj komponente rano i često • Provjeri rasporedirokove • Prilagodiprioritete, resurse (ako je potrebno)

  15. M0: Temelji za uspješan projekt • Planiranje • High level requirements • Prioritization of scenarios/use cases/features • 1 – can’t ship without it, 2 – important , 3 – nice to have • Specifications (at least for M1) • Master schedule • Infrastruktura • Source code management • Build machine – automated builds • Testing environment – test repository, automated test runs • Work item/bug tracking tool

  16. M1 - Mn: Razvoj i stabilizacija • Feature teamovi (dev, test, PM) razvijaju funkcionalnost zajedno • Kodiranje i testiranje paralelno (osim UI) • Kada je nešto gotovo? • Kada i test i PM kažu da je gotovo • Kada je test coverage > X% • Kod pregledan • Testovi automatizirani

  17. Vođenje tima • Važan je protok informacija • Važan je ritam • Tjedni sastanci • Cijeli tim • Koji je status timova i pojedinaca? • Da li kasnimo? • Stand up meetings (daily scrum) • 5-15 min svaki dan • Morale events • Cilj je provesti vrijeme zajedno izvan ureda, bolje upoznati ljude

  18. Razvojniprocesi

  19. Fundamenti su najvažniji • Dev guidelines/standards • Prije nego sto počneš raditi, da li imaš: • Prioritizirane zadatke • Specifikaciju • Raspored • Alati • Work item/bug tracking • Source control • Automated build • Automated test runs • Specs • Functional specs – kako se ponaša aplikacija sa strane korisnika • Design specs – kako će se implementirati

  20. Continuous Integration? • Dev practice • Frequent integration (synch, check in) • Verified by automated build • To detect (integration) errors quickly

  21. Automatizirani build • Build serverkonstantno radi buildovei testira ih • Uzme najnoviju verziju koda • Izbilda cijelu aplikaciju • Pokrene subset funkcionalnih testova • Ako build pukne, ili testovi otkriju regresiju, šalje se email sa listom promjena od zadnjeg builda

  22. testing

  23. Koja je uloga testiranja? • Otkriti i popraviti greške • Provjeriti vjernost specifikaciji • Ustanoviti trenutnu kvalitetu proizvoda/rješenja • Pomoći menadžeru odlučiti kada je proizvod/rješenje gotovo • Smanjiti troškove podrške i održavanja

  24. Tipovi testova • Unit tests • Functional tests • Check-in tests • BVTs • Performance tests • Security tests • Stress tests • Usability tests • Accessibility tests • Localization tests • Globalization tests • OS compatibility tests • Backwards compatibility tests • Forward compatibility tests

  25. End game

  26. “Shipping the product” • Kako znate kada ste gotovi? • “Mogu li popraviti još samo jedan bug?” • “Ali još nije perfektno...” Što vođe tima moraju napraviti: • Zatvori projekt – pošalji “victory mail” • Proslavi – neka se ljudi osjećaju super • Uzbudi – izazovi i prilike za slijedeću verziju

  27. ZA Kraj - naši problemi

  28. Najčešći problemi „u nas” • Nedostatne specifikacije • Loše planiranje i prioritiziranje posla • Nedovoljan fokus na kvalitetu • Neproduktivno okruženje

  29. Područja za napredak • Optimizacija procesa • Bolji razvojni alati • Automatizacija • Disciplina

  30. marin.bezic@concero.hr Hvala!

More Related