2. Who Am I? 15 years leadership experience in software development & startup operations with Gantt charts 7 Years of searching and finding ways to improve life quality, predictability and efficiency www.linkedin.com/in/benreich E-mail: ben@agilesparks.com
3. Ideas and best practices on implementing continuous integration in an agile way What is this about?
7. So, why is it agile? Rapid Delivery Small Iterations Continuous Integration Working Software Encourage Cooperation
8. But: Is a bunch of programmers constantly mixing some code together really getting us where we want to be?
9. The Challenges of CI Distance from the end user Automatic tests are difficult Large and complex products Diverse organization Insufficient review Inter-team synchronization issues
10. You know its becoming irrelevant if: Nobody is consuming it and people are waiting for your “real release”
13. “Holy Place” Culture – Done means Released Identify the “holy place” Designated delivery target Always up and running As Releasable as possible Replica of Production Demo-able and accessible Identify the Stakeholder Represents the customer Is motivated to succeed Can deliver UAT Has the bandwidth to review
14. Put it where its accessible, demoable, won’t break but will be updated regularly in days
15. The Delivery Gap Manual testing takes longer and there is no synchronization Developers need to program before testers need to test Large projects need constant integration testing Too many changes can disrupt the flow
17. Case Study – The Demo Cycle 8 man team 1 month sprint 1 week demo cycle 1 week deployment cycle Typically 2-4 user stories deployed per week
18. The Continuous Delivery Train Station Cycle Integration Area Holy Place Team Branch Weekly Branch The Holy Trunk Commits Tests ? Deploy Branch Updated Weekly Branch Commits Tests Deploy
19. The Continuous Delivery Train Station Cycle Integration Area Holy Place Team Branch Weekly Branch The Holy Trunk Commits Tests ? X Reject Whew!! Branch Last Good Branch Commits Tests Deploy
20. The Continuous Delivery Train Station Cycle Integration Area Holy Place Team Branch Weekly Branch The Holy Trunk Commits Tests ? X Reject Branch Last Good Branch Commits Tests X Reject
25. Large Projects - Scrum of Scrum Frequency – 1 to 3 days What is discussed? What has your team done since we last met? What will your team do before we meet again? Is anything slowing your team down or getting in their way? Are you about to put something in another team’s way? The last two items will feature: Broken APIs Synchronization issues Current build status Story and Epic issues
26. Working with Large Remote Teams jQuery Linux Is it Impossible? rails django Python
27. Learning from Open Source Manage by committee Dedicate resources to CI Set strict rules and enforce them Enforce and encourage communication Never go home with a broken build
42. Auto testing – The Key to Success Automate in order Automate the happy path first Maximize coverage with data and not complex scripting Look for repeating manual tests Spec test together with PO Automate when functionality is frozen
43. What Next? Visualize your value stream Choose tools Continuous Integration Auto testing Deployment Invest in automatic testing Tailor fit a process to your needs