The bright future of software development
Wednesday, March 28, 2018
Richard Harris |
How previous predictions on the future of software development have proven incorrect due to big industry disruptors.
The now famous 2011 essay from Marc Andreessen titled “Why Software Is Eating The World” has become a bit of a staple when having a conversation about business, and software, and how they work together to solve problems. In a nutshell, Marc points out that software is still in a growth period and infiltrating businesses all across the globe and that it will continue to disrupt and evolve industries.
So in a recent conversation with Shailesh Rao, Chief Operating Officer at BrowserStack, he tells us how software development has evolved and grown since 2011 when Andreessen's essay was published. He said, "in the past decade we saw the consumerization of IT in business. It also witnessed the shift in software consumption from desktops, to the web and to mobile apps today - reflecting a mobile revolution. Software continues to eat the world, having moved to a “mobile only” development model.
We’ve also seen huge growth in the number of people connected to the internet - particularly in the world’s emerging markets. Per a 2017 study, in developed markets like the US and the UK where 80 percent of people have access to the internet, the web is accessed by mobile phone about a third of the time.
This is in contrast to India where 79 percent (no, that’s not a typo!) of web access is by mobile phone (the figure is 72 percent in Indonesia and 57 percent in China by comparison). Add to this the continued growth in social engagement and related technologies and it’s easy to see how software is still eating the world. Only now it’s by phone and all your friends are invited to the party!"
We’ve also seen huge growth in the number of people connected to the internet - particularly in the world’s emerging markets. Per a 2017 study, in developed markets like the US and the UK where 80 percent of people have access to the internet, the web is accessed by mobile phone about a third of the time.
This is in contrast to India where 79 percent (no, that’s not a typo!) of web access is by mobile phone (the figure is 72 percent in Indonesia and 57 percent in China by comparison). Add to this the continued growth in social engagement and related technologies and it’s easy to see how software is still eating the world. Only now it’s by phone and all your friends are invited to the party!"
Shailesh also spoke to the growth of software overall, it's impact on industries, and why quality code really matters.
Rao: The growth of software development today is driven by three key developments:
It is everywhere. Software touches every aspect of our life, from the things we use everyday (mobile phones, TVs, cars) to the infrastructure of society (transportation, health care, utilities, finance, government). It is hard to imagine a device, system, or organization today that performs some meaningful function without depending on software in some way. Indeed, a look at an industry as basic as automobiles finds cars today being built with a hundred million lines of code, ushering in a new era of “automobile OS.”
It is easier to write.
Learning to code is easier than it has ever been. For instance, IDEs have evolved so much and become so prevalent that most engineers are unlikely to remember what coding was like before modern IDEs.
It is easier to use. Even a decade ago, almost all software was installed on premise and that made it a very expensive proposition. But today, most new software services are delivered in the cloud and you can start your trial journey with just one seat (with a few clicks). Today it’s possible to run an entire company for less than the cost of a cup of coffee.
Rao: Software’s impact on industry has been significant. According to 2016 research by Credit Suisse, in 1958 the average age of an S&P 500 company was 61 years. In 2012 that number dropped to 18 years - and it’s even lower now. Making the S&P 500 is a clear indicator of a company’s success, and the time to reach this milestone continues to fall.
The digital disruption brought on by software is a key driver for this. The Airbnbs and Lyfts of the world are revenue generating machines, running much more lean and agile compared to their 20th century counterparts. A key difference is that they have very few physical assets, relying instead on software in the form of web and mobile platforms and apps.
Rao: I remember reading Fred Wilson’s astute piece on software becoming the new oil. This brings a slew of new challenges, that are not limited to the following areas:
Hiring
The software development business moves very fast. A record number of people write a record number of software programs, and this grows each and every day as businesses are all part of a mad dash to create software. In turn, engineering has become among the hardest IT role for organizations to recruit.
Quality
It is critical that the software you write actually works! For example, software cannot break the systems it runs and is used on. Organizations need to prevent a “garbage in garbage out” approach as much as possible when it comes to developing and deploying software. In today’s software-centric world, the bar has been raised in terms of quality.
Testing
A key aspect of ensuring quality software includes testing throughout the development process. The cost of fixing broken software that has already been deployed is high, and can lead to customer abandonment. This is significant as the cost of acquiring a new customer is five to twenty-five times higher than retaining an existing one. Therefore getting software right the first time through a culture of continuous testing is critical to success.
Rao: There has been considerable expansion in the software development lifecycle. It began with the move from waterfall to agile processes, and now includes CI/CD processes which are speeding up the software delivery cycle even more.
What does the holy grail for software development look like? It involves automatic creation of the resources needed to test code the moment that code is written. This is possible when all the systems you need for the software to run are connected. When your code is automatically tested as you write it, it will be ready to deploy as soon as it’s done.
Companies strive to achieve this scenario, and the highest performing organizations are attaining this development dream in some manner or another. They continue to work towards this real time test scenario.
Rao: Two categories come to mind:
The need for flexibility: Organizations need to be nimble enough to attract top engineering talent. Software development can no longer be monolithic; engineers demand a choice in languages, platforms and tools used. This doesn’t equate to a “free for all” for developers to use everything and anything they want, but rather it incorporates enough flexibility to drive empowerment for the individual developer. Companies most attractive to the engineering talent pool are acting to this concept.
The need for coverage: Combine the top ten software markets in the world with the top ten browser OSs and you already have more than 1,000 combinations that your software needs to successfully run on! Mix in the dizzying combination of phones and their fragmented ecosystems,and the process of comprehensive testing against all of these scenarios can be a real nightmare. Engineers and QA professionals would be best served by relying on tools that can help.
Shailesh Rao is the Chief Operating Officer at BrowserStack, where he leads the company's global business operations as well as its North American headquarters in San Francisco. Prior to BrowserStack, Shailesh held multiple leadership roles at industry leaders like Google, SAP and Siebel Systems.
ADM: What is driving the growth of software development?
Rao: The growth of software development today is driven by three key developments:
It is everywhere. Software touches every aspect of our life, from the things we use everyday (mobile phones, TVs, cars) to the infrastructure of society (transportation, health care, utilities, finance, government). It is hard to imagine a device, system, or organization today that performs some meaningful function without depending on software in some way. Indeed, a look at an industry as basic as automobiles finds cars today being built with a hundred million lines of code, ushering in a new era of “automobile OS.”
It is easier to write.
Learning to code is easier than it has ever been. For instance, IDEs have evolved so much and become so prevalent that most engineers are unlikely to remember what coding was like before modern IDEs.
It is easier to use. Even a decade ago, almost all software was installed on premise and that made it a very expensive proposition. But today, most new software services are delivered in the cloud and you can start your trial journey with just one seat (with a few clicks). Today it’s possible to run an entire company for less than the cost of a cup of coffee.
ADM: What overall impact is software having on industry?
Rao: Software’s impact on industry has been significant. According to 2016 research by Credit Suisse, in 1958 the average age of an S&P 500 company was 61 years. In 2012 that number dropped to 18 years - and it’s even lower now. Making the S&P 500 is a clear indicator of a company’s success, and the time to reach this milestone continues to fall.
The digital disruption brought on by software is a key driver for this. The Airbnbs and Lyfts of the world are revenue generating machines, running much more lean and agile compared to their 20th century counterparts. A key difference is that they have very few physical assets, relying instead on software in the form of web and mobile platforms and apps.
Shailesh Rao, COO at BrowserStack
ADM: What do companies need to do in order to keep pace in a software-centric world?
Rao: I remember reading Fred Wilson’s astute piece on software becoming the new oil. This brings a slew of new challenges, that are not limited to the following areas:
Hiring
The software development business moves very fast. A record number of people write a record number of software programs, and this grows each and every day as businesses are all part of a mad dash to create software. In turn, engineering has become among the hardest IT role for organizations to recruit.
Quality
It is critical that the software you write actually works! For example, software cannot break the systems it runs and is used on. Organizations need to prevent a “garbage in garbage out” approach as much as possible when it comes to developing and deploying software. In today’s software-centric world, the bar has been raised in terms of quality.
Testing
A key aspect of ensuring quality software includes testing throughout the development process. The cost of fixing broken software that has already been deployed is high, and can lead to customer abandonment. This is significant as the cost of acquiring a new customer is five to twenty-five times higher than retaining an existing one. Therefore getting software right the first time through a culture of continuous testing is critical to success.
ADM: What are some of the key technology initiatives in place by the highest performing organizations?
Rao: There has been considerable expansion in the software development lifecycle. It began with the move from waterfall to agile processes, and now includes CI/CD processes which are speeding up the software delivery cycle even more.
What does the holy grail for software development look like? It involves automatic creation of the resources needed to test code the moment that code is written. This is possible when all the systems you need for the software to run are connected. When your code is automatically tested as you write it, it will be ready to deploy as soon as it’s done.
Companies strive to achieve this scenario, and the highest performing organizations are attaining this development dream in some manner or another. They continue to work towards this real time test scenario.
ADM: What are the challenges of keeping pace (hint: writing quality code quick enough to keep up with end user demands)?
Rao: Two categories come to mind:
The need for flexibility: Organizations need to be nimble enough to attract top engineering talent. Software development can no longer be monolithic; engineers demand a choice in languages, platforms and tools used. This doesn’t equate to a “free for all” for developers to use everything and anything they want, but rather it incorporates enough flexibility to drive empowerment for the individual developer. Companies most attractive to the engineering talent pool are acting to this concept.
The need for coverage: Combine the top ten software markets in the world with the top ten browser OSs and you already have more than 1,000 combinations that your software needs to successfully run on! Mix in the dizzying combination of phones and their fragmented ecosystems,and the process of comprehensive testing against all of these scenarios can be a real nightmare. Engineers and QA professionals would be best served by relying on tools that can help.
About Shailesh Rao
Shailesh Rao is the Chief Operating Officer at BrowserStack, where he leads the company's global business operations as well as its North American headquarters in San Francisco. Prior to BrowserStack, Shailesh held multiple leadership roles at industry leaders like Google, SAP and Siebel Systems.
Become a subscriber of App Developer Magazine for just $5.99 a month and take advantage of all these perks.
MEMBERS GET ACCESS TO
- - Exclusive content from leaders in the industry
- - Q&A articles from industry leaders
- - Tips and tricks from the most successful developers weekly
- - Monthly issues, including all 90+ back-issues since 2012
- - Event discounts and early-bird signups
- - Gain insight from top achievers in the app store
- - Learn what tools to use, what SDK's to use, and more
Subscribe here