Organizations are taking cloud-native approaches to development to re-platform and re-architect their existing applications or accelerate development of new applications. In this Q&A series, we talk to Jeff Kelly, a member of the Pivotal marketing team where he works with system integrators like Perficient to help enterprises accelerate and scale their digital transformations. The focus of this series will his take on the evolution of software development, Pivotal’s vision for the future, and any advice they have for development teams.
What do you consider as of the biggest software development challenges today? Why?
I think the biggest software development challenges today are organization and process change. A talented developer or talented operations pro can learn new technology with enough practice and training, but without transforming with whom and how they work, all the technology in the world won’t help much. Enterprises need to break down the walls between different groups—developers, ops pros, business owners, and others—and start organizing themselves around products that address business opportunities and problems. This can be a real challenge for people that are used to working in just one domain and throwing their work over the wall to the next siloed group in the development process. All of a sudden you have to think about the entire software development life cycle and collaborate with people and roles that you’ve traditionally not worked with.
Change like that is always challenging. But it is possible. At Pivotal, we work with hundreds of enterprises that are proof that it can be done. For example, Raytheon and the U.S. Air Force are working together building some really cutting edge applications on Pivotal Cloud Foundry. They are working in balanced teams, which include developers, platform operators, product managers and even a general or two, all working towards a common goal.
What is the difference between software development now and 5, 10, 20 years ago?
The biggest and most obvious change is the shift from waterfall methodology and BUFD (big upfront design) to agile development and iteration based on constant user feedback. The days of spending weeks or even months gathering complex feature requirements from within the enterprise (as opposed to getting requirements from actual users!) before a single line of code gets written, then months or sometimes years until the first version of the application or software is released are over. The more recent emergence of DevOps is also an important factor. Automation and DevOps practices compliment agile development, helping get new code actually shipped quickly and into the hands of users. Allstate really embraced this approach of marrying agile and DevOps, with some great results.
Choosing a Global Software Development Partner to Accelerate Your Digital Strategy
To be successful and outpace the competition, you need a software development partner that excels in exactly the type of digital projects you are now faced with accelerating, and in the most cost effective and optimized way possible.
Today, as I mentioned earlier, leading enterprise organize developers, designers, PMs and others into small, balanced teams that understand the business problem they are trying to solve, then quickly start developing an MVP to address it. They get the MVP into the hands of users and continue iterating on the software over time based on their real-world feedback. This approach leads to more effective software in a much shorter period of time – Liberty Mutual developed and deployed a new insurance application in just 28 days – than the traditional methods of years past.
From a technology perspective, we’ve evolved from developers waiting months for a dedicated server, to the promise of instantaneous virtual machines. But over the last ten years, the internal operations around provisioning resources to developers have slowed that down. We often hear from enterprises that it was taking 3-4 months for developers to get an environment. With PCF, that becomes a self-service operation completed in minutes.
That allows IT to compete with “shadow IT.” In that same ten years when it’s gotten slower to provision an environment internally, the cloud has come along and given developers access to infrastructure in minutes with a credit card swipe. So they’ve started to go *around* central IT. But when it comes time to run that application in production, everything grinds to a halt because that developer environment in the cloud doesn’t look anything like what IT has built to secure and manage that application. Again, PCF puts the ball back in IT’s court. They can give developers an environment to go fast that replicates a production environment that meets operational controls.
What are some of the trends driving software development and how do you see them evolving in the next few years? (Including cloud, IoT, artificial intelligence, Microservices, Big Data, etc.)
There are so many new technologies emerging and approaches being developed today that it’s hard to pick just a few. And it is going to take some time for things to shake out. But I’ll share three larger trends driving software development today that transcend the implementation details.
One is that enterprises continue to shift their focus higher and higher above the value line, as our James Watters puts it. As an enterprise, there are certain responsibilities that have to happen but don’t differentiate you from the competition and/or are just not within the bounds of your capabilities. These are responsibilities – like building and and maintaining your own development platform – that enterprises are looking to others to take on so they can focus on what they do best, which is solving business challenges and delighting customers. That’s why you see so much interest from companies like Orange and Comcast in platforms like Cloud Foundry, which abstract away a lot of the operational heavy lifting and let developers focus on building great software. I think this trend is only going to accelerate, with new, even higher-level abstractions like serverless functions emerging.
Another is the shift from monolithic to microservices architecture. We talked earlier about agile development and frequently iterating and shipping new code. Microservices make this approach possible. With a monolithic application, one small change to one small part of the application has the potential to negatively impact other parts of the application and, most importantly, negatively impact the user experience (say, for example, by bringing the entire application offline!) Everything is tightly coupled and interdependent. But with an application that is made up of a number of loosely coupled, domain-driven microservices, a change made to one microservice doesn’t impact the others or the overall performance of the application. Every microservice can be deployed, upgraded, scaled, and restarted independent of other services in the application. This allows teams to frequently update live applications without negatively impacting users, or at at minimum limiting the impact to just that one slice of the larger application.
One more trend that is only going to continue growing is hybrid cloud, but with a special emphasis on the developer experience. Enterprises that Pivotal works with consistently tell us they want the flexibility to deploy their software and applications in the best environment suited for the job. In some cases, that’s going to be in your own data center or private cloud. In other cases, it’s going to be one or another of the public cloud providers, each of whom have their own strengths and weaknesses. T-Mobile just talked about the importance of the hybrid cloud approach at SpringOne Platform 2018. The key, though, is that enterprises want this flexibility while also providing software engineers a consistent, transparent development experience no matter where their applications ultimately run. In other words, they don’t want developers having to learn one set of APIs for software that’s going to run on-premises and another set of APIs for software that’s going to run on AWS or Azure or GCP. So I believe we are going to see increasing interest in solutions that provide both flexibility and consistency.
Stay tuned for part two of this Q&A series, which will focus on cloud-native development, open source technology, and Pivotal Cloud Foundry.
Want a sneak peak into what we’ll be discussing in the next post? Check out the guide, Transform Your Application Development with Pivotal Cloud Foundry.