With the increase in consumerization and crowdsourcing trends, the days of delivering software to Customers after it is built by an IT team with a complex technology stack are behind us.
Customers very much want to be part of the development cycle and have an early look at what is being built. This is correlated by the fact that many projects are being done in Agile model, where the customer is involved in the working of the Sprints.

Since the customers are business owners, it is unfair to expect them to be knowing the nuances of the various technology elements or platforms and hence add value on technology recommendations. But they can definitely add a lot of value to the business utility of the software applications since they are closer to the business and also to customers’ customers.

While everyone would agree on the customer involvement, there are practical challenges in getting the right people and time from the customer groups to have a look at the application under development. Especially this is a major concern area for applications that are undergoing enhancements since, the first-hand feel of the enhancements need to be validated against existing functionality.

There are multiple ways of exposing the new features to the users to test, like:

  1. Using an ALPHA release for internal users and a BETA release for external users
  2. Using FEATURE FLAGS in the application which are set based on user profile, to expose/hide new functionality for select users
  3. Using A/B release with a minor change between both the releases to see how users react to changes
  4. Using a deployment configuration to rollout the entirely new release to only a select group of users.

Each of these has specific applicability and results. With the cost of infrastructure coming down a bit, the well-known deployment configuration of a typical Load Balancer handling multiple Application servers can effectively be used to deploy the application under test to a small group of users in the production setup, without any impact to the existing configuration.

Image indicating Testing In Production

The Application under test can be deployed to a BETA APP-Server and the Load Balancer can be configured to direct a few sets of customers to the new server. The other users do not have any impact on their operations. The TEST-Users get to try the new features and based on their experience, the application can be fine-tuned.
This approach will shrink the overall testing cycle by involving a larger group of users in the testing process. Many Social media portals have been doing this Testing in Production very successfully.

Happy Testing!!!!

– Kumareshen Chidambaram