Download - Putting the pro in programmer
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!
The #1 tool a programmer should use
Are you using
version control?
YES
Is it GIT?NO
NO
YES
Awesome!
USE GIT
FFS!
Version ControlGit
Host it online: Git Hub
Host it yourself: Stash (by Atlassian)
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
Fixing Bugs
Use bug trackers (and project management tools) to
improve communication and transparency
• Redmine
• Jira
Pro-TipIntegrate these tools with your
versioning system so you can
track what code went into each bug-fix
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
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!
This is Jenkins
He automatically
runs tests after
every commit.
Shows us trends, code
coverage, and lots of
other stats.
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