About 20-years ago, cars just had one processor in them. Now cars have over forty processors and more than 100 million lines of code, five times the amount of code in a Boeing 747. Leading companies like General Motors are reinventing themselves by bringing more software development in-house as a competitive differentiator to address this trend. This involves rethinking the way they build applications for the cars themselves, and the business processes involved in building, distributing, and servicing them.
Ahmed Mahmoud CIO for global manufacturing and supply chain at General Motors said, “Every one of the processors in the car needs software. Your car is giving you the efficiency that you are expecting due to these microcontrollers, and processors in the car that need to be programmed, and you can think of it as a computer with four wheels. People are expecting enhancements on a regular basis just like you are expecting your phone to get updated over the air. In the future you will notice that your cars will be updated over the air, because that is what people expect.”
Virtually every device in the home with electricity running through it now runs software. Mahmoud was surprised when his new water filter required a Wi-Fi connection to order new filters. “You would be hard-pressed to find something that does not have software anymore… Not only in the car industry, but in every other industry, software is going to become a bigger portion of our R&D development. I think fortune 500 companies over the next many years will find they are spending more and more of their money on software development in one way or another.”
Insourcing a key
GM has approached digital transformation in a different manner than other large product companies. Mahmoud said, “The culture has changed in that all of a sudden, we realized that software is an asset. We decided to own software development.” GM has adopted CA Technologies API management and testing to deliver the kinds of incremental improvements this process requires.
The common wisdom in the industry has been to outsource software development to bring costs down. But this also reduces a company’s ability to differentiate and innovate. Over the last five years, GM has gone from outsourcing 90-95% of software development insourcing 90-95% of development. Mahmoud said, “That means we have taken responsibility for all of our development and our support, and our infrastructure, and that makes us very different than the industry trend that has been going on for a decade and a half.”
Building better blocks
One the key trends that has allowed GM to bring more development in-house has been the evolution of rich software development libraries and APIs. A key part of GM’s strategy has been to build a solid foundation for API management rather than constantly reinventing the wheel for every new project. It does not make a lot of sense to reinvent cement, concrete, and foundation, every time they want to build on it.
Many of today’s latest operating systems include pieces of software that go back to the 80s like BSD Unix or the Mach Kernel. Mahmoud said, “The trick is how do you get something robust enough that you don’t have to change it or rewrite it completely, you just enhance it and then when it is solid it is part of your foundation and now you can spend your time building more business functions and more capabilities.”
Developers no longer must write new code for simple things like logging in or accessing a database. This has allowed GM to focus more attention on creating business value and coding higher level business functions rather than building plumbing. Two key components of this have been the use of microservices and nanoservices. Microservices provides bigger building blocks for complex services like tax calculations across different states. Nanoservices provide smaller building blocks for simple services like login/logout.
Addressing the end user is key
In the earlier days of software development Mahmoud observed that the standard library included a few hundred APIs. As a result, his team had to build most of the application from scratch. The communities around Java and .Net have led to these rich frameworks and design patterns that have provided more sophisticated building blocks. The use of CA Technologies Service Virtualization allows them to test these new building blocks earlier in the development, to save valuable time fixing problems later.
In some ways, laying a solid foundation for application development is akin to building the last mile infrastructure in the telecommunications industry. They spend billions of dollars laying wires and fibers for making communications effective. But if they are now able to plug that capability into the home or business, all those investments are useless. As Rahim Bhatia, senior VP for CA API Management noted, “If you think about digital transformation in today’s day and age, it is really about that customer experience at the last mile. How are you enabling that end user to be very effective to be interacting with your products and services?”
In the context of GM’s software development processes, the last mile relates to how they connect new UI and business functionality to the plethora of APIs in their software foundation. CA Service virtualization allows them to simulate this connection, so that developers can address problems earlier in the software development lifecycle. For example, some of these APIs are connected to legacy apps, while others are connected to partner applications.
It can be time consuming and expensive to set up live connections to these APIs. CA Service virtualization allows GM to create a realistic simulation of these APIs that can be used by developers to do expedient testing, without otherwise having to wait for the services behind the live APIs to become available. As a result, GM can innovate their applications faster, while avoiding problems down the road.
For more details on how GM is using APIs and Service Virtualization check out The Computer in the Driveway episode, part of the Last Adopter Podcast.