Four key software development shifts to modernise and thrive
By John Jeremiah, Product Marketing Leader and Anthony McMahon, Regional Director, APAC, GitLab
The adoption of new technology has escalated even further during the COVID-19 crisis and shown how transformation can reshape how we work and live, at a speed that few had imagined.
Local businesses adapting to the rapid changes brought about by the crisis need to understand that a key cornerstone to effective transformation lies in understanding the potential of the organisation’s capability to make the most of its technology investments and deliver value faster to customers.
How can technology leaders capitalise the cloud-native, open-compliant, mobile-first, agile-enriched, artificial intelligence (AI)-fuelled, bot-filled world of coding and how do these forces now come together to enable them to be ten times faster to market and remain competitive?
Side by side vs step by step
The hallmark of traditional software projects – rigid phases, stage gates and sign-offs – are no longer relevant. Instead, cross-functional teams of developers, testers, designers and operations work together to develop, validate and deliver innovation as fast as possible.
Modern software development doesn’t wait for extended labour-intensive manual testing to test every aspect of the application. Instead, automated testing enables fast feedback for each commit so that developers immediately know whether or not they’ve introduced a new bug or vulnerability.
GitLab’s 2020 Global DevSecOps Survey revealed that developers are releasing code more quickly, with most reporting two to five times increases. Thanks to DevOps automation improvements, more developers also reported that they were no longer dealing with annoying manual tasks like testing and deployments.
Kill the big bang (go for MVC)
In modern software development, massive releases and big deployments are things of the past. Now, delivery is continuous and incremental. Because the release and deployments are automated, changes are quickly released. By embracing iteration and calling it minimum viable change (MVC), it means developer teams can ship as fast as they can so they can get feedback and learn as quickly as possible.
The days when project managers crafted elaborate multi-month Gantt charts and tracked earned value from the work breakdown structure are gone – they’ve been replaced by Kanban boards*, sprints and backlogs, where velocity and value stream management are the measures of delivery.
Modern development teams are shipping and delivering value as fast as possible or at least as quickly as the business can accept it. Development teams now measure and track the real business value, not ‘earned value’.
In the past, developers would never have accepted the idea of ‘testing in production’. Now testing in production is expected. Teams do ‘A/B testing’, ‘blue/green deployments’, canary releases** and more while feature flags make it easy to turn on or off new features, so we can limit the exposure of possibly incomplete features. We’re now able to get the most valuable feedback ever from the end-users. Modern development teams iterate faster, learn faster and deliver better software.
Less is more
Today we design and architect scalable, reliable and self-healing applications out of microservices; containers and Kubernetes make it possible to reimagine how an app is designed and composed.
While we once invested in data centres where we managed and maintained expensive infrastructure servers, networking, storage and middleware, modern software development has changed how we approach infrastructure.
We can scale rapidly into a cloud or provider where our application can quickly respond to changing demand, configure the infrastructure as code and deploy changes the same way we handle changes to our business logic. Our infrastructure is version-controlled, rigorously tested and deployed through automation, often enabled via GitOps.
Embrace radically changing roles (or forget silos)
The people and their roles in modern software development are also different. Rather than being isolated from the business and expected to implement their requirements and technical specifications, modern developers are partnered with business and customers.
Today software developers wear many hats, from analyst to tester to administrator. GitLab’s survey found that rising rates of DevOps adoption and implementation of new tools has led to sweeping changes in job functions.
As more teams become more accustomed to using DevOps in their work, roles across software development teams are starting to shift as responsibilities begin to overlap. Seventy percent of operations professionals report that developers can provision their own environments, which is a sign of shifting responsibilities brought on by new processes and changing technologies.
Developers are expected to know the market and understand the business domain as they create solutions to real-world problems. Today, developers are crucial to innovation and focus on delivering business value and measuring business results.
Software development is no longer about staying on schedule and coding to the specs – developers are a critical part of businesses today. By harnessing the key shifts in software development as we continue to deal with the complexities of operating in a health and social pandemic, organisations can enable their teams to experiment and innovate so they can adapt, transform and deliver value to their customers faster than ever.
*A Kanban board is a tool for agile project management that helps to maximise efficiency.
**A/B testing refers to testing out two slightly different versions of something to see whether version A or version B does better.
Blue/green deployments refer to having two identical versions of an environment where only one is live at a time.
Canary releases are shared with a small group of the total target audience to make sure that the release works before the wider audience receives it.
The adoption of new technology has escalated even further during the COVID-19 crisis and shown how transformation can reshape how we work and live, at a speed that few had imagined.
| Source: GitLab. McMahon. |
How can technology leaders capitalise the cloud-native, open-compliant, mobile-first, agile-enriched, artificial intelligence (AI)-fuelled, bot-filled world of coding and how do these forces now come together to enable them to be ten times faster to market and remain competitive?
Side by side vs step by step
![]() |
| Source: GitLab. Jeremiah. |
Modern software development doesn’t wait for extended labour-intensive manual testing to test every aspect of the application. Instead, automated testing enables fast feedback for each commit so that developers immediately know whether or not they’ve introduced a new bug or vulnerability.
GitLab’s 2020 Global DevSecOps Survey revealed that developers are releasing code more quickly, with most reporting two to five times increases. Thanks to DevOps automation improvements, more developers also reported that they were no longer dealing with annoying manual tasks like testing and deployments.
Kill the big bang (go for MVC)
In modern software development, massive releases and big deployments are things of the past. Now, delivery is continuous and incremental. Because the release and deployments are automated, changes are quickly released. By embracing iteration and calling it minimum viable change (MVC), it means developer teams can ship as fast as they can so they can get feedback and learn as quickly as possible.
The days when project managers crafted elaborate multi-month Gantt charts and tracked earned value from the work breakdown structure are gone – they’ve been replaced by Kanban boards*, sprints and backlogs, where velocity and value stream management are the measures of delivery.
Modern development teams are shipping and delivering value as fast as possible or at least as quickly as the business can accept it. Development teams now measure and track the real business value, not ‘earned value’.
In the past, developers would never have accepted the idea of ‘testing in production’. Now testing in production is expected. Teams do ‘A/B testing’, ‘blue/green deployments’, canary releases** and more while feature flags make it easy to turn on or off new features, so we can limit the exposure of possibly incomplete features. We’re now able to get the most valuable feedback ever from the end-users. Modern development teams iterate faster, learn faster and deliver better software.
Less is more
Today we design and architect scalable, reliable and self-healing applications out of microservices; containers and Kubernetes make it possible to reimagine how an app is designed and composed.
While we once invested in data centres where we managed and maintained expensive infrastructure servers, networking, storage and middleware, modern software development has changed how we approach infrastructure.
We can scale rapidly into a cloud or provider where our application can quickly respond to changing demand, configure the infrastructure as code and deploy changes the same way we handle changes to our business logic. Our infrastructure is version-controlled, rigorously tested and deployed through automation, often enabled via GitOps.
Embrace radically changing roles (or forget silos)
The people and their roles in modern software development are also different. Rather than being isolated from the business and expected to implement their requirements and technical specifications, modern developers are partnered with business and customers.
Today software developers wear many hats, from analyst to tester to administrator. GitLab’s survey found that rising rates of DevOps adoption and implementation of new tools has led to sweeping changes in job functions.
As more teams become more accustomed to using DevOps in their work, roles across software development teams are starting to shift as responsibilities begin to overlap. Seventy percent of operations professionals report that developers can provision their own environments, which is a sign of shifting responsibilities brought on by new processes and changing technologies.
Developers are expected to know the market and understand the business domain as they create solutions to real-world problems. Today, developers are crucial to innovation and focus on delivering business value and measuring business results.
Software development is no longer about staying on schedule and coding to the specs – developers are a critical part of businesses today. By harnessing the key shifts in software development as we continue to deal with the complexities of operating in a health and social pandemic, organisations can enable their teams to experiment and innovate so they can adapt, transform and deliver value to their customers faster than ever.
*A Kanban board is a tool for agile project management that helps to maximise efficiency.
**A/B testing refers to testing out two slightly different versions of something to see whether version A or version B does better.
Blue/green deployments refer to having two identical versions of an environment where only one is live at a time.
Canary releases are shared with a small group of the total target audience to make sure that the release works before the wider audience receives it.

Comments
Post a Comment