Software development is eternally evolving. It’s right there in the name of the discipline: development.
Today, the adage “every company is a software company” is truer than ever. As organizations pursue their digital transformation efforts to keep up with customer demand and compete for the brightest talent, IT leaders must stay attuned to the trends.
What better way to dig into software development trends than to go straight to the source? We asked our friends over on Opensource.com to share the answer to this question:
Software development: What trends are flourishing and what trends are fading?
Here are their answers.
Flourishing: Containers
“Clearly, the latest trend is containerization. Kubernetes, Podman, and all the other technologies related to containerization are here to stay and evolve. Any software developer needs to take the train and learn those technologies if they want to keep up.
“Containerization doesn’t only bring a new way to deploy your application; it’s also a new way to think and plan. While that impact is not yet visible on small open source projects, bigger projects like Gitlab are embracing containerization and delivering an architecture that is to be deployed on Kubernetes.
[ Also read Container adoption: 5 expert tips. ]
“Containers are the new way to think. Each may have a very simple responsibility, but you may create hundreds, each with its own responsibility in making your project work. With it also comes reusability of containers and docker images.
“In a proprietary project I’m working on, we are using logstash for almost anything. That little piece of software is heavy on resources but it’s very flexible and allows us to process thousands of events per second in a scalable way. We have logstash to receive syslog, trap, and webhook calls. We have other logstash processing, aggregating, transforming, and enriching the data as we need and making all of it available using a web interface. In total, we have around 40 containers all running logstash and each of them are doing a single task.”
Fading: Java
“Don’t get me wrong, I loved Java. It’s the main programming language I learned at university and it served me well for a long time. For a while, it was the only programming language on the market that was cross-compatible without pain.
“But now, with all the new programming languages on the market like Go, Rust, Ruby, and my favorite, Python, I feel Java’s best years are in the past. In the open source community, I have the feeling that Java was never the language of choice. But in businesses, Java was/is the language of choice. It probably gonna take time to fade away, but it’s inevitable. I won’t miss the verbosity and sloppiness of Java.”
Patrik Dufresne, founder of IKUS Software
Flourishing: Low-code development
“Low-code development is definitely growing. Since the start of the pandemic, IT leaders have been accelerating their digital transformation programs. But there’s only so much change that can be delivered by central IT. The next level of transformation is about enabling the business units to streamline their own workflows and add new functionality on their own. And that’s where low-code development comes in.
[ Also read 3 essentials for a low-code and no-code application development strategy. ]
“The term ‘low-code’ is still somewhat new, but the idea has actually been around for a long time. Spreadsheets were the first low-code environment, starting with LANPAR in 1969 and skyrocketing with VisiCalc in 1979. Since then, every business unit has created some level of automation or process streamlining through spreadsheets, whether it was building budgets, reporting trends, or data entry to a central IT system, spreadsheets have long been the go-to low-code technology.
“Since then, we’ve seen other low-code technologies come and go. One memorable example: ‘Personal databases’ like Microsoft Access thrived in the 1990s and into the early 2000s before organizations centralized those systems to central services built on enterprise-level databases.
“As we look to the next low-code development trend, we need to ensure that the systems remain focused on the average business user and don’t require a ton of technical expertise to complete real-world tasks. At the same time, IT leaders will need to balance user needs with IT security, storage, bandwidth, and other typical central IT concerns. The IT leader who can find that balance will have truly transformed the organization through technology.”
Jim Hall, CEO of Hallmentum
Fading: Software engineering seen as a cost center
“As a trend, organizations that had viewed software engineers as cost centers are now rightfully viewing their engineers as innovators. Software engineering and business goals align more seamlessly than ever before. Organizational structures, team dynamics, technology stacks, and paths toward expertise now similarly align to support engineers as they better their craft. On a cultural level, engineers are granted the latitude necessary to engage in trial and error, make mistakes, and ultimately succeed in introducing valuable software innovation.”
Flourishing: Software engineering seen as an innovation center
“In the same vein, organizations are increasingly keen to support engineers in their desire to learn new skill sets. This trend is giving rise to the Spotify Model, in which engineers can shift roles and autonomously engage with (and learn from) tribes and guilds across their networks and industries.
“Organizations with strong platform engineering cultures allow for development resources to regularly change teams, without the need to stress over replenishing those teams focused on deployment or build technologies. At the platform level, organizations are also now hyper-focused on reducing technical debt, especially around non-functional areas. Examples include security with the DevSecOps movement and scaling/robustness with Site Reliability Engineering expertise – each of which allows developers to focus on feature development and not potential technical debt.
“So, as a trend that continues to flourish and one that I don’t expect to dim anytime soon: incremental success builds long-term success. Platforms, tools, and approaches continue to march towards smaller, more incremental changes. The rise in microservices, for example, represents the evolution of architecture itself to support incremental improvements. By shortening the feedback loop and empowering developers with user and system performance feedback, engineers with ever-evolving skillsets can ensure that iterative refinements occur continuously.”
Ravi Lachhman, Field CTO at Shipa.io
[ Want to learn more about building and deploying Kubernetes Operators? Get the free O’Reilly eBooks: Kubernetes Operators: Automating the Container Orchestration Platform and Kubernetes patterns for designing cloud-native apps. ]