Monday, November 26, 2018

Case Study: Achieving Long-Term Goals Means Making Incremental Changes

Key Challenges

   Integrate two SharePoint portals that are used daily by thousands of team members.
   Incorporate existing third-party applications into the integrated portal without increasing costs or resource usage.
   Implement incremental changes to minimize downtime.

Balancing Capabilities, Costs, and Cohesion

If you are not part of an IT company, odds are your content management system (CMS) relies at least partially on third-party applications. Third-party applications are not necessarily a bad thing—they provide many beneficial CMS services. As the number of third-party applications increases, however, integration costs rise and systems become fragmented. Companies must strike a careful balance between increasing capabilities (and costs) and maintaining a well-integrated system. Development often must take place incrementally. We help our clients navigate the tradeoffs associated with incorporating new CMS functionality to increase performance one step at a time.

One of our clients, a large retailer, approached us in 2015 to make incremental changes to their SharePoint-based employee portal. Their portal allows employees to read the latest company updates and access required third-party applications. The client independently owns several thousand stores. Employees at these stores accessed the portal with no issues. But the client also needed to share company updates and application access with their licensee stores.

Maintaining consistent customer service and brand image, regardless of whether a customer visits a partner store or a licensee store, is crucial to our client's success. To ensure consistency, the client was responsible for training and educating the employees at the partner stores and the licensee stores. But because our client did not employ the workers at the licensee stores, the client did include them in the existing employee portal. Instead, the licensee store employees received company information through hard copies and emails. Our client needed to be able to onboard new employees at their licensee stores and provide them with company updates while maintaining a separate SharePoint portal for their full-time employees.

Our Process

In order to centralize licensee store resources, our client asked us to build a licensee employee portal. Ideally, the client wanted to be able to push updates and information simultaneously to the main employee portal and the licensee employee portal. We began by cloning the full-time employee portal onto a separate system. This ensured that our client was able to house all the information needed for the employees of the licensee stores, and at the time, this was all our client wanted. But this solution introduced a logistical problem. Both portals naturally underwent incremental change as a result of their slightly different roles, but our client still needed the portals to perform the same functions. Because our client was using two entirely different portals, updates meant the same code had to be written twice. To increase the efficiency of the implementation, we generalized the logic that ran both portals. Now, changes made to both portals were pushed to both concurrently.

Challenges Along the Way

Working in a production environment that extensively relied on third-party applications presented many unique challenges. Due to the size of our client’s SharePoint farms, for example, we could not load the entire production environment in lower testing environments. Even though we used proxies to reproduce errors, we could not be certain that bug fixes would be successful until they were implemented in the production environment. This challenge was then exacerbated by the size of our client. Our client is responsible for over 10,000 stores. This means that any proposed changes to the SharePoint farms must go through a lengthy vetting process of at least three weeks.

We knew that for a project of this scale, mistakes or bugs were unacceptable. Any mistake that resulted in downtime could interrupt the workflow of thousands of company and licensee employees. Over our years-long relationship with our client, we worked hard to develop trust and demonstrate our competence through reliable results. Reflecting on the scale and duration of the project, the project lead emphasized the importance of patience. “We cannot be impatient, and we must be very thorough in our work. If we say, ‘this is the hotfix,’ we have to be absolutely certain in our work so that it doesn’t backfire.” Our diligence and attention to detail paid off. “We had to prove that we were the best,” our project lead noted, “but as long as you are technically capable and thorough in your work, I think the work speaks for itself.”