Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Putting the pro in programmer


Published on

Kris' talk from @Exeter_web on 20th May 2014

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Putting the pro in programmer

  1. 1. Putting the PRO in PROGRAMMER Improving your development processes Kris Sum / Switch Systems Ltd
  2. 2. So you’re a rockstar developer… You write lots of code You have to fix everyone else’s stuff You don’t have time to be doing any more work … its time to go PRO!
  3. 3. The #1 tool a programmer should use Are you using version control? YES Is it GIT? NO NO YES Awesome! USE GIT FFS! Version Control Git Host it online: Git Hub Host it yourself: Stash (by Atlassian)
  4. 4. Development Environment: VAGRANT
  5. 5. Development Environment: VAGRANT • All your developers get the same development environment for testing • No more worries about dependencies or windows/linux/mac platform differences • You can give the vagrant files to non-techies • Makes deploying to production easier
  7. 7. Fixing Bugs Use bug trackers (and project management tools) to improve communication and transparency • Redmine • Jira Pro-Tip Integrate these tools with your versioning system so you can track what code went into each bug-fix
  8. 8. “NO COMMITS WITHOUT TICKET IDs” Some wise bloke You can enforce this with pre-commit hooks!
  9. 9. So you fixed a bug NOW WRITE A TEST • If the bug wasn’t down to user error, write a unit test that proves that your patch fixes it. • This means that you can’t ever re-introduce the bug. (but obviously no one here has ever done that!) • It also improves your understanding of the code, as your unit test should be testing all edge cases, including the ones the original bug may have missed
  10. 10. Now we’re getting somewhere!  Your code is in good shape  It’s all version controlled  Project Management is happening  You have tests that prove the code works Time for Continuous Integration!
  12. 12. This is Jenkins He automatically runs tests after every commit. Shows us trends, code coverage, and lots of other stats.
  13. 13. This is Jenkins + IM Now we have a chat-bot so there’s no getting away from breaking the build!
  14. 14. Monitoring and Alerting • Gives us baseline figures • We can set up thresholds for alerting What should you monitor? • Load (linux) or CPU / Disk IO (windows) • Memory • Disk Space
  15. 15. Monitoring and Alerting Max cluster load Recovery time
  16. 16. THANK YOU