Software development is constantly evolving. It is there, in the name of discipline: development.
Today, the adage “every company is a software company” is truer than ever. As organizations continue their digital transformation efforts to meet customer demand and compete for the brightest talent, IT leaders must stay tuned to trends.
What better way to dig into software development trends than to go straight to the source? We asked our friends at Opensource.com to share the answer to this question:
Software Development: Which Trends Bloom and Which Trends Fade?
Here are their answers.
“Obviously the latest trend is containerization. Kubernetes, Podman, and all other containerization-related technologies are here to stay and evolve. Any software developer must jump on the train and learn these technologies if they want to keep up.
“Containerization not only brings a new way to deploy your application; it is also a new way of thinking and planning. Although this impact is not yet visible on small open source projects, larger projects like Gitlab are embracing containerization and providing an architecture that must be deployed on Kubernetes.
[ Also read Container adoption: 5 expert tips. ]
“Containers are the new way of thinking. Each can have a very simple responsibility, but you can create hundreds of them, each with their own responsibility in completing your project. This also comes with reusing containers and Docker images.
“In a proprietary project I’m working on, we use logstash for almost everything. This small piece of software is heavy on resources but it is 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 we need and making it all available using a web interface. In total we have around 40 containers all running logstash and each of them performs a single task. »
“Don’t get me wrong, I loved Java. It’s the main programming language I learned in college and it served me well for a long time. For a while it was the only programming language on the market that was compatible with each other painlessly.
“But now, with all the new programming languages on the market like Go, Rust, Ruby, and my personal favorite, Python, I feel like Java’s best years are over. In the open source community, I feel that Java has never been the language of choice. But in business, Java was/is the language of choice. It’ll probably take a while to fade, but it’s unavoidable. I won’t miss Java’s verbosity and slovenliness.
Patrik Dufresne, founder of IKUS Software
Fulfillment: low-code development
“Low-code development is growing. Since the start of the pandemic, IT leaders have been accelerating their digital transformation programs. But there are only a limited number of changes that can be made by central IT. The next level of transformation is enabling 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 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 process automation or streamlining through spreadsheets, whether developing budgets, generating trend reports, or generating data. entered into a central computing system, spreadsheets have long been the quintessential low-code technology.
“Since then, we’ve seen other low-code technologies come and go. A memorable example: “Personal databases” like Microsoft Access flourished in the 1990s and early 2000s before organizations centralized these systems into central enterprise-level database-based services.
“As we envision the next trend in low-code development, we need to ensure that systems stay focused on the average business user and don’t require a ton of technical expertise to accomplish real-world tasks. At the same time, IT managers will need to balance user needs with IT security, storage, bandwidth, and other typical core IT concerns. The IT manager who can find this balance will have truly transformed the organization through technology. »
Jim Hall, CEO of Hallmentum
“Typically, organizations that used to view software engineers as cost centers now rightly view their engineers as innovators.
Fading: software engineering seen as a cost center
“Typically, organizations that used to view software engineers as cost centers now rightly view their engineers as innovators. Software engineering and business goals align more seamlessly than ever. Organizational structures, team dynamics, technology stacks, and paths to expertise now align in the same way to support engineers as they improve their craft. Culturally, engineers are given the latitude to engage in trial and error, make mistakes, and ultimately succeed in introducing valuable software innovation.
Florissant: software engineering considered as a center of innovation
“In the same vein, organizations are increasingly keen to support engineers in their desire to acquire new skills. This trend gives rise to the Spotify model, in which engineers can switch roles and autonomously engage with (and learn from) tribes and guilds across their networks and industries.
“Organizations with strong platform engineering cultures allow development resources to rotate teams regularly, without having to worry about replenishing teams focused on deploying or building technology. 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 scale/robustness with site reliability engineering expertise – each allowing developers to focus on feature development and not potential technical debt.
“So as a trend that continues to thrive and which I don’t expect to fade anytime soon: Incremental success builds long-term success. Platforms, tools, and approaches continue to evolve into smaller, more incremental changes. The rise of microservices, for example, represents the evolution of the architecture itself to support incremental improvements. By shortening the feedback loop and empowering developers to gain insight into user and system performance, engineers with ever-evolving skills can ensure that iterative improvements occur continuously.
Ravi Lachhman, Technical Field Manager 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. ]