3. Agenda
• Velkommen og speed dating
• Overblik over maskinen
• Proces og kultur
• Source Control
• Test
Pause
• Automatiseret build og test
• Automatiseret deployment
• 18:30 - Tak for i dag
4. Ingredienser vi skal bruge
• En agil proces
● Kanban, Scrum, ...
● Stories and Tasks
• Source control
● Subversion, Mercurial, Perforce, Git, Team Server, ...
• Automated build
● Team City, Hudson, CruiseControl.NET, TFS, ...
• Automated test run
● Team City, Hudson, xUnit, MSTest, Selenium, ...
• Automated deployment
● Hudson, Team City, Hjemmelavet, ...
● Roll back capability
● A/B servers
6. Projektplanlægning
• Backlog, Roadmap, ...
2011 2012
Oktober November December Januar Februar Marts
Nu
Story Story Story Story Story
Theme
Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla …. ..
Sadfa s Sadfa s
Sadfa s Sadfa s Sadfa s ..
Story Story Story
Theme Theme
Bla bla bla Bla bla bla Bla bla bla …. .. …. ..
Sadfa s Sadfa s
Sadfa s .. ..
Story Story
Story
Bla bla bla Bla bla bla
Bla bla bla Sadfa s Sadfa s
Sadfa s
7. Aktuelle opgaver
• Scrum, Kanban, ...
Planned Ready In progress Review Done Q/A Deploy Done
Stories Stories+Tasks Tasks Tasks Tasks Stories Stories Stories
WL: 3 WL: 6 WL: 3 WL: 3 WL: 3
Story Story
Story Story
Bla blaStory
bla Bla bla bla bla
Bla bla Bla bla bla
Bla bla bla
Sadfa s Sadfa s s
Sadfa Sadfa s
Sadfa s Story
Bla bla bla
Sadfa s
Aasdasd Aasdasd
Aasdasd
Aasdasd
Story
Aasdasd Sdssss s Sdssss s
Sdssss s
Sdssss s
Sdssss s Sss Sss
Sss Aasdasd
Sdssss s
Bla bla bla Sss
Aasdasd Aasdasd
SdsssssSdssss s
Aasdasd
Aasdasd
Sdssss s
Sadfa s Aasdasd Sss Sss Sdssss s
Sdssss s
Sss
Sss
Story
Story
Bla bla bla Bla bla bla
Sadfa s Sadfa s
Story
Story
Aasdasd Aasdasd
Aasdasd
Aasdasd Aasdasd Sdssss s Sdssss s
Sdssss s
Sdssss s Sdssss s Sss Sss
Sss Sss Sss
Bla bla bla
Bla bla bla Aasdasd
Sadfa s s
Sadfa Aasdasd Aasdasd
Sdssss s
Sss
Aasdasd
Sdssss s
Sdssss s Sdssss s
Sss
Story
Bla bla bla
Aasdasd Aasdasd Story Story
Sadfa s
Sdssss s Sdssss s
Bla bla bla
Aasdasd Sss Sss
Sdssss s
Aasdasd
Aasdasd Bla bla bla
Sdssss s
Sdssss s Sadfa s
Sadfa s
Sss Aasdasd
Aasdasd Sdssss s
Sdssss s Sss
Sss
8. Stories and Tasks: Et eksempel
Ready In progress
Link to
enable/disable
Story rejected in UI
As a Calendize user I Update
would like to be able to Invitation list
see previously rejected when toggling
rejected
invitations.
API support
for rejected
invitations
11. Automated testing – investment profile
Velocity ✓ Timed saved on manual testing
✓ Old bugs do not re-appear
✓ New bugs discovered early
✓ Enables refactoring
with
✓ Improves design
automated
testing
first time with
automated testing
without
✗ Manual testing
automated
✗ »Expensive« bug fixes
testing
✗ Reluctance to change smelly code
✗ Unnecessary complexity
Time
12. Onde cirkler
No test
No test
Less time Less refactoring
Less time More bugs
More complexity
13. En god cirkel
More test
More time Fewer bugs
Unit tests are about writing tests and using them to reduce complexity
14. Stories and Tasks: Et eksempel
Ready In progress Done
Story Link to
enable/disable
rejected in UI
As a Calendize user I
would like to be able Update
to see previously Invitation list
when toggling
rejected invitations. rejected
API support
for rejected
invitations
15. Stories and Tasks: Et eksempel
Ready In progress Done
Story Link to
enable/disable
rejected in UI
As a Calendize user I
would like to be able Update
to see previously Invitation list
when toggling
rejected invitations. rejected
API support
for rejected
invitations
17. Continous Integration
• CruiseControl, Hudson, TeamCity
● Henter kildekoden fra Subversion
● Bygger den
● Kører alle tests
● Sender resultatet direkte til mit IDE
19. Continuous Deployment
• Til test eller produktion?
• Automatisk efter hvert succesfuldt build
• Database migrations up/down
• Backup og restore af database
• A/B servere
• Automatisk overvågning og rollback