Posts By :

Roma Maheshwari

Hard Won Lessons in Digital Transformation

One of the key actions we do regularly with each of our customers and internally is to conduct Retrospectives – to critically understand the original problem, target solution and the journey so far. These retrospectives help us do course corrections and sometimes, even shelve the original plan!

In this article, we present you with a few key lessons distilled from our Retrospectives and experiences, in the hope that these will help in your Digital Transformation plans.

Culture is the key element of Digital Transformation and Leaders own it

Although this phrase is overused, but the meaning holds relevance. You revamp technology stack, adopt DevOps tools and technologies, improve your delivery practices, but the needle doesn’t seem to move! That’s because underneath all of the hype, your teams don’t change their fundamental habits and ways of working. You can’t expect to hold a townhall, walk through a presentation and expect the organization to shift.

Changing the culture is hard, but leaders need to show the way every day – by constantly talking to the teams, understand their challenges, provide trainings and investments, changing the performance and incentive structures and most importantly showing why the change is important for the organization and how it benefits them too!

In one case, we helped the client appoint a Chief Digital Officer (CDO) to drive the enterprise-wide Digital Transformations.

In short, Culture emerges as the most important part of Digital Transformation journey, while digital winners approach culture with creating sub-units or identifying change agents to drive culture transformation, laggards leave it with the mails – ‘We are on a Digital Journey’.

“I came to see, in my time at IBM, that culture isn’t just one aspect of the game, it is the game. In the end, an organization is nothing more than the collective capacity of its people to create value.” — Louis V. Gerstner, Jr., Former CEO of IBM

IT Strategy = Business Strategy

The old generation IT was as a cost-centre, especially in industries where core business is not IT. These opinions were busted when the new generation IT gave rise to business models such as Netflix, Amazon, Uber. Digital native companies are already well-equipped with digital capabilities and technologies. To compete with them, non-digital organizations must integrate new-generation IT and technologies with their legacy systems.

Increasingly, even the non-IT Enterprises have adopted a vision of “IT as the Platform for Delivering our Capabilities”. To achieve this vision, organizations are investing in IT in a big way in the following areas:

  • Cloud-Native Applications for rapid Development, release and easy maintenance
  • Increasing adoption of DevOps, Automation and Agile
  • Modernizing legacy systems
  • Piloting use cases of AI, Blockchain, IoT

One of our Star client’s business model is to digitalize orthodontist industry with 3D printing and Digital Manufacturing using cutting edge software impressed us. In their initial conversations with us, they briefed us how their Digital Business Strategy is driving IT investments. Their ground-breaking tele-dentistry platform and vertically integrated, direct-to-consumer business model provides affordable, convenient and premium dentistry experience. Their rapid expansion in terms of geographic presence and revenue growth meant that they had to significantly upscale their IT Application Delivery and Operations process.

We helped in establishing a DevOps based Enterprise Delivery Pipeline that included Product Management, Engineering staff, Infrastructure and Operations teams. The Engineering transformation accelerated the pace at which IT could bring new markets online, resulting in a significant upsurge in Revenue.

“An IT Strategy that truly aligns with Business Strategy and Goals can act as a significant force multiplier for the Business!”

Measure and Adapt

In a third company, we were pleasantly surprised to see the DevOps tools and advanced CI/CD practices our client, a premier global valuation and corporate finance advisor was using. However, the leadership was not seeing direct benefits of the improvements. A quick Assessment showed that they did not have right metrics and data to demonstrate success and find issues in the pipeline. As a result, they continued with some practices that were not helping them, such as running every build through a Security Analysis product which did not provide the right results and slowed down the entire pipeline.

A comprehensive Measurement Program was designed using Business Metrics as the starting point and deriving Engineering/Operational metrics from it. The metrics were designed to measure system performance and not individual performance. A Lifecycle Intelligence Dashboard was built to get visibility into the metrics captured on an hourly basis. Feedback loops were built into the process through this Dashboard that the team could drill down to find and resolve bottlenecks.

“When a measure becomes a target, it ceases to be a good measure”

Automate, Automate, Automate

Another Client of ours was struggling with low morale, lengthy times to get things done, broken manual processes and reliance on a few superheroes. Out of these, the biggest Technical debt was in Automating Testing. Their software had hundreds of combinations for each workflow, so manual testing was getting to the point of being unmanageable and expensive.

We introduced a tried-and-tested QA Automation Framework that quickly helps clients achieve incremental benefits of DevOps with Advanced Automation and improving customer interaction by improving existing digital touch points or creating new ones. We augmented our Automation framework with our AI bot to quickly identify areas of change, tests that were really required and generate necessary test data. Test Environments were containerized with different configurations and tests were run in parallel, sometimes using hundreds of test agents running in parallel.

DevOps requires Continuous testing to augment Continuous Planning, Continuous Development and Continuous Integration.

I am text block. Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Transformation is not a destination, it is a journey

An industry player in Loyalty Management Solutions turned to us for help in Digital Transformation of their Loyalty Management Platform to improve the user-experience and simplify development and customization of the platform. The engagement is a good example of how Digital Transformation is an ongoing process.

When we asked one of our clients in Loyalty Management Business “What single word best describes the business landscape in your industry?” We got a single word response: Evolving and Transforming. We drove a matrix ranking their solution to the counterparts and explained as they are evolving and transforming their platform, competitors are doing the same.

We started the discovery phase to outline the solution for the client. We started with business objectives of providing superior User Experience with Self-Service portal and introducing Loyalty-As-A-Service (LaaS) as a key feature. For achieving these business objectives, we recommended embracing CI/CD and API-first approaches to product deployments. But, as we explored more solutions in the industry, we found competitors are offering Advanced Analytics, AI, Gamification and Big Data solutions in the product.

We learned that organizations cannot reach the goal of the Digital Transformation as there are new features/solutions emerging in the market challenging the status quo of the existing ones. Once an organization feel it has completed the first phase of Digital Transformation, it’s the time to look at the internal processes, competitive landscape, customer expectations and refine the processes to make them more efficient.

Organizations must continuously evolve their offerings and services for competing in the digital world. A Customer-Experience focused strategy, right technology partner and exploring continuum of the latest technologies is the way to evolve current digital capabilities. The goal post of Digital Transformation keeps on shifting with the rapidly evolving expectations of digital customers.

Conclusion –

Digital Transformation needs a combination of Leadership, Cultural Changes, a motivated workforce and Technology excellence to succeed. In this article, we have tried to tell some of our stories about our experiences.

If you have your stories to share or you want to create new stories with us, we are here to listen. Contact us and we can co-create success for you.

Test Automation in the age of microservices – Strategies and Challenges

Microservices have been gaining traction across industries and are poised to see a stronger adoption rate in the years to come. Across sectors, many companies are aiming to achieve better enterprise agility and bring in a system more efficient than the traditional monolithic architecture. With organizations such as Amazon, Apple, Google, and Netflix scaling their microservices, the acceptance and implementation of it has grown and has compelled other players to emulate the model.

As companies look to decouple domain-level problems, API gateways see strong adoption across sectors. An API Gateway is a reverse proxy that exposes microservices as APIs. As the name implies, it acts as a “gatekeeper” between clients and microservices. Typical features of an API Gateway include the ability to authenticate requests, enforce security policies, load balance between backend services and throttle them if necessary.

While it may seem like a perfect answer to do away with monolithic systems, IT solutions need to be more modular and independent. As a result, microservices will need to co-exist with the traditional architectures and interact with the existing processes. Moreover, it will also need to be in sync with compliance imperatives for best results. To simply put, with organizations having numerous other architectural patterns already deployed, doing away with the traditional system completely may lead to a new set of challenges. In order to tame the complexities and manage the speed and flexibility of microservices, the API strategy makes for the best solution.

Test Automation in microservices and its challenges

With microservices becoming a critical part of Enterprise Architects, applications implementing them will need to be tested to ensure that the services are fully functional and are orchestrated as per business requirements.

As per the “Automation Testing Market by Technology, Testing Type, Service, Endpoint Interface and Region – Global Forecast to 2023” report published in 2018, the global automation testing market size is expected to grow from USD 8.52 billion in 2018 to USD 19.27 billion by 2023, at CAGR of 17.7% during the forecast period.

The increasing adoption of mobile devices and technologies, increasing adoption of the DevOps methodology, and transforming testing by digital transformation, are some of the factors driving the automation testing market. Moreover, manual tests are time-consuming and not full-proof. With most teams favoring automated tests in a CI-CD pipeline, the Test Strategy must use an Automation-first approach. However, microservices bring certain unique challenges to the Testing team – we articulate some of them from our real-life experiences:

Skilled resources: The primary challenge for automation testing is the lack of skilled resource. Most organizations struggle to set up QA teams that have the right skills to write automation scripts. The test automation frameworks that enterprises employ require testers with the skills to compose test scripts using various scripting languages and frameworks.

Tracing the problem: Automated tests are tools that are used to identify errors. Being able to trace back the to where the applications business logic failed is a mammoth task. using behavior-driven development could be a possible solution to refer to business-readable language that tells the business which requirement the automated script is testing.

Scaling test environments: QA teams usually don’t keep into consideration, the possibility of scalability issues while introducing test automation. The challenge arises when the need to rapidly make provision for the differing test environments that automated testing requires, scale them up, run the tests, tear them down, and do it all again just as fast if you’re not testing in the cloud. On premises, teams typically have a limited number of environments they can use, which means fewer tests they can deploy at any given time. As a result, testing takes much longer.

Too many UI tests: CSS and XPath locations in the UI change often. If QA teams target attributes like these in automated tests, it can lead to false positives and continued maintenance when the changes weaken or break the tests. Hence, the bottom-up strategy is vital that demands a unit level testing of APIs, which makes the testing more consistent.

Lack of transparency: Test automation can lack visibility when different teams are using different, disconnected automation strategies. For teams that work remotely, using different test automation frameworks, getting insights on the total testing quality can become challenging.

Adapting to the culture shifting: Adopting test automation requires a culture shift, an evolution of behavior and thinking. Often, team members and stakeholders look at throwing tools at a problem, which doesn’t fix the underlying mindset.

Strategies for successful test automation

These were just a list of some challenges that come in the way of a successful test automation of microservices. But to be able to overcome the challenges and to ensure that the results meet expectation, the most recommended is Mike Cohn’s Testing Pyramid, which takes a bottom-up approach for a quantitative analysis of how much automation effort is required at each stage of the testing lifecycle.

Let’s look at some approaches for how to approach automated testing.

Unit Testing: This is an internal testing service and is the largest in number and size. It is also the fastest and cheapest to automate.

Component Testing: Contract testing should treat each service as a black box and all the services must be called independently and their responses must be verified. When assured of the results, the longevity of the accuracy increases, also making way for seamless new additions to the existing systems.

Integration Testing: It is a must to perform verification of all independently tested services. Service calls must be made with integration to external services, including error and success cases. Integration testing ensures that the system is working seamlessly and that the dependencies between the services are as expected.

End-To-End Testing/API Testing: As the name suggests, end-to-end testing verifies that the entire process flows work correctly, including all service and database integration.

Additionally, there are several non-functional tests that requires equal attention. While functional testing helps in ensuring smooth performance of all the major functions, nonfunctional testing helps in assuring the reliability and security of the application.

Performance Testing: This not only evaluates the performance of the software, but it also ensures that the response time aligns with the desired time. Performance testing is carried out as a part of integration testing as well.

Load Testing: Load testing is carried out to check whether the system can sustain the pressure or load of many users accessing the application at a time. The production load is replicated in the test environment to get the accurate results by load testing.

Stress Testing: Stress testing is conducted to push the application beyond its capabilities to observe how it reacts. Contrary to load testing where maximum capacity of load is generated, stress testing is conducted where the load which is generated is more than the application can manage.

Improvement in software architecture has led to fundamental changes in the way applications are designed and tested. Teams working on testing applications need to constantly educate themselves and stay informed on the latest tools and strategies. Here are the most popular test automation tools that teams across organizations are using to get best results.

Hoverfly: Simulate API latency and failures.

Vagrant: Build and maintain portable virtual software development environments.

Pact: Frameworks consumer-driven contracts testing.

Apiary: An API documentation tool.

API Blueprint: Design and prototype APIs.

Swagger: Design and prototype APIs.

While there is a gamut of tools to choose from, there is no single-stop solution for automated testing. Testers must evaluate all the available options to make sure that the tool in consideration meets all the criteria for testing. Microservices are the next big thing in the IT solutions’ market but to be able to adopt the technology and implement the changes is more challenging than it appears to the naked eye. A skilled team equipped with the right tools is critical to ensure that a complex system architecture built on microservices can deliver the functionality, scalability and performance that business needs.