Scrum, Behavior Driven Development, Continuous Integration and Refactoring Tools for Agile Software Development