budapest.rb 201010
DESCRIPTION
Agilis és extrém RubyTRANSCRIPT
agilis és extrém ruby
Tompa Tamás
2010.10.21
a cím
• scrum + xp = ruby
• agilis és extrém projektek => ruby
• agilis fejlesztés, extrém programozás, ruby
miből főzünk?
• Agile Manifesto• Startup Manifesto• Scrum• Extreme Programming• Principle of least surprise• Readable code• Don't repeat yourself• Convention over Configuration
hogy függ össze?
• kihívás: gyorsan és olcsón kell szállítani
• megoldás: produktivitás és karbantarthatóság
• kihívás: folyamatosan változó igények, folyamatos fejlődés, új technológiák
• megoldás: ruby – gyorsan változik – előnyére
• write less and get the same => productivity
• less bugs to fix and less code to maintain => productivity
• readable code => self documenting => productivity
• TDD – BDD => improving code quality => productivity
MIRE JÖTTÜNK RÁ?
scrum
• kell egy Product Owner, akit a csapat személyesen ismer
• a PO-nak kell legyen egy Product Backlog-ja, amit a csapat előzetesen megbecsült
• a csapatnak kell egy Burndown Chart, és egy velocity érték
• a csapatot senki sem zavarhatja a Sprintközben
scrum
• user story – mérete és megfogalmazása kulcs fontosságú
• estimation meeting – a tervezés előtt előkészítés, nem kellenek a meglepetések
• daily standup – nem számonkérés, nincs vezetője, önszerveződő
• a módszertan minden elemét be kell tartani, nem lehet belőle „válogatni” DE lehet adaptálni, fejleszteni - tudatosan
xp
• pair programming– akár minden nap, 1-2 óránként váltva
– akár csak a projekt kritikus részére
– a párokat sprintenként rotálhatjuk
– code review-t majdnem teljesen megoldja• automatizált build / testing
– ezzel kezdődik a projekt
– addig nincs kódolás, amíg nincs „környezet”
• TDD / BDD
xp
• Jó minőségű kódhoz kell, hogy több szempontból / több ember által vizsgált legyen
• Karbantartható kód: kifizetődőbb, mintha évente újraírnánk a rendszert (full redesign)
• Fejlesztő motivációja: érdekesebb a feladat, folyamatosan tanul, nincs magára hagyva
ruby
• Bontsd egyszerű részekre – a komplexitás bonyolult hibákhoz vezet
• Minél alacsonyabb szintű komponensek
• A komponensek Ruby GEM-ek, nem Rails pluginok > általánosak
• Önálló, független > önmagában tesztelhető, felhasználható egységek
environment
• Fejlesztői környezet folyamatos karbantartása
• Fejlesztői teendők akár párhuzamos sprint-ben > scrum team / maintenance team
• Deployment előkészítése – system check
• Deployment validálása – build check
• capistrano kiegészítések
kártyák
• Egyszerű és átlátható (1 oldal!)
• Mindig szem előtt van (falon)
• Hordozható (megbeszélésre)
• Nem engedi elfelejteni a fontos dolgokat
• Nem engedi „torzítani” a szabályokat
kártyák
kártyák
• Hamarosan magyarul!
• Addig is: http://agileinaflash.blogspot.com/
a nagy változás
• Változtatási „akciótervek”:a) sok apró változtatás, lépcsőzetesen idővel eléri a
célját
b) egyszerre meglépjük a teljes egészet
• b) a helyes
• 2-3 próbálkozásra sikerülni is fog
folyt köv
• Blogot indítottunk - olvassátok: http://digitalnatives.blog.hu/
• Ruby fejlesztőket keresünk - jelentkezzetek:[email protected]