DevOps Archives | Lean Apps GmbH

8 Essential Chatbots You Need to Know

 

Man: I love you Siri.

Siri: Oh, I bet you say that to all your Apple products.

Man (chuckles): Ok tell me what you are wearing?

Siri: Aluminosilicate glass and stainless steel. Nice huh?

Man (chuckles): Do you think I am fat?

Siri: I’d rather not say.

 

Siri is just one of many feisty chatbots that is fooling humans online. Some of these types of chatbots are so smart and funny that you would prefer to interact with them than real humans. And unlike humans, they never get impatient, or become unavailable on national holidays.

But before we go on flirting with the idea of making chatbot friends, let’s find out what these types of chatbots really are. They are computer programs designed to simulate human conversation with users through web-based applications or stand alone apps.

And believe it or not, by 2020 it is estimated that over 85% of customer interactions will be handled without a human. There are many types of chatbots that are already going far beyond performing routine tasks in various fields.

Here is a list of 8 most important use cases of chatbots across different industries:

 

1) Shopping Bot

Each time a walk-in customer has a query, and it goes unattended, the retail store loses business. Thanks to shopping bots designed to be virtual shopping assistants, the purchasing journey for both customers and sales staff has become very easy.

 

Types of Chatbots - shopping bot

 

Now let’s say a customer walks into a store looking for a pair of trousers. He/she wishes to have a certain material, size and style of the trousers. The bot gathers information from various sources and then relays it in the form of pictures of the trousers available, the price range, the discounts and the in-store location. Bam! The customer clicks on his preferred choice and the purchase is done.

Example: Uniqlo IQ is an intelligent shopping chatbot that besides answering the basic shopping queries, also bubbles up product rankings by occasion, personal preferences, and even daily horoscopes. It helps digital window shoppers complete purchases by providing directions to the closest Uniqlo store with products in stock.

 

2) Lead Qualification Bot

Conversations can be the fastest route to revenue. But sales rep cannot be available to open conversations 24/7 with potential leads. That’s where Lead bots come in.

They are like smart sales assistants who target website visitors with personalized messages and then route them to appropriate sales reps.

 

 

Example: At Lean Apps, we have a chatbot that engages with visitors on our site, telling them what sort of services we offer – app development, UX, design sprint etc. This allows the user to choose the option that it is looking for and set up a meeting immediately.

And since we have integrated hubspot in the background, we are able to track all the information filled by the users and have our sales rep contact them personally through email.  

 

3) Pharma Bot

Pharma chatbots are nothing short of medical advisers to patients that cannot immediately reach a doctor. These bots provide information on how to respond to certain health conditions, how to undertake a complex drug procedure or simply how to use a new medical device.

When patients feel too overwhelmed to read the fine-print written on drug packaging, these bots serve as digital assistants by educating the users on the side-effects and dosage of a certain drug.  

 

 

Example: Florence is a health assistant bot that helps users stay on track with their treatment regimens by sending medicine-specific reminders and information. It can also locate physicians and pharmacies, and help users track their health information.

 

4) Productivity Bot

Let the bots do menial tasks while the employees get on with more important things! Almost all smart businesses are using productivity bots these days to automate their frequent tasks.

These bots are not dumb programs that can only respond to the same old clichéd questions such as when is the team meeting? Or what is the office wifi password?

You can customize these bots to practically do anything work-related

 

 

Example: At Lean Apps, we have created a slackbot named Potato that helps us raise impediments, list impediments created by others, delegate an issue, and raise sales and marketing tickets. On an average, we save up to 30 minutes everyday that would otherwise be spent creating tickets on Jira through the web option. And every morning, we can get a quick overview of different projects through release burndown charts that tell us the progress of various sprints.   

 

5) Appointment Bot

Thanks to appointment bots, call-waits have become a thing of the past. Now you no longer need to slog through calls, or wait for the operator to connect you to the right department.

If you need to schedule an appointment, you can simply tell your requirement to the appointment bot, choose from the available slots, and bam! Within seconds you have your scheduled meeting. Just like that from anywhere on the fly.

It’s also a relief for the staff members who can get free from these routine, mechanical tasks and focus on giving a better service to clients.

 

 

Example: Andy is a scheduling assistant chatbot that helps patients set up appointments with the right doctor with few simple steps without requiring any sign-in, password, or download.

Feebi is a restaurant chatbot that helps diners to book a table online instantly without having to wait in queues.

 

6) DevOps Bot:

From creating new user stories in sprint planning to running deployment jobs, and performing analytics, there are bots for the complete life cycle of DevOps.

 

 

Example: At Lean Apps, we use Slack to connect to AWS. It’s called Clive and it allows us to stop and start servers from anywhere, even on a flight, through our phones. Just one simple command.

 

7) Finance Bot

Finance chatbots seem to have taken on more than mundane queries. They help clients manage their money better by suggesting them ways to save a certain amount each month. 

By using predictive analytics and cognitive messaging, these types of chatbots are able to provide updates on customers’ accounts, make payments and even discuss options of getting rid of debt.

 

Example: Aida is a bank customer service bot that is able to handle requests like sharing client’s balances and reviewing statements with them. Aida helps employees open client accounts easily and more quickly, becoming nothing short of a full-time customer support staff member.

 

8) Music bot

There are many types of chatbots for artists and music companies that are already bringing artists closer to their fans. 

Example: Katy Perry released a chatbot to promote her album Witness. And it allowed fans to interact with her, get ticket upgrades and use exclusive filters. Spotify chatbot calls its users by their first names and helps them create a group playlist among friends in Facebook Messenger.

 

katy perry Types of Chatbots

 

Yet the music industry still has a long way to go. The show has just begun!

 

Continuous Testing for dummies

Continuous Testing for Dummies includes implementing end-to-end tests that can evaluate the end-user experience all throughout frontend and backend processes. One of the primary goals of CT is to ensure that the tests are broad enough to spot that whenever there is an application change, it does not adversely impact the functionality of the software. It is about reducing the number of false positives by giving importance to the most flexible and strong test frameworks rather than broken scripts. It is about code review and optimization in the test suite so that there are no redundancies.

The methodology of DevOps and agile ensures that the entire technologies, processes and people will have to undergo transformation while the testing component remains the same. Continuous Testing takes care to change the testing module as well.

Drawbacks of the legacy testing process

  • Most of the tests are done at the later stages due to the inability to have the user interface and the other components earlier
  • Most of the tests are time-consuming and hence regression tests could not be deployed after each build
  • There is no feedback regarding the impact of the changes to the existing user experience
  • There is a considerable rework to be in sync with the accelerated release processes
  • Most of the test environment suffer from instability due to issues in test data, lack of dependencies, false positives and more.

How Continuous Testing makes working so easy?

Using the right set of integration between the automation, collaboration and toolset it is possible to have end to end testing that can be performed more in line with the agile and DevOps methodology. The process of continuous testing can be divided into various modules like development, continuous integration, Quality Analysis and performance of the application. These four domains need to be tested in their own unique ways so that the complete end-to-end testing is achieved.

The process of testing starts with the development of the code which is done by using the tools like Appium and Selenium which we are using at  Lean Apps for testing the functionality of the code.

Optimizing the test includes the process of test data management, test maintenance and test optimization management. Virtualizing the testing process means having access to real world testing process that can be done through early, frequent and ubiquitous testing. The effective continuous testing framework ensures that the elements of the testing strategy comprise the development, operations and quality analysis process for a holistic approach.

What are the advantages of Continuous Testing?

  • Aligning testing with business risk to optimize the test execution
  • Reducing the amount of manual testing and giving speed to automated testing
  • Automating quality check and providing insight for the software release
  • Moving the focus of testing to the API layer if possible
  • Integrating functional testing into the CI/CD to make it part of delivery pipeline

Testing is one of the most important pieces of the downstream software delivery process that needs to be given the right importance. It is all about mitigating the business risk involved with the testing process that makes continuous testing for dummies that much more prominent. If the software testing is not able to ensure that the business risk cannot be mitigated then it becomes an issue because the entire process of continuous integration and continuous delivery becomes a tough task to take to its logical conclusion.

If the automated delivery process cannot identify how changes impact business risk or disrupt the end-user experience, then the increased frequency and speed of Continuous Integration and Continuous Delivery could become more of a liability than an asset. The pace of modern application delivery is very fast and the continuous testing has to keep in sync with that and also with heightened complexity and accelerated rates of change that are demanded in the software.

React Native with Fastlane, Gradle & Sonarqube

React Native is one of the fastest growing framework which is being adopted very fast by a huge number of development teams across the industry. What started as an internal Hackathon project at Facebook in 2013, has now become one of the most popular repositories on GitHub. With ever increasing adoption rate, GitHub stats support the argument with over 1500 contributors committing over 12000 commits in 59 branches and 225 releases, as on 26th October 2017 afternoon, being the 4 most starred repository on GitHub. With its ever increasing popularity brings the need for an efficient continuous delivery React Native pipeline.

At Lean Apps, we had started a couple of projects based on React Native back in April 2017. With the DevOps culture in place, fortunately we did setup CI/CD pipelines for Testing and Demo from Day 1 of Development, and automated the entire process and streamlined development.

 React Native pipeline in our Jenkins CI

We setup the React Native pipeline in our Jenkins CI (unfortunately Fastlane was introduced later, hence it’s missing in the picture above).

I will be outlining the steps to configure Jenkins to setup the React Native pipeline.

Before beginning to setup first you need to add your git credentials in Jenkins. Then enter the following code in your script space.

node {

def gradleHome = tool ‘Gradle341′ def androidHome =’/home/ec2-user/android-sdk-linux’

stage(‘SCM’) {

echo ‘\nStep to checkout code from SCM’ checkout([$class: ‘GitSCM’, branches: [[name: ‘*/sprint’]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: ‘bitbucketLogin’, url: ‘https://bitbucket.org/infinaretailwmsreactnative/infiniaretail-wms-reactnative.git’]]])

}

stage(‘Build’) { sh returnStdout: true, script: ‘export LC_ALL=”en_US.UTF-8″‘

echo ‘\nStep to remove old node modules’ sh returnStdout: true, script: ‘cd ./InfiniaWms && rm -rf ./node_modules’

echo ‘\nStep to install new node modules and dependencies’ sh returnStdout: true, script: ‘cd ./InfiniaWms && npm install’

echo ‘\nStep to run Unit Test Cases’ sh returnStdout: true, script: ‘cd ./InfiniaWms && npm test — -u’

/** //The below two steps are to be executed only when a pipeline is to be run for the first time.

//Don’t delete this part, let it be commented.

echo ‘\nStep to start the android emulator’ sh ‘cd ${ANDROID_HOME} && emulator -avd android-nexus -no-skin -no-window’

echo ‘\nStep to install the application on the emulator’ sh ‘cd ./InfiniaWms && react-native run-android’ **/

echo ‘\nStep to bundle all resources for the app’ sh returnStdout: true, script: ‘cd ./InfiniaWms && react-native bundle –dev false –platform android –entry-file index.android.js –bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle –assets-dest ./android/app/build/intermediates/res/merged/debug’

echo ‘\nStep to run sonar-runner and send analysis reports to Sonarqube’

sh returnStdout: true, script: ‘cd ./InfiniaWms && /opt/sonarqube/sonar-runner-2.4/bin/sonar-runner’

echo ‘\nStep to build app with Gradle’ sh returnStdout: true, script: “cd /var/lib/jenkins/workspace/TestPipeline/InfiniaWms/android && ‘${gradleHome}/bin/gradle’ assembleDebug”

}

stage(‘Archive Artifact’) {

echo ‘\nStep to archive the apk file’ archiveArtifacts ‘InfiniaWms/android/app/build/outputs/apk/app-debug.apk’

}

stage(‘Notify’) {

echo ‘\nStep to send email notification’ def mailRecipients = “yash.shanker@theleanapps.com, shubham.soin@theleanapps.com,divyansh.yadav@theleanapps.com”

def jobName = currentBuild.fullDisplayName

emailext body: ”’${JELLY_SCRIPT, template=”static-analysis-android”}”’, mimeType: ‘text/html’, subject: “[Jenkins] ${jobName}”, to: “${mailRecipients}”, replyTo: “${mailRecipients}”, recipientProviders: [[$class: ‘CulpritsRecipientProvider’]]

} }

For the iOS part, copy the below commands and paste them in the Execute Shell Script section in Jenkins after configuring source code management.

NOTE: Make necessary changes.

export LC_ALL=”en_US.UTF-8″ cd ./InfiniaWms rm -rf ./node_modules file=”./ios/fastlane/IPAs/InfiniaWms.ipa” if [ -f $file ] ; then

rm $file fi yarn cache clean yarn install CUR_SPACE=. cd $CUR_SPACE/node_modules/react-native/scripts/ curl https://raw.githubusercontent.com/facebook/react-native/5c53f89dd86160301feee024bce4ce0c 89e8c187/scripts/ios-configure-glog.sh >ios-configure-glog.sh chmod +x ios-configure-glog.sh cd ../../.. npm test — -u cd ./ios/InfiniaWms cp AppDelegate_no_bundle.m AppDelegate.m cat AppDelegate.m cd ../.. react-native bundle –entry-file index.ios.js –platform ios –dev false –bundle-output ios/main.jsbundle –assets-dest ios cd ./ios/InfiniaWms cp AppDelegate_bundle.m AppDelegate.m cat AppDelegate.m cd .. fastlane beta

cd ..

Above steps will deploy your iOS application on Testflight and  for your Android app it will send the apk file via email.

For any questions contact me on yash.shanker@theleanapps.com or tweet me at @yash.bhs

Let’s reduce your AWS bill

This is a very common questions asked by many companies.

How can we reduce our cloud costs?

Companies who want to reduce EC2 cost on AWS have several options available to them.

Use right AWS configurations

The reassignment of instances to either Amazon’s Spot Instances or Reserved Instances pricing plan rather than On Demand can reduce EC2 cost. This should be done if businesses have development projects that are not time-sensitive, or if businesses have the organisational foresight to plan up to three years ahead.

Switch it off when not required

Alternate ways to reduce AWS costs is to develop scheduling scripts – or asking developers to log into the AWS console each day – to manually switch off AWS instances when not required. The latter is not an ideal solution, as it’s counter-productive to automation, and manual on/off processes are subject to human error.

Remember when your parents told you to always switch off the lights before leaving the room – and how effective it was 😉

Switch it off to reduce aws ec2 cost

 

Schedule Scripts

The final alternative is the implementation of scheduling scripts to reduce EC2 cost.  At LeanApps, we have written these scripts as Lambda Function. So far it has been the perfect solution and does not involve any disadvantage.

Usually, the working hours at any organization are from 10AM to 6PM, when all the development and testing happens. Same is at our organization and we have therefore scheduled our non-production instances to start at 9:30AM and stop at 9:00PM.

The following Lambda Script in Python 2.7, is to start the instances, and it is configured with a CloudWatch event scheduled according to the regular expression

00 4 ? * MON-FRI *

This regex schedules the script to run at 4:00AM GMT on weekdays of all weeks, all months of all year.

import boto3 region = ‘ap-south-1’ instances = [comma separated list of instance ids’]

def lambda_handler(event, context):

ec2 = boto3.client(‘ec2’, region_name=region)

ec2.start_instances(InstanceIds=instances) client = boto3.client(‘sns’) response = client.publish(

TopicArn=’arn:aws:sns:ap-south-1:mySlackNotifications’, Message=’All the EC2 instances that are scheduled by AWS Lambda have been started’, Subject=’LeanApps AWS servers have been started’ )

The following Lambda Script in Python 2.7, is to stop the instances, and it is configured with a CloudWatch event scheduled according to the regular expression

30 15 ? * MON-FRI *

This  regex schedules the script to run at 3:30PM GMT on weekdays of all weeks, all months of all year.

import boto3 region = ‘ap-south-1’ instances = [‘comma separated list of instance ids’]

def lambda_handler(event, context):

ec2 = boto3.client(‘ec2’, region_name=region)

ec2.stop_instances(InstanceIds=instances) client = boto3.client(‘sns’) response = client.publish(

TopicArn=’arn:aws:sns:ap-south-1:mySlackNotifications’, Message=’All the EC2 instances that are scheduled by AWS Lambda have been stopped’, Subject=’LeanApps AWS servers have been stopped’ )

Slack Integration

Further, these functions call the SNS to send notifications on Slack.

Another thing that we have implemented to ease the life of our developers is to allow them to start/stop their instances during the STOP hours via a Slack Chat Bot.

Scrum masters or devs can start/stop instances whenever they need, simply with a Slack chat bot instead of signing into the console and starting and stopping.

Slack integration to reduce AWS EC2 cost

Reduction in costs

By incorporating these things, we have reduced our AWS costs by approximately 30%. This data has been calculated by applying simple mathematics and not by using data from AWS Billing console, because since we have implemented this, we have provisioned a lot of on Demand Instances for our production and development use.

Can we marry a Docker container and a monolith?

If you think you can’t run your legacy monolithic app using Docker, think again. While microservices apps are best-suited for Docker, there’s no reason you can’t benefit from Docker with a monolithic app, too.

It’s a common misconception that Docker only makes sense if the app you want to host is composed of microservices, each of which can be deployed inside a separate container.

In fact, while it’s true that Docker is ideal for hosting distributed, microservices apps, monolithic deployments can benefit from Docker, too.

Monolithic App

Even if your app is a monolith, Docker still gives you the following advantages:

  • Portability – Docker makes it easy to move your app from one host to another by migrating the container image. That portability applies whether your app is monolithic or distributed.
  • Scalability – Docker allows your app to scale up or down easily in response to fluctuating demand by spinning containers up or down.
  • Bare-metal access –  With Docker containers, your app can access bare-metal hardware. That’s a clear advantage over virtualization platforms that require hypervisors.
  • Easy distribution – By packaging your app as a Docker container, you make it easy to distribute through an image repository. Anyone to whom you give access can pull the container image and run it. That beats having to install it manually via an installation process that could vary depending on which environment your users have.
  • Environment consistency –  Docker containers provide a consistent environment that you can use for development, testing, staging and deployment of your app. Environment consistency can help you build a continuous delivery pipeline.

All of the above will help you deploy your app more efficiently and with greater agility even if it runs as a monolith.

Monolithic App

That matters because it means Docker can help you make the most of your legacy apps even if you don’t have time to refactor or rebuild them.

In an ideal world, you’d  have the time and resources to rewrite all of your monolithic apps so that they can be distributed as microservices. But in the real world, you often have to deploy the apps you have, not the apps you wish you had. There’s no reason Docker can’t help you do that, even if your app is a monolith.

Database DevOps – using Liquibase

What is Database DevOps ?
Database DevOps, as we see at the Lean Apps, is continuous integration and continuous delivery of database schema changes, along with the code. Continuous Integration and delivery needs database version control and deployment rollback. But, most of the software development companies are not doing version controlling their database, neither do they have automated database changes. Database being an integral part of any software application, DevOps without databases is incomplete.

Need for Database DevOps
Other than to complete the DevOps process, Database DevOps is the need of the hour for the following reasons :

(a) Supporting multiple developers: In increasing numbers of teams and third-party, modules is a challenge. Database configuration drifts are a constant risk due to multiple contributors to the change process, with the quality becoming increasingly unpredictable. Audit trails in these circumstances are often insufficient for regulatory compliance.

(b) Merging code for deployment means handling dependencies between the different teams, while maintaining enough flexibility to respond to changing deployment plans.

(c) Dealing with developers and production personnel, as well as acting as arbiter between them at times, is very taxing. Each role requires a different mindset.

(d) With Manual database work required during development and deployment, human error is all but inevitable. And a mistake in the database usually results in cross-application errors, accidental overwrites or downtime in the entire system.

These challenges only become more acute with the current demand for ever-faster time-to-market and consistent customer satisfaction. For strategic business reasons, companies sometimes want multiple features under development at the same time.

With all of the development teams making changes to the same database objects, there are ultimately a lot of coupling problems in deployment. This can get even more disruptive, and costly, when a feature has to be rolled back at or after deployment. Add to this the general customer expectation of minimal-to-zero downtime

Liquibase
Liquibase is an open source product for database version control. It is an open source database-independent library for tracking, managing and applying database schema changes. It was started in 2006 to allow easier tracking of database changes, especially in an agile software development environment.

All changes to the database are stored in text files (XML, YAML, JSON or SQL) and identified by a combination of an “id” and “author” tag as well as the name of the file itself. A list of all applied changes is stored in each database which is consulted on all database updates to determine what new changes need to be applied. As a result, there is no database version number but this approach allows it to work in environments with multiple developers and code branches.

Liquibase supports all major relational database management systems and converts the changes written by us into native DB’s syntax and executes them. Liquibase automatically creates DatabaseChangeLog Table and DatabaseChangeLogLock Table when you first execute a changeLog File, which have the information regarding database version control.

Configuring Liquibase

(a) For new projects: For new projects, the developers only need to create the database and start writing changesets and evaluate them, either through their terminal, or through their CI/CD pipeline.

(b) For ongoing projects: For ongoing projects, there is an additional step required before the developers begin to write changesets. It is to import existing schema changes from the database into a changelog file. Liquibase facilitates this through the generateChangeLog command. In the terminal, enter the following command after downloading the liquibase jar file and the database connector jar file, and filling the appropriate placeholders.

java -jar liquibase.jar –driver=com.mysql.jdbc.Driver
–classpath=mysqlconnector/mysql-connector-java-5.0.8/mysql-connector
-java-5.0.8-bin.jar –changeLogFile=changelogfile.xml
–url=”jdbc:mysql://DATABASE_URL:3306/DATABASE_NAME”
–username=DATABSE_USERNAME –password=DATABASE_PASSWORD
generateChangeLog

When you run this command, it creates a changelogfile.xml file in the current directory and imports all the existing database schema into it in the form of changesets. After this command, you need to synchronise those changesets you have imported. For that, you run the following command.

java -jar liquibase.jar –driver=com.mysql.jdbc.Driver
–classpath=mysqlconnector/mysql-connector-java-5.0.8/mysql-connector
-java-5.0.8-bin.jar –changeLogFile=changelogfile.xml
–url=”jdbc:mysql://DATABASE_URL:3306/DATABASE_NAME”
–username=DATABSE_USERNAME –password=DATABASE_PASSWORD
changeLogSync

Writing Changesets
These are atomic changes that would be applied to the database. Each changeset is uniquely identified by id, author and package of the file where changeset is defined. You may want to do as little as one change in a changeset or multiple changes. Each changeset is run as a single transaction by Liquibase.

An example of changeset may look like

<changeSet id=”01″ author=”yash”>
<createTable tableName=”books”
                   remarks=”A table to contain all books”>
                  <column name=”id” type=”int”>
                             <constraints nullable=”false” unique=”true”
                             primaryKey=”true”/>
                 </column>
                <column name=”name” type=”varchar(255)”>
                            <constraints nullable=”false”
                            unique=”true”/>
                </column>
               <column name=”author” type=”int”>
                           <constraints nullable=”false”/>
              </column>
</createTable>
</changeSet>

Evaluating Changesets through terminal in Linux

To evaluate changesets means to execute the database changes. To do that, we just need to run the following command in the terminal:

java -jar liquibase.jar –driver=com.mysql.jdbc.Driver
–classpath=mysqlconnector/mysql-connector-java-5.0.8/mysql-connector
-java-5.0.8-bin.jar –changeLogFile=changelogfile.xml
–url=”jdbc:mysql://DATABASE_URL:3306/DATABASE_NAME”
–username=DATABSE_USERNAME –password=DATABASE_PASSWORD update

Evaluating Changesets in Jenkins as a part of CI/CD Pipeline
To execute Liquibase Changesets as a part of the CI/CD Pipeline in Jenkins, follow these steps :
1. Install the Liquibase Plugin through Jenkins Plugin Manager.
2. After the Build Step where the application is build, Add another Build Step and from the options choose “Evaluate liquibase changesets” and fill the input fields with appropriate details.

Setup Liquibase for database version control

Digital Transformation Framework

Here’s an infographic that breaks down the journey of digital transformation into six essential building blocks:

Download the PDF version here

Digital Transformation Framework infographic

As you can see in the infographic, we start by answering the most fundamental question:

What is digital transformation?

It is a journey of adopting innovative technology and methods. Whether you are a startup, a mid-size enterprise or a huge corporate, digital transformation is essential to reshaping your organization.

It is the most structured and effective way to redefine your existing business models and experiment with new ones. And it is only through this journey that you can gradually or simultaneously transform your operations, competencies, employees, and leadership.

Digital Leadership

The top segment of the infographic touches on Digital Leadership.

Digital transformation framework starts at the top of a company. It starts with a focused vision that is often created and led by senior management. And then it is carried out by the mid and lower-level employees.

There are plenty of examples where executives have digitally transformed parts of their businesses. But they are always confined to the boundaries of their own units or departments. Unable to break through silos that so rampantly exist in companies.

The top management has to be in the driving seat for a company-wide digital transformation.

The questions asked in this segment will help you reflect on the state of your company’s leadership.

The transition from leadership to digital leadership can be made if the top management is willing to

  • Become digitally fluent
  • Develop new digital capabilities
  • Experiment and take risks
  • Understand how technology is transforming society, and translate into business impact
  • Promote collaborative environments
  • Use the information, not just the technology

But as a first step, the senior management must agree that digital transformation is necessary and that they need to transform as leaders too.

Digital Transformation Framework

In the next section, you see the six basic building blocks that make digital transformation possible: Strategy, Process & Innovation, Culture, Technology, Customer Engagement, and Data Analytics. Often digital transformation framework is only seen as part of technology and IT. That’s a myth.

Digital Transformation Framework building blocks

Digital Transformation is about adapting to change in every department of a company, starting from its top-most employees to the most low-level ones.

Digital Strategy Framework

The next section of the infographic focuses on Digital Strategy Framework.

With the help of the given digital transformation framework in the poster, you can create a data-driven iterative strategy for your company.

You can start out by finding which quadrant your company falls into. Here’s a brief overview of the four quadrants:

Advocacy: You grow your business organically and every customer acquisition is done face-to-face. You are trying to get the word out through your own content/blog.

Attention: A large part of your business comes through social media channels and running ads. You seek attention by pushing ads.

Authority: You have created something so innovative/disruptive that it has gone viral. The media is talking about you.

Prime: You grow your business using all the methods available in the market. You are the market leader in your industry and region.

Once you have identified your quadrant at a macro-level, you want to define your path towards where you want to go. The section on the left helps you do so, in addition to diagnosing your company at a micro-level:

Yourself: What is your value proposition? What are your goals?

Market: How much competition do you have? How is your competition doing in the market?

Customer: Who are your existing customers? What customers do you want to target?

Resources: What kind of resources do you have and what more do you require to achieve your goals?

All your answers must be supported with real data evidence. This framework will allow you to create a strategy that will be iterative and will change as you find more data. Your decisions and journey will be data-driven.

After building a strategy, the senior management must decide whether as a company they want to create new business models, re-invent existing business models or do both.

For most companies, it can be challenging to create a new business model with their existing resources and ways of working. We have interviewed over a dozen C-level executives of Fortune 500 companies that complained about transforming their businesses too quickly. They say it seems too overwhelming.

You cannot expect a huge corporation to remodel itself as a startup overnight. It’s too big a risk for them. They cannot put years of their investments and revenue channels online just to follow a new trend or an idea that may or may not be disruptive.

There is too much change happening in too little time. Every day a new tech trend is emerging. And for huge corporations, it can be difficult to cope up with so much disruption without throwing away their legacy of work.

Create new business models

In the next section of the infographic, we show how an established company can create a new business model by bringing about small, innovative changes to their existing way of working.

The company must create a new department that can run like a separate entity outside of the company’s core business. And to run this department, the company must hire an independent team with an innovative mindset or outsource their innovation completely. It should follow the philosophy of Lean Innovation: Don’t let perfection get in the way of your progress.

This department can function as a startup. It can follow the lean startup principle of testing and validating various ideas. It can scale up those ideas that are validated successfully with data as evidence.

Re-invent existing business models

On the left side of this digital transformation framework, you can see how a company can re-invent its existing business model by bringing about innovation in processes, procedures, costs and product management.

Digital Transformation Framework infographic

In a traditional IT setup, it takes two to three months to get business requirements, another six months or so in the development phase and another two to three months in testing and deployment.

The modern agile setup brings all of these elements together in one cross-functional team, thus making the entire process very seamless. The waiting period between different teams gets reduced, communication becomes more effective and there is more efficiency in the system.

Under the Lean UX, the team directly talks to the customer to get requirements. These requirements are promptly turned into a prototype that is validated by the customer. The agile methodology enables small cycles of development thus ensuring continuous customer feedback. DevOps bring about automation in testing, deployment, and integration.

Technology

We kept Technology (IT Digital Transformation) as a horizontal bar at the bottom of the infographic because it is just an enabler of Digital Transformation. As a company, you don’t have to adopt every new technology in the market but only those that are relevant to your business models – both new and existing.

Data Analytics

Data analytics is depicted as a vertical bar in the infographic because it is necessary that data be plugged in every aspect of your business. Data is one of the most important assets of your company. Your customers, employees, and machines create tons of data every day. And you can leverage it to generate important insights into every touch point of your organization. You must replace all your gut-feel or intuitive decisions by data-driven decisions.

How to achieve 10x speed in your company?

In most companies, business and IT teams work in silos. They often perceive each other as inefficient working units that have poor grasp over their mutual functions. What could ideally take a few weeks to achieve generally takes months in a set-up where there is no IT-business partnership.

The first step towards building technology leadership capabilities in a company is to foster a strong relationship between IT and business leaders. The strength of this relationship determines how fast you can drive change in your company’s digital health.

Both business and IT teams need to work together to bring innovation culture in your company’s processes. If the relationship between the two teams is robust, then you can move much faster in launching new competencies and updating older platforms.

Innovation culture

Emulate the model of Digital Masters

One thing common to the journey of Digital Masters is that their IT and business leaders cultivate deep respect and trust for each other. They clearly define their roles to drive digital transformation together.

And once their relationship is rock solid, they are able to align their respective knowledge and skills into one single unit. This allows them to have a shared understanding of their customer needs, products, organizational skills, processes and their own competency.

Break the culture of silos

What usually happens in companies is that IT and business teams work in silos, often communicating in their own jargons. The decision-making process is awfully slow. Getting project approvals and execution can take months.

It is therefore not uncommon to see offshoring of IT projects, especially the ones that require short delivery cycles. This creates further hostility in the IT team towards business leaders, leading to a deadlock kind of situation for innovation culture to happen.

This must be resolved at any cost because technology is a key enabler of many a transformations in business.

Innovation culture

Create a new lifeline in your IT unit

Creating a solid IT-business relationship might take years, if not months. Most companies cannot wait that long to start their digital transformation. So they resort to usual shortcuts: building digital skills in another department rather working directly into IT.

Such shortcuts can cost the company a lot of money and deteriorate their existing digital platforms by adding more complexities. Security issues can be an additional risk factor.

A more sophisticated approach would be to create a new lifeline within your IT unit. This lifeline will ensure that one part of the IT unit continues to function in the traditional way and the other part meets the more advanced digital needs of the business.

Innovation culture

Start at an informal level

In the traditional setup, IT projects have well-structured project plans with monthly milestones. But when it comes to digital activities such as the ones that touch on customer engagements, the traditional setup fails abysmally. For such projects require real time testing, experimenting and learning. And based on these interactions, features are either added or dropped.

With the help of a new lifeline, the digital part of IT can modify processes to suit the urgent needs of a project without compromising the existing projects running under the traditional setup. This could also be a great start to developing business and IT partnership on a more informal level.

But building such a relationship requires the right kind of leadership on both sides. Business leaders need to be well-versed with technology. They need to grow comfortable about being challenged by their IT colleagues. Similarly IT leaders need to broaden their perspective beyond technology to incorporate the needs of business performance.

Innovation culture

Do a thorough needs analysis

The team leaders need to be effective communicators so they can have more transparency and share a common vision. It is essential that both IT and business have a shared perspective on the value of speed. Some digital efforts might demand more speed and urgency than others.

Executing big implementations in an experimental or do-and-learn style can turn out to be very expensive for a company, adding security risks and a lot of rework.
But the same implementations could be fast and agile if the company has a robust digital platform.

The idea is to do a proper needs analysis: assess what sort of demands a particular project puts on your team and resources; whether your existing capabilities can support it; what sort of speed and delivery cycles are required to fulfill the project.

And for such a judgment, you require the right kind of IT to team up with your business leaders in order to excel.

Use DevOps for speed and accuracy

In this age of digital speed, few businesses can afford to wait for software release cycles at the end of the month for any of their applications. Companies are using DevOps to make better speed possible.

What DevOps does is that it demolishes barriers between development, operations and quality-check teams, thus allowing them to work together cohesively in a more agile environment. This leads to a) improved speed of execution; b) consistent way of application development by standardizing processes.

DevOps is primarily driven by automated tools used to perform tasks generally done manually. For instance testing, configuration control and deployment. When done manually, such tasks can be slow and error prone.

DevOps also requires companies to cultivate a innovation culture in which different IT groups are flexible in their ways of working and are willing to accept/adapt to the changes that make the processes more effective.

At Lean Apps, the use of DevOps has helped us release software applications/features more quickly and with fewer errors. We are able to monitor our performance more closely and resolve issues more effectively than before.

Innovation culture

A few key takeaways:

  • Do not let IT be perceived as an inefficient cost unit in your company
  • Bring about transparency in all your micro and macro processes such that every unit’s performance, roles and value are clearly measured and defined
  • Train your IT team to think beyond technical skills. Get them out of the silo-mode. Help them understand the vision of the company and how they are working towards it
  • Show them how they add value to a particular project and help them assess the gaps that exist in bringing about quality delivery
  • Change the way IT and business leaders make investment decisions and engage them in the assessment process of what returns each project brings to the company
  • Encourage IT and business teams to work together to drive innovation culture and speed in their processes

Graphics by Nishant Jain