There is no point in talking about technology or digital products without first considering the critical customer engagement elements first. Design thinking should be incorporated as a key component throughout the product development lifecycle. Experience design is not just a step that you include at the beginning, but something that permeates throughout the full lifecycle. Design assures that you start with the customer experience first and then back into the technology components that are needed to build that experience. The key point is that as brands redefine themselves in the digital context, they need to take a step back and ask fundamental questions about how they will express themselves or their offerings in this new context. The answers might be surprising. This is the role of design as it helps, ask the right questions at the right time to assure you’re building the right thing to begin with.
Most companies we're working with are transitioning from a physical product to digital products that are positioned and sold on a subscription basis. Great examples of those who have succeeded abound, ranging from cloud infrastructure (e.g., Amazon, Azure), to B2B SaaS services (e.g., Sales Force, Workday), to industrial (e.g., GE Predix, IBM Watson). At the time of this writing, there were at least a dozen cloud IoT platforms being offered or under development from leading companies such as Google, Amazon, Cisco, and IBM. If you’re not a technology company, building one of these platforms is a challenging task, to say the least. The systems and architectural considerations for these cloud platforms vary. The landscape is also large and categorized into scope (i.e., public to private to hybrid) and abstraction (i.e., IaaS to PaaS).
In the public space, the "Big Three" (i.e., Amazon, Microsoft, Google) take the top spot. Amazon AWS being a pure-play IaaS is far ahead in the game due to the lead-time they got started early on and now have an exceptional catalogue and services offerings. Microsoft Azure is the biggest PaaS player, with hands into the IaaS as well. Google Compute/App Engine is the provider to watch because they are hands-on and experts on scale.
Private cloud usage has increased significantly although not at the cost of public cloud usage because there is a clear segment that demands security and performance over the theoretically infinite pool of resources on the public cloud. The key contributors to the private space are VMware and OpenStack. Being an open source, OpenStack does bring in some amount of integration and support overheads, but the OpenStack community is matured and responsive.
To utilize the in-house security and performance (along with the infinity) of the public cloud, hybrid clouds have been gaining huge traction. An in-house private cloud that cooperates and is well-integrated with the public cloud is a desirable use case. AWS and Microsoft have already made headway into the hybrid cloud space with the introduction of Direct-Connect and ExpressRoute, respectively. These services enable the PRIVATE connections between the data centers and the in-house infrastructure (bypassing the public internet), thereby offering reliability, performance, and high security.
For business-critical solutions, a multi-cloud and hybrid cloud strategy is absolutely a must from a continuity perspective. There have been bad times for all the providers, and they leave customers fearful. Even well within the availability SLAs of three, four, or even five 9s, what customers need to realize is that downtime is a reality, and Murphy’s Law applies equally everywhere.
This brings in working out deployments across multiple clouds. If not from the entire solution availability perspective, then designing a neat failover mechanism to a feature degraded backup deployment on another cloud are all what the architects need to think through. This brings the cloud portability perspective into the game (i.e. to design the solutions in a cloud-agnostic fashion to avoid maintainability and sustainability issues).
This is an important point, and once you have your tradeoffs and priorities in place, identifying the providers best suited for your kind of solution can be figured out. Moving on, you need to think through the other instruments based on various categories (i.e., Compute, Storage, Network, Cross-Service, Support, SLA, Management, Billing/Metering requirements) and how the cloud providers you have shortlisted map to your long-term roadmap.
In today’s world, there is no topic that covers as vast a range of technologies as the much talked about "Internet of Things." To put it simply, IoT refers to every device in the world that has the ability to send data being connected on a network. The range of technologies involved in IoT is so broad and deep (i.e., the entire spectrum, from the "chip to the cloud") that even the largest companies struggle with managing it. The focus is on:
One of the most significant issues IoT has brought to the forefront is the question of the role of cloud storage and processing. To put this into perspective, think about the vast amount of data generated by a meaningful IoT device (e.g. a self-driving car). The number of sensors and the vast amount of data generated requires real-time processing, and it would be impractical to transmit, store, and process that data in the cloud. (Storage may be feasible, but the actions needed in real-time imply the latency cannot be tolerated.) This has given rise to the concept of Edge computing, where nearly all critical processing must happen right at the device level and results provided in real-time.
Some of the ways businesses will benefit with IoT are:
Figure 1. Article 1 IoT
Source: GlobalLogic
No other area is so ripe for the application of machine learning, data-driven analytics, and artificial intelligence than IoT applications. The possibilities with IoT are endless, especially when one combines the data with the processing power of machine learning and AI. Medical devices monitoring patients can transmit real-time monitoring data, and with the right algorithms, we will be able to predict catastrophic events before they happen and even equip devices with the actuation necessary to act and prevent the event. Self-driving cars are already demonstrating this capability. The next frontier is home automation, with everything in the house doors, lights, kitchen equipment, refrigerator, thermostat, the CCTV cameras and the garden sprinklers becoming part of a vast interconnected, intelligent network, with the intelligence to act or be programmed and controlled by the owner.
While the possibilities are endless, the importance of ensuring security is equally critical. Not only does the data need to be secure to protect privacy (which is the same as all cloud applications), there is an added vulnerability if an intruder should penetrate the network and seize control of the network and devices. This is why the design of these technologies right from the device level connectivity and protocols, to the transmission and processing and storage servers in the cloud must be done with great attention to ensure absolute security and protection against intruders.
Businesses today need to be far more data-driven than in the past. There are two main reasons why this change has taken place:
An example of the former is social media data about an individual customer. User-generated data in the form of Twitter, Facebook, and blog posts often about brands or products carries a wealth of information for businesses that can be turned into a competitive advantage.
Analytics that drive business insights and are actionable have seen a similar transformation. Twenty years ago, the state-of-the-art technology in Analytics was typically a BI system (i.e., an enterprise Data Warehouse with reporting capabilities) that housed data from the enterprise systems such as ERP and/or CRM. These are highly structured databases with well-defined schemas. Coupled with an Online Analytical Processing engine (OLAP), they allowed businesses to conduct multidimensional analysis, including drilling down and slicing and dicing across multiple dimensions of interest.
Today, in the era of Big Data, loT has changed. Data flowing in is often unstructured, such as log files or social media posts. This has given rise to the need for Data Lakes, where ALL data is simply stored in its raw form. It is imperative that businesses adopt the best technologies to leverage the data they can handle. Appropriate data ingestion technologies must be put in place—whether it is "standard ETL (extract, transform, load)" from internal enterprise systems, or "publish-subscribe" high speed, low latency messaging systems such as Apache Kafka. In the Modern Data Architecture, Apache Hadoop plays a key role as a data storage and curation layer.
The appropriate use of technologies to provide the "right set of analytics" is a critical part of best practices, and businesses must ensure they are leveraging these correctly. Depending on the exact requirement, one may use MapReduce for batch processing, or use Pig Latin scripts on Apache Pig, or use Hive (an interactive SQL-like query interface to Hadoop). For fast catalog and search capabilities, ElasticSearch can be leveraged, with Kibana as a visualization tool. It should also be noted that some or all of these technologies may coexist within the enterprise, each serving a different segment of user.
In the coming years, there is no question that the biggest impact is going to come from Artificial Intelligence acting on this data through the rapidly advancing Machine Learning capabilities. Ranging from "basic" classifier algorithms, to more complex (and computation-intensive) convolutional neural networks (or "deep learning"), the technologies are advancing rapidly. Development tools such as R or Google’s TensorFlow allow developers to build systems that will form the foundation of predictive analytics in every facet of the business, often surpassing human capabilities. Applications such as recommendation engines, fraud detection, and even medical diagnosis will increasingly rely on the power of machine learning on data sets.
Just like design, this is not a technology foundation, but a required process element. One of the key ingredients to successful digital product development is employing modern development techniques and processes that will decrease time-to-delivery and produce a better product suitable for the customer journey.
Businesses today have changed fundamentally. They need to factor in a high rate of change in nearly every facet of their business. This in turn demands a high rate of change of products and services demanded by their customers. This translates to higher speed-to-market and increased speed and efficiency.
For companies that are leveraging digital products and/or platforms to provide their products and services, this translates to working in a more Agile mode of development.
There are many ways of looking at Agile and development, but one result of an Agile development methodology is that development proceeds in short sprints (i.e., 2 to 4 weeks each). The idea is to approach the development process in "bite-sized chunks," with a complete deliverable at the end of the sprint that is tested and available for "end user consumption."
The advantages of such a mode of development are so obvious that nearly every business is making an effort today to shift to this mode of development. The advantages include better quality and faster speed-to-market. By allowing end users to have frequent access to developed and tested features, the feedback loop can be closed more effectively, leading to a much lesser chance of cost and schedule overruns, which has been the bane of traditional waterfall methodologies. Early access to features may even facilitate approaches such as A/B testing, leading eventually to a higher degree of adaptability (i.e., adjust quickly to current needs instead).
Continuous Integration (CI) refers to the practice whereby developers perform frequent integrations (often several times each day) of their work (the codebase they worked on) to the "main branch" (the main source codebase repository). Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible.
It is clear that CI places a tremendous strain on development resources if every change has to be tested. Developers must be able to complete building and testing the build with their own "local copy" on their machine. If it builds successfully, they can consider checking in the code in the main repository, but the build must be verified again to confirm it didn’t break. To maximize throughput, best practices require automating the build and further including a set of automated tests as part of the build, to ensure that the velocity of development is maintained. Of course, the aim of CI and self-testing builds is that, at the end, it should lead to a mainline repository that is built and tested successfully. If the build breaks, the team must have the discipline to fix it immediately, so there is a stable build available at all times.
Continuous Deployment (CD) follows the testing and integration into the mainline branch that happens during Continuous Integration, and it refers to the automated workflows that push changes to a staging or production system. This makes sure that a version of the code is accessible at all times. CD is a critical area, as it must address several key issues, such as the Deployment Pipeline (i.e., stage wise building and testing and releasing to intermediate environments), as well as factor in automation that accounts for potential differences between different environments. Modern environments for cloud deployment may need deployment capabilities that take advantage of microservices architecture and containerization using, for example, Docker, and orchestration using Kubernetes. The automated deployment must account for these.
The key pillars listed in this document are not exhaustive. Depending on the project, there are multitudes of other elements that could be included here, such as business process transformation, monetization, legacy technology back-end refactoring the list goes on and on. What this list attempts to offer are some of the major pillars that we at GlobalLogic have seen over and over again.
To be sure, transforming an entire business to innovate and harness the benefits of all new digital products and services is a complex task for those with existing products and processes. Companies that were very successful in the current paradigm are often the ones that struggle the most when the paradigm shifts, as it takes the courage to take risks and change the functional status quo. As such, companies that are newly created, that are born into this world (we call them digital natives), have fewer legacy challenges and are often able to disrupt the incumbents. That being said, this barrier must be overcome by all organizations that have the ambition to thrive and stay relevant in changing times.
1. Gartner Inc., Building a Digital Business Technology Platform, 8 June 2016, G00297286
2. Gartner Inc., Top 10 Strategic Technology Trends for 2017: Digital Technology Platforms, 21 March 2017, G00319582
3. Gartner Inc., 2017 CEO Survey: CIOs Must Scale Up Digital Business, 31 March 2017, G00326068
4. Gartner Inc., Digital Business Service Success Driven by Alignment to Business Outcomes, 23 March 2017, G00323759
Source: GlobalLogic
Contributing Editor
Dr. Sunil K. Singh,
Chief Technology Officer, Engineering GlobalLogic Inc.
Dr. Sunil K. Singh is a technologist with a distinguished career and hands-on experience in conceptualizing, designing, building, and launching innovative technology products and services. As CTO Engineering, Sunil oversees GlobalLogic’s overall delivery excellence charter, including driving technical expertise in delivery and customer engagement around modern technologies. He has held faculty appointments at universities such as Dartmouth and Rensselaer Polytechnic Institute (RPI), and he holds patents in virtual reality and robotic surgical devices.