Planning for Evergreen Systems

Crux Collaborative is a user experience consulting firm. Designing great experiences for complex, data-driven systems is what we’re known for. One thing you might not know about us is that for some of our clients, we design, build, and maintain evergreen business critical web applications.

Evergreen systems constantly evolve in response to business and user needs – and we’ve refined a process to address the planning, development, and release of website enhancements. Of course, since we are a user experience firm, we bring a UX perspective to the entire process, with ongoing user research at the center of our approach.

Release Planning

Gather Inputs

With a system that’s live and in use, inputs for enhancements can come from many sources. End users, content management system users, and business stakeholders are primary sources of input for enhancements. For each release, we work with clients to first gather all the data, and understand and assign priorities to each item. This enables us to take an objective approach in deciding what to include in the upcoming release. We identify the business and user value for each item, understand technical constraints and dependencies, and refine a feature set to be included in the next system release.

Develop a Plan

Once we have an approved feature set, we work with our client to develop an implementation plan. The implementation plan defines our approach, identifies tasks, and timeframes for each activity. Depending on the scope of the planned release, we determine which enhancements require prototype development and user testing.


Implementation

User Experience Design

With the goals and features for the new enhancement cycle finalized, we start exploring how they will fit into the existing site. This frequently involves collaboration between UX specialist(s), designer(s), and developer(s). This phase may begin with sketching sessions to explore ideas quickly using our combined expertise. Concepts that may sound really cool to a UX specialist might raise red flags for a developer. By using a collaborative sketching approach, concepts can be refined quickly – using markers and paper – before even affecting a pixel.

After the sketching sessions, a UX specialist takes the lead to create the Information Architecture that will demonstrate how the new features will be integrated into the current system. Wireframes and user flow diagrams help define a consistent structure in the system and guide the designer as they begin their creative process.

Some of our evergreen systems have content management systems for controlling the content. As new features are added, it’s imperative to consider how these changes will impact the user experience of the content management system. For these systems, separate Information Architecture documentation is created and shared with the client to verify the new features, and how they will enhance the user experience.

User Interface Development

Front-end development follows the specifications in the Information Architecture. When appropriate, interface design is also updated as required. Adding new features to an evergreen system often means regression testing in the target browsers and devices. After the front-end code is updated, the developer will test the site extensively and make changes to accommodate target browsers and devices.

This is also a good time to review any plug-ins the site uses – including video players, content editors, and other third party dependencies. These routinely get updated by the creator without much fanfare. Reviewing them at this point reveals any new features that may have been added that could improve the user experience or the site performance. With new code comes conflict considerations as well. Carefully researching new features before applying them to the existing code base is an important step to prevent unforeseen complications.

Analytics need to be re-visited in this phase as well. Verifying that the existing reporting structure is behaving as expected is key. It’s also a good idea to see if the new features have allowed for or required any new analytics tracking methods that need to be considered.


Collaborative Quality Assurance Testing

Comprehensive Bug Squishing

When the development phase is completed, our team conducts an initial round of thorough quality assurance to resolve most of the bugs that may have been introduced. Then we invite key users from the client team to continue testing the site right along-side us. We use a collaborative, web-based bug tracking system called DoneDone to quickly share information like steps to recreate the bug, screenshots, and affected browser. DoneDone helps us track bug status and assignees to so we don’t miss anything. Testing with the client is a very collaborative process and gives the client team an opportunity to provide feedback on the fly.

When the project includes updates to a content management system, involving the client during the QA phase allows the system to be put through site editing scenarios that may occur in the live site. This phase even doubles as training because it gives the clients time to become comfortable with the new features before they are deployed to the live environment.


Release

Initiate Lock-Down Procedures

When all of the bugs have been squashed and our clients have given their final approval, we prepare to launch the new features. If the site is supported by a content management system, we work with our client’s site editors to identify a “lock-down” period. (We occasionally like to pretend we aren’t actually internet geeks, and instead work in a secret missile silo…or something like that.) Seriously though, the lock-down period is necessary to prevent version control problems. We plan it in advance at a convenient time for the site editors in order to minimize the impact on their day-to-day work.

Deployment

Once we’ve initiated the lock-down, we migrate the code to the production environment. This entails synchronizing the database(s) of content, assets, and settings so the live site reflects all of the changes that have been developed. At this point, the site is live to the public and the evergreen system moves to the next phase.


System Use (Usage Data)

Listening to Users

Once the new features have been launched and the site editing team is allowed back into the content management system, we transition into maintenance mode. During this time, we have found that one of the best ways to plan for next phases is simply by talking to site editors to find out how they are using the system. We maintain regular contact with clients as content is updated and site maintenance is requested. This gives us the opportunity to understand potential needs for future updates.

Anytime we hear, “I wish the system could…”, “Visitors are looking for…”, or “What would it take to…” our ears perk up and we add that feature to our candidate list for the next enhancement cycle. Sometimes the ideas are subtle – for example, we might hear about a work-around that a site editor uses to make it do what they want. Listening to users is paramount to creating a useful tool that helps site editors do their job effectively.


Usability Testing

Prototype Testing

User testing is a core component of our process. Within the life cycle of an evergreen system, we employ it at multiple points as needed. If a planned release includes a major new component – or a fundamental site change – we may build a prototype and conduct usability testing prior to development. This valuable step ensures the end results meets user needs.

Baseline Testing

Sites or systems in use for an extended period of time will grow and evolve. We might conduct a baseline test of the user experience to identify user challenges, pain points, and other opportunities for improvement.

Whatever information we learn – from either approach – is factored into planning the next release.


We’ve learned a few things…

Planning is critical. Many of the systems we support are components of critical business processes that have key business and user driven deadlines. We need to plan in advance to make sure all components are in place in time to meet our client’s business objectives.

Listen to your users. User research doesn’t automatically equal a long and costly study. It can instead be an ongoing part of the process. User research can be integrated in multiple steps of the process – or can be a simple one-day, high-level study. No matter what you do, you’ll learn something from your users that will have an impact.

Engage and collaborate with clients. When client team members are directly invested in the success of the site, the solutions are better and the teams are more efficient. In other words, it saves time and money – and produces more effective results.


If you have an evergreen, business critical application that would benefit from a process that takes all the phases of the life cycle into account, get in touch. We’d love to talk about how we can collaborate with you.

Related Insights