Continuous Integration, Fast Builds And Flot

355 views

Published on

Continuous Integration, Fast Builds And Flot, By Chris Bushell, February 3rd 2010

Published in: Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
355
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Continuous Integration, Fast Builds And Flot

  1. 1. Continuous Integration, Fast Builds and Flot<br />Chris Bushell - Melbourne Patterns Group February 3rd 2010<br />
  2. 2. Traditional Software Development<br />Waterfall<br />Development happens independently, in parallel streams<br />Integration phase<br />
  3. 3. Integration Is Painful<br />Time consuming<br />Unpredictable<br />
  4. 4. Typical Software Development<br />
  5. 5. Continuous Integration<br />Single source code repository<br />Automated build<br />Automated tests<br />Frequent commits<br />
  6. 6. CI In Practice – Check Out<br />Time<br />
  7. 7. CI In Practice – Write Code<br />Time<br />
  8. 8. CI In Practice – Run Build<br />Time<br />
  9. 9. CI In Practice – Commit<br />Time<br />
  10. 10. CI In Practice<br />Time<br />
  11. 11. CI In Practice – Continuous Build<br />Time<br />
  12. 12. Encourage Frequent Check-Ins<br />Integrating small changes is much less painful and time consuming than integrating large changes<br />
  13. 13. Problem - Builds Can Become Slow<br />More code = more tests = longer build time<br />
  14. 14. A Fast Build Is Essential<br />Idle developers<br />Context switching<br />Unable to deliver new features<br />I get bored easily<br />
  15. 15. Monitoring Build Time<br />Need to measure how long your build takes<br />
  16. 16. Continuous Integration Server<br />API allows us to access historic build time information<br />
  17. 17. Flot<br />Demo<br />
  18. 18. Speeding Up A Slow Build<br />Split code base<br />
  19. 19. Speeding Up A Slow Build<br />Hardware<br />SSD<br />
  20. 20. Speeding Up A Slow Build<br />Think about how to test<br />Unit tests are fast<br />Functional testing can be slow<br />
  21. 21. Speeding Up A Slow Build<br />Isolation from slow dependencies<br />Impersonator pattern<br />
  22. 22. Speeding Up A Slow Build<br />Parallelize build<br />Be careful with shared dependencies<br />
  23. 23. Speeding Up A Slow Build<br />Choose a light weight development container<br />
  24. 24. Speeding Up A Slow Build<br />Sam Newman’s Build Patterns<br />Check In Gate<br />Fish Eye Test Suite<br />Build Time Limit<br />

×