What is the future of software development?
Software is constantly in flux. It creates the momentum that drives technology forward from punch cards to Fortran, compilers and script languages. This fact has never been more apparent than in today's market, where concepts such as software-defined services, commodity hardware and open source chart the future. According to a British Communications survey from 2020, most businesses rely on software-defined services to foster digital transformation.
Spare a thought for independent software vendors (ISVs). They operate on a continually evolving edge that can be daunting to anticipate. But what are the trends they should pay attention to, especially in today's rapid technology market?
"End-users are disrupting the way software is created," says PJ Bishop, Sage's Vice-President: Services for Africa and Middle East. "There are elements such as the cloud, the pandemic and mobility that influence or encourage the disruption. However, the key thing to watch is how individuals adapt to these changes. People are becoming more digitally fluent. That places user-centricity squarely in the middle of software development. It's a shift in your normal analysis of what is needed, mapping a process and building technology around it. It's now about building technology and processes around the human being."
Implications for software development
This shift doesn't only apply to software that engages with users. Even developers creating integration plugins or other backend services need to see their work as part of a larger chain that ultimately makes or breaks the user's experience.
Software development should mull several considerations if it aims to adapt to user-centricity:
- Faster testing and delivery of software changes: Use microservices, agile development and similar methodologies to accelerate development and testing.
- Multidisciplinary teams that include usage experts: Break the old mould of development silos where quality assurance and usage experts are only part of the pipeline, instead involving them from the start.
- Collaboration with other software teams, including third parties: Don't build it all yourself – isolation has become self-defeating and software houses should encourage collaboration with other teams with complementary skills and expertise.
- Evaluate internal resources and skills for opportunities: Designate a role like chief technology officer or chief digital officer to evaluate internal skills and resources and external technologies and potential collaborators.
- Attract new talent and upskill current talent: Embrace the rapid shifts in software by recruiting people with insight on new technologies and methodologies while giving current developers opportunities to learn new skills.
- Leverage platforms to incorporate features such as governance, analytics and security. Platform ecosystems are potent ways to access specialised services through application programming interfaces (APIs), modules and platform communities.
Bishop emphasises the last point as the gateway to all the others. "The so-called monolithic software of enterprises has not disappeared. Those that adapt to the future of software become platforms. That's what we've done at Sage.
"The platform owner manages and develops the core software, but we rely on partners to create complementary services that connect with the platform. To best explain this, it's as though we are the massive supertanker, and the platform partners are the speedy motorboats zipping around us. We provide the stability and ecosystem, and our partners focus on what they do best while staying agile and on point with customers."
The future of software is about flexibility, agility and collaboration. Platforms and their vendors provide the spaces to create those elements, including integrations and developer communities. They provide stability in an always-changing software world, and the focus on user experience offers the true north that guides developers to their destination.