Agile Development & Scrum
Agile is a project management style that enables us to stay flexible to the needs of our clients and changes in project scope and priorities, knowing that not everything can be determined up front. There are a few forms of practicing Agile and we practice the Scrum methodology. This is a widely used Agile methodology and practiced by names such as the BBC, Microsoft, Stella & Dot and many others.
We plot our projects in Pivotal Tracker where we can break down features into user stories and drag and drop to position them in priority order and allow for real time collaboration by everyone on the team. This is where we manage our Scrum Sprints - typically a fortnight of swift development culminating in a potentially releasable result.
We typically use Github and Pantheon to store your codebase as well as tools such as CircleCI and Selenium to provide Continuous Integration. This means that your code is safely backed up with revisions logged in a manner that can be rolled back if necessary. Pantheon becomes more than just a host for your website, but also a way to quickly move code from a development environment when stable, to a test environment called Staging - where the client can test out and approve our updates, and then push to the Production site where the updates are then made live to the public.
We recommend development of a suite of automated regression tests in parallel with new feature development, to ensure that everything that we develop is continuously and automatically re-tested after every single change. Together, these tools provide a best-in-breed system that removes the need for Systems Administrators (people to run servers) and provides an array of features to enable optimal Drupal development workflows. We use these tools across all of our client environments, saving them money and providing peace of mind.
We are able to communicate throughout sprints during office hours, by Skype, Google Hangouts, email and regular telephone to keep track of progress, add details or discuss any item in the sprint. In addition to an intense and focused development effort, every sprint also includes:
Daily Scrum between the team (15min call) to discuss: What each person did yesterday; What they are doing today; If they have any blockers or who they need to talk with to get something delivered.
A Sprint Planning session to: Write user stories if they don’t already exist; Refine user stories (adding more detail and granular tasks); Estimate or re-estimate the work of each user story; Create a Sprint GoalAllow the developers to have clear instructions before going ahead with the next block of work.
A Sprint Review. Involve Stakeholders; Review the work achieved during the last sprint; Demo anything that can be currently used; Allow the client to sign off on the opportunity to deploy the work; Allow the client to provide feedback, often and honestly - directly to the team.
A Sprint Retrospective: A chance to make changes in the process for the next sprint.