Companies today are all facing a significant strategic challenge with the digital transformation. Customers are today trained to expect simplicity and highly personalized content. Consumer market is re-defining the business market. We are all used to Google and its simplicity. Netflix. It is simple, and it is highly personalized through it’s driven behavior. Netflix know who you are and what your interests are.
The customers wants one-click access, 24/7 availability and clear and easy to understand information about the product offering. The customers are getting used to shop online. We also know that 98% of digital consumers are on social media, and social media is redefining the meaning of fast from days into minutes and seconds. Online users are having the same expectations when they interact with the businesses through their day and week.
At Unleash – we truly believe a huge challenge most businesses are facing with this ever increasing speed of change, is to balance the need for speed with the comfort and need for staying in control. McKinsey Digital points out that Speed and Agility is one of 5 key drivers for the ongoing digital transformation in the insurance industry. We believe this applies to all industries For sure we want to innovate and develop quickly, but we also need to stay in control. Avoid doing business-impacting mistakes. Not jeopardizing the customer experiences. Even being able to run experiments on variants of the same offering, and knowing for sure which one provides the result we are after.
Still – we want to embrace speed. Speed and rapid iterations puts us in a position to
- learn quicker
- iterate more ideas
- base our decision on facts from observation and learning and not assumptions
At unleash-hosted, we believe that the challenges mentioned above are best handled through feature activation strategies. When you release a new feature, an improved user experience or make a new offering available – we want to stay in control of who will get access and when. To us there is a clear distinction between releasing a feature to the production environment and enabling it to the customers. What is great – this decision is fully independent of the software development team.
Let’s look at some examples practical examples
Gradual rollout strategy
A common activation strategy in use is Gradual rollout
Imagine that your team is working on a highly complex feature that involves a high number of integrations. Obviously, the development team puts in high effort to ensure that the feature is bullet proof, that there are no mistakes in the implementation. Still – we all know that by the end of the day, it is when the feature is made live, in production the real test occurs. This is the moment of truth. The possible business impact of critical issues is many for this team
- The feature itself won’t work, hence won’t deliver business value it’s supposed to.
- If the feature doesn’t work – the customers will call support to complain. We really don’t want to scale up the support organization every time a new, complex feature is put into production – it’s just too expensive.
- If the service goes down, full or partly, it will impact the reputation of the company
All in all, the team really want to minimize the risk of cause this issue. One option is to spend another
week, maybe even two, to really, really do all the testing possible to avoid this to happen. What this team did, though, was to deploy the feature to production, but wrap it behind a Gradual rollout strategy and by this minimized risk in three simple steps
- First, only expose the feature to the team, and the team only.This allows the team to test and verify that it works in the production environment
- Second step was to expose it only the employees of the company.This did broaden the load on the new feature. The probability of finding issues, if any increases, while still controlling no real business impact
- Enable the feature to 1% of the customer base.
This is where “real” users gets access to the feature – still, if there are issues spotted, the number of users are very low and the impact also more manageable.
Every commit to production
Another example is a Norwegian company called finn.no. Finn.no is a true DevOps company –
currently putting approximately 1500 releases to production per week. The setup in this company, is that every code change that is merge into master goes into production. So what is the learnings from operating this way?
- It reduces the stress – to deploy something to production is something you do on a daily basis.
- The Definition of Done, really means “Done”, it is actually in production, you are not done with the task anytime before this.
- It is easy to identify issues – you will find them immediately, and you fix them
- You are forced to automate. When you do the same routines again, and again, you will automate what you can.
- Focus increase – less task switching (again, the Definition of Done is when it is in production, not before)
- Ownership increase – I build it, and I run it.
So, what is the flip-side of the coin?
Not all of these releases adds value to the customer. Micro increments on a feature, might not make sense until there are more brought together. This is where the Default Activation strategy comes into play. By applying a Default Activation strategy to a feature, it allows Product management to stay in control of when is the feature “good enough” for the customers.
As we have seen, agility and speed is key to be successful in the digital transformation. Still, one of the big challenges that most businesses are facing, is to embrace the speed and agility at the same time balancing the need for control. This is where unleash-hosted brings value – allowing the business to take control on how new feature are rolled out to its customers.