Agile Software Development at BCcampus

At BCcampus, we develop numerous open source software applications. A crucial component of our application development is SCRUM, a lightweight framework for Agile development. This framework, along with engineering best practices, allows for rapid delivery of high-quality software. It also provides a business approach that aligns development with user needs and company goals. The overhead of the process is kept as small as possible, to maximize the amount of productive time available for getting useful work done.

Post by Alex Paredes, Web Developer, BCcampus  

The development of products (such as the Early Years BC professional development calendar, and the Pressbooks Textbooks WordPress plugin) happen in development cycles called Sprints. The product requirements are put into a backlog by the product owner, and solutions evolve through collaboration between the product owner and the development team.

Photo credit: Mike Rohde: Agile Scrum PSD Training Sketchnotes Professional Scrum Developer

During Sprint Planning, the work is estimated, and a negotiation happens where we commit to specific tasks in a specific time frame (usually 1-2 weeks) to reach the sprint goal. The deliverable is an iteration of the product, usually a new feature or functionality.

Overall, our team has noticed significant increases in productivity and the quality of deliverables, and can cope better with change.

While there have been numerous benefits to adopting SCRUM, it has not been without its challenges. One of the biggest challenges has been ensuring that both developers and product owners understand and agree to what common terms are that are used during the process. It has also taken the development team some time to perfect our estimation techniques to get more accurate estimates of deliverables. Additionally, as with any new process that is implemented across an organization, there is always a degree of organizational change that needs to be managed in order to help smooth out the bumps of a new process.

A key component to ensure that the process is meeting the needs of the product owners is the weekly Sprint Retrospective meeting. At the end of each Sprint, the development team conducts a retrospective with the product owners and asks “what went well”, and “what we could do better next time”. It usually takes 2-3 Sprints to get the hang of things with a new team.

The primary tool we use for our SCRUM Task Board is Github’s project board. Modeled after Kanban boards, we have developed columns that work for our team. They are from left to right: Sprint Backlog, Doing, Validating, and Done. The tasks flow through this, making our work transparent for our product owner and development team.

While Agile methodologies like SCRUM comes from the software development world, at BCcampus, we have been experimenting with uses of Agile methodologies and techniques for projects beyond software development. The Sprint process, for example, has served as a model for the development of open educational resources for the BC Open Textbook collection. The BC Open Education Librarians group have also used day-long sprints as a model for the development of institutional support resources.

Notable quote:

“Since implementing SCRUM at BCcampus, we have been better able to manage an ever-growing list of software applications and deliver better results to both our internal and external stakeholders. And we have been able to apply SCRUM and other Agile methods in innovative ways to projects that have nothing to do with software development, such as the creation of open educational resources.” – Clint Lalonde, Manager, Education Technology and Development

Learn more:

Join us for an upcoming event:

To stay informed with BCcampus by signing up for our newsletter, visiting our calendar and following @BCcampus on Twitter.