Organizations need to plan ahead. Most of the time, people think about Financial Forecasting and Planning. But Forecasting and Planning is important for all kinds of business activities. Over the last year, I have been involved in 3 projects where we have selected and replaced a core business system that deals with either Forecasting, Planning or both. In this post, I want to focus more on the experience of changing these core systems. Therefore I won’t go into which specific systems we have selected. For current and future IT architects, this is less relevant. Technologies change all the time. However, I will mention some technologies that are part of our current IT landscape, when this is relevant to the selection process.
Most medium sized business (and larger organizations) offer some kind of customer support service. Traditionally, this customer support is provided by the call center. If you want to reach support, you call them. A second method is to e-mail customer support. And most business also offer ways to get in touch via their corporate website: via the contact form, chat (bot) or through social media (Twitter, Facebook, WhatsApp, Instagram, etc.).
But how times have changed! In my personal life, I experienced over the last few years that it has gotten more and more difficult to get another human on the phone. My Domain and Website provider (Transip.nl) doesn’t offer phone support at all. I am a customer of KPN for my (mobile) phone, internet and TV. I think its strange that a Telecom provider is hiding the telephone number of their support service on their website. I had to click on 3 items to reveal the number (0800-0402). As Consumentenbond, we do this a bit better. Our customer service number (070-4454545) is listed at the bottom the ‘Klantenservice’ page.
But i digress. The life of the call center has become more difficult over the last 10 years because of all the added channels that they need to manage. Yes, we are talking about omnichannel experience now. And within the Consumentenbond, we not only manage all of these channels, but we do so with a tightly staffed call center. Because real human beings (the call center agents) are an expensive way to provide customer support. Because we switched out our old marketing system and our old customer engagement system, we also face the challenge to connect all the dots. Because without the right data, it becomes hard to manage the workload of your staff. And that is only 60% of the challenge for our customer support department. Because they are also responsible for contacting customers for promotions and pro-consumer advocacy actions and they are also providing a range of commercial services.
This is where a Workforce Management system comes into play. A Workforce Management system is responsible for Forecasting the workload, for Capacity planning, for Scheduling (a.k.a Planning), for Intraday Management, for Reporting (on Service Levels and Adherence) and for providing our Agents a good overview of their work in the Employee Portal and Mobile app. Unfortunately for our customer support department, their existing WFM system was not working according to their liking. From fundamental system design flaws (such as a lack of fairness in the planning and in granting leave for employees), to usability issues, to maintenance issues (Internet Explorer as the only supported browser, really?). The existing WFM system was implemented in 2016, but was essentially the same system which was used over the last 15 years. Based on their request to look for another WFM solution, we (the combined IT and Business team) started our software selection process. This consists of the following steps:
- Determine goal and scope of the project
- Determine business and IT requirements
- Architecture research of viable solutions in the market
- Create a long list of software solutions & discuss with business stakeholders
- Elimination of solutions that didn’t meet our needs
- Request information and pricing from the vendors that remain on the long list
- Discuss provided information and pricing with the business and creation of a short list of software solutions
- Demonstrations of short listed software solutions by their vendors
- Making the final decision on the preferred solutions
This seems like a very straightforward process, but in practice there were deviations from this linear approach. One of the distractions that we faced, were 2 vendors that tried to push their agenda / product. One vendor had connections with an internal employee. They contacted this person to try to push information. And suddenly a demonstration is provided by that vendor, while others haven’t had the chance yet. We also had to engage with the existing vendor, who was trying to keep us onboard. We told them why we felt that their product didn’t meet meet our needs anymore. That lead to detailed discussions, where solution engineers from that vendor were engaged in meetings to dive deep into certain issues. What strikes me personally, is that these engineers were only engaged when we decided to change. Much pain could have been prevented, if this vendor would have engaged the same people during the last 5 years that we were using their product. As an architect from the Consumentenbond, I feel that it is very important to remain vendor neutral. So we always returned to the normal process and made sure that we made apples-to-apples comparisons between the various products, based on our requirements and our values.
Another thing that disrupted the process were worries (risks) on getting support from the vendors (or local support partners). Local support is very important for complex IT systems. Cloud applications like WFM systems (but also CRM and other Cloud based systems) are highly customizable. This can lead to problems down the road. So (external) professionals who implement changes in a proper way are very important for future usability of the solution. This was one of the reason for postponing our eventual decision. We needed to ensure that the support of that application would be in place and that this support would meet our needs.
Content Planning system
At the Consumentenbond, we not only have a website to manage, but we also make 4 print magazines.
And we also have our various Social Media accounts to manage.
And you know what? It takes a lot of effort, to plan all content pieces that need to be made through the year! Some magazine articles are planned months in advance. We conduct various product tests during the year and after all that test work, we publish a well written article or well presented video about that. So how do we manage that workload?
Until a year ago, our answer would be: with a in-house developed PHP application that is definitely showing its age. It is fully tailored to the Consumentenbond way of working. But it is old. And because it is not very user friendly, it is mostly used for management purposes. It was used to register articles and other work / projects. And when everything was completed, that was registered as well. For everything that happened in between… The actual collaboration between our employees was far removed from this application and happened mostly via e-mail. That works for basic collaboration. But when you need to know the progress / status of that work, there is no place to get a birds-eye overview of everything that is going on.
One other complication was that a few years ago, a similar project to replace this aging system was conducted and that project failed. In this project, the focus was put on ‘Project Management’ and ‘Financial Management’ and not on the actual process of creating content. Which meant that they had build a very good Project Management system, that was not very easy to use. So this time around, we needed to get it right!
One of the biggest wishes from employees of the Content department was to be able to create a Content Calendar, to see which articles/posts/videos were worked on and what the deadline for that piece of content was. But that was not the most important requirement. Major requirements were:
- The ability to implement various Consumentenbond specific workflows for content creation
- The ability to create checkpoints / decision points in those workflows
- The ability to discuss issues within the system and within the workflows
- The ability to manage work in various ways (Lists / Kanban / Gantt / Calendar), to suit the various ways of working
- The ability to organize tasks independent from the teams (most systems use rigid structures were a team has 1:n projects and a project has 1:n tasks), because we are organized in many virtual teams
- The ability to manage peoples workload (what are they working on, how much room do they have for additional tasks) a.k.a. the ability to do Capacity Planning
- The ability to use custom fields for Consumentenbond specific information
- The ability to register actual hours made per piece of content / per project and the ability to export that data to our Data Warehouse
- An easy to use interface
- Easy to use dashboards (for reporting purposes)
From the IT side, we had some additional considerations:
- We preferred a cloud based (Software as a Service) solution
- We needed the system to integrate with our Azure Active Directory
- We wanted Office365 integration
The way we approached this was that the Business Analist started talking to all departments / groups within the Consumentenbond that did ‘something’ with content. Yes, that means talking to 9 different groups to collect the requirements. And at the same time, I started to researching the market. As an Architect (or Consultant) there are 2 publications that dominate the public opinion about software solutions:
- Gartner (Magic Quadrant)
- Forrester (the Forrester Wave)
Do you want to get these publications from Gartner or Forrester? Be ready to pay. But you can also fill in the contact form of the vendors that have high ranking products and get all that information for free. So that is my approach. The next step in my exploration is to do research into similar products / solutions, but now made for the small medium business segment. This way I get a good range between what is possible (the market leaders) and the more simple solutions (with possibly a more attractive pricing). There are also alternatives that do not meet all of the requirements, but can be used in combination with other products to make it work. In our situation, we have Office365 as our main groupware solution. And within Office365 there are 2 solutions that (if stitched together) could form a possible replacement. Because we already paid for Office365, I included Microsoft Planner and Microsoft SharePoint as a low cost option.
However, even at no additional costs, price is not the leading decision criteria. That is and will always be the functionality. I want to select the solution that fits best for the business, at a competitive price. The good thing about these Work / Collaboration / Management / Planning solutions is that they are targeting a very broad market. So the licenses per employee are actually quite affordable (think between 10-25 euro/dollar per employee). We teamed up with a group of 5 business representatives from the 9 teams that eventually would get to work with this new Content Planning system. We got lucky. There was one person, who was very passionate about work planning. She took the lead in the evaluation process. We created use cases that they could use to evaluate the solutions. And we created the short-list of 4 solutions. From their selection process, there was a clear winner in terms of functionality. And because the pricing was very similar between all (non-Microsoft) solutions, we ended up choosing the best solution for the business.
Forecasting Memberships and Revenues
Consumentenbond is a membership based non-profit organization. In Dutch this is called a ‘vereniging’. Our organization is run by our members. So its obvious that we care about memberships and about membership numbers. In practice, we count memberships per subscription (think products) and per cohort (how long you have been an active member). Furthermore we also count the other subscriptions (that non-members can also purchase). But we are not only interested in the actual subscription counts. Our business teams are eager to learn about the future growth or decline of those subscription counts. We want to know, so we can plan ahead.
This project started when an external consultant started with an assignment to look into Financial Forecasting solutions (also known as Financial Planning and Analysis systems). However, the focus of this external consultant was to broad. This consultant tried to find a (commercial) solution for financial forecasting. The consultant did not follow our regular process for software selection. When I asked for the business requirements, they were not investigated. When I asked how the data should be modeled, this was not investigated. The proposed Financial Planning and Analysis solutions did not include any of the software vendors that we were already using. This lead me to intervene in this project and basically I have asked the team to start over.
This meant starting with the goal and scope of the project. Which we set to solving automation of the membership model and the revenues that where related to those memberships. This was historically done by a Data Analyst who collected information from various business stakeholders and put this together on a monthly basis by using a statistical analytics tool. The problem was not the model. The problem was that all information needed to be collected and recalculated every month from scratch. So we wanted to automate this process.
Based on a detailed demonstration, we got a good idea about the business requirements. We knew what data was required and what adjustments the business liked to make. We also found some ways in which we could improve the current implementation. Currently, we only calculated average growth or decline of membership numbers and revenue. We envisioned that we could also make calculations which would positively or negatively deviate from the average. This would allow the business to see the risk margins of the calculations. We created the below architectural model for the overall solution.
Data silos are a big problem for any organization. Many transactional business applications (CRM systems, ERP systems, CMS systems, etc.) have their own database, which makes them a data silo. As an architect, I like to think about what information needs to be stored in which systems. I try to avoid data duplication if possible. And if we need to have data duplication, I try to keep this synchronized with the single source of truth. Analytics systems (Data Lakes, Data Warehouses, Big Data data stores, Customer Data Platforms) start with data ingestion from transactional systems. So you will always duplicate data when implementing an Analytics system.
Now think about what happens when you implement 2 separate Analytics systems. You get 2 different views, which are based on the same underlying transactional data. Those 2 Analytics systems can (and will) show different results, if they are based on their own logic (data aggregation, normalization, categorization) and if they are based on their own data retrieval timing (which data you import at which interval). This will always lead to questions from business stakeholders: “Why is my data saying something different than your data?” That is something that you want to avoid as an architect.
So when I was looking into solutions to automate our membership numbers and revenues forecasting, this was a major concern for me. Because Financial Planning and Analytics systems are in essence Analytics systems. What I didn’t want was an expensive new tool, that would create an alternate view, based on the same data. So I looked into enhancing the tools that we were already using. Within the Consumentenbond we use analytics tooling based on Microsoft technologies (SQL Server, Analysis Services and Power BI). Our Data Warehouse already contained all the transactional data that was needed for this project. Within the Data Warehouse we could create all necessary calculations, based on the historical membership numbers and revenue data. We only needed a way to add the business input about the estimated membership numbers in the future, so we could use that for our calculations. Preferably by using a tool that would integrate perfectly in our Microsoft based technology stack.
We found a great solution which (as unique selling point) proposed that this added Financial Planning and Analysis capabilities to Power BI. Which meant that we could keep using the same Analytics tooling (Power BI) for our business stakeholders. This solution allowed us to write this data to our Data Warehouse. We compared this solution with a couple of Financial Planning and Analysis alternatives, but no other tool offered similar functionality. The other benefit of this solution was that it was 50% cheaper than traditional Financial Planning and Analysis tools. Because the full team was convinced that this was the right solution, we decided that we would create a Proof of Concept to see if this solution would hold up in practice.
It was very interesting to be involved in 3 such similar projects in the time span of one year. In the basis, the business problem that we are trying to solve is similar: to get a good idea about future numbers to be able to plan ahead. But the projects for selecting the right solution for our business were very different. My learnings from these projects are:
- Create a software selection process and stick to that process. If you need to deviate from this process, always go back as soon as possible.
- Get a good understanding of the business requirements. You need to understand the capabilities that a solution needs to cover.
- Don’t be scared to get into the nitty-gritty details of a (existing or proposed) solution. Make sure that it meets the needs of the business.
- Gartner and Forrester are good sources to get an idea about the market leaders. But always look beyond the market leaders. Look into niche players that offer solid solutions with 80% of the functionality of the big players. Those solutions might also suffice.
- Avoid to make pricing (or annual costs) your leading decision criteria. The functional fit is the most import thing to get right. Solutions do need to be competitively priced.
- Make sure to factor in (local) support as a criteria in your decision making. This is important for the implementation and for future changes.
- Avoid data duplication as much as possible. If data duplication can’t be avoided, make sure that the data is always kept in sync with the single source of truth.
- Avoid alternate views on the same data. If alternate views on the same data can’t be avoided, make sure that the logic (aggregation, normalization, categorization) and the timing of data imports is the same for both views. And device ways to keep this logic and timing the same in the future.
- If the whole team is convinced of a winning solution and you haven’t done a full blown comparison, do a Proof of Concept to make sure that the solution fits the needs of your organization in practice.
Published: 28 June 2021