How to use an agile scrum framework for developing an Episerver site

This blog post discusses Fig Leaf Software’s approach to adopting an agile scrum framework for a full web content management site redesign and development, powered by Episerver. You'll learn the business motivations and technical justifications behind our decision to embrace an agile scrum framework, and gain insights into the benefits from adopting this new paradigm for Episerver development projects.

New development principles

Around 2010, Fig Leaf Software recognized the need to keep up with fast-paced web development principles that were becoming widely accepted. These included adaptive and responsive web designs, progressive enhancements, and content adaptation for multi-screen and multi-device consumption in web design and CMS implementation projects.

Although our highest priority has always been to satisfy the business needs of our customers, we’ve found it to be a challenge to welcome changing requirements late in the development phase following a full SDLC or waterfall methodology. Nowadays, we’ve overcome this challenge by replacing the predictive up-front planning with adaptive planning on a scrum framework. This involves working agilely with a progressive elaboration in our web design and development approach.

 

Why scrum for agile?

Going agile promotes good estimation at task levels, effective branching strategies for code management, and well-defined acceptance criteria to automate testing and safeguard quality. It also enables continuous release management to get faster feedback from customers.

Most importantly, the agile framework empowers our developers to work directly with other parts of the business. This means our developers build stronger relationships with product and requirements managers, creative and design professionals, QA testers and project managers.

Fig Leaf Software chose scrum as our agile development framework because it allows us to:

  • Focus on iterative and incremental planning and release of software or products
  • Inspect and adapt to changing organizational and business needs of our customers
  • Improve teamwork, communication and speed of delivery
  • Address the role of a traditional project manager with the roles of Product Owner, Scrum Master and the Scrum Team
  • Reinforce the importance of good estimation and faster feedback from quality assurance testers
  • Ensure that the must-have and most valuable features or requirements have been completed when the project ends

A scrum team has three specific roles: product owner, scrum master, and the team. And because scrum teams are cross-functional, “the team” includes testers, designers, creative professionals and content strategists, in addition to developers.

The following illustration from Scrum Alliance defines the fundamentals of a scrum framework that Fig Leaf Software has adopted in its transition from a traditional waterfall methodology to agile.

 

 

We define a list requirements and features of the CMS website in a worklist called the Product Backlog, and prioritize the order of delivery for each high-level feature or requirement. Each software function in the product backlog is broken down into a list of tasks with the acceptance criteria defined by the Product Owner upon completion of each task.

Our high-performing, cross-functional team of web designers and developers build the CMS site in a series of fixed-length iterations called Sprints to release software features in increments. Each iteration of a release is vetted by the testing and sprint review process built upon a pre-defined list of acceptance criteria.

In every CMS project that we undertake on a scrum framework, a designated Scrum Master facilitates the team to define and prioritize the Sprint Backlog during each Sprint Planning session. During an active sprint, the team meets every day to assess its progress by participating in a Daily Scrum. Each sprint ends with a Sprint Review and Sprint Retrospective. As the next sprint begins, the team prioritizes another sprint backlog and begins work again.

 

Leveraging scrum in Episerver development

Episerver’s Digital Experience Cloud provides unprecedented usability and agility in helping organizations create unique digital experiences for their customers by combining content, commerce and marketing in a single platform. With agile development, Fig Leaf Software’s cross-functional team, including creative professionals, content strategists, marketing experts and software developers, can build a better quality solution and engage in a progressively collaborative development culture.

At Fig Leaf Software, we set up a development server dedicated to hosting the development version of each Episerver CMS site and configure a distributed version control system using Git within BitBucket to store all of the site’s template code changes. Our developers cross-train each other by conducting collaborative peer code reviews to promote familiarity and best practices across the team. If a developer has a scheduled vacation during a particular sprint, the sprint is still completed.

The first development sprint, after discovery and visual design phases, is the development of a responsive prototype in HTML/CSS and JavaScript for different page types that Episerver CMS must accommodate. The subsequent sprints may tackle the following basic building blocks of Episerver CMS depending on the version you’re using:

  • Content types such as page types and block types
  • Page, Page Types and Page Templates
  • Block, Block Types and Block Templates
  • Specialized and custom properties
  • Content Area Renderers (User Controls or Web Controls)
  • Dynamic Content Controls

During a sprint review, the demo may include requesting a page with one or more blocks as defined in the product backlog. The renderers associated with the block types will generate the output of the page for different screen sizes or devices, which will then be verified based on the acceptance criteria defined for the page in the product backlog.
If the intended deliverable or output of a sprint is the ability to author or curate content with Experience Editor, the Sprint Review may include a demo on dragging and dropping content, buttons, forms and any type of media to build the page within Experience Editor.

 

Conclusion

Episerver 7 introduces a powerful and flexible model for content management with additional complexity, compared to previous versions. Leveraging an agile development framework enables you to break down a highly complex implementation into manageable units of releases. This can be an effective way to implement scalable and adaptable content management solutions on Episerver’s platform. After all, going agile is all about building an efficient development culture while cultivating best practices along the way.

Theonic Way

Guest blogger: Theonic Way

Vice President of Consulting Strategy & Operations, Fig Leaf Software Inc.

Email: tway@figleaf.com