You’ve probably heard Marc Andreessen’s adage that “software is eating the world”, becoming the differentiator for industries that were previously thought to be more manual. Tesla is a great example – they’ve helped transform the automotive industry by essentially creating drivable computers. We wanted to dig deeper into this notion of software leading the way for nearly every industry, and understand the trends driving software development forward.
Software development: the techniques, technologies, and methodologies used in the creation of software products. The process involves writing and maintaining the source code, plus documenting, testing, and bug fixing.
We surveyed more 18,000 customers and software development professionals, and want to share some of what we discovered here.
Top development teams use agile, Git, and continuous delivery
We found that of software organizations across all industries:
These processes have clearly become the norm with software teams. Yet only 49% said they practice all three together. Teams that do, however, ship changes faster and with greater confidence.
Don’t have time to read right now? We’ve turned all these findings into a downloadable report. Get it here.
How? Agile’s iterative approach makes it easier for teams to pivot or change priorities based on customer and market feedback. Interestingly, among our customers, 50% of agile teams reported using a mix of agile and non-agile techniques indicating that teams are even adapting the process to meet their needs. Git’s support for branch-and-merge workflows takes the pain out of collaborating on code. And with a continuous delivery pipeline in place, shipping is a no-drama event, which encourages smaller, more frequent (and therefore less risky) releases.
Development teams are increasingly distributed
Regardless of industry, 72% of our customers said some portion of their team works remotely. What makes remote team collaboration and productivity possible? A few ideas:
As we noted, 78% of respondents said their team had migrated to a DVCS, like Git. Git allows team members to work from any location. As a distributed version control system, each developer gets their own local repository, complete with a full history of commits. Having a full local history means you don’t need a network connection to create commits, inspect previous versions of a file, or perform diffs between commits.
Distributed development also makes for a more reliable development environment. With each developer working in a local repo, their changes – and, more importantly, their missteps – are isolated. Combined with basic development best practices like peer review and testing changes locally before pushing them to the team’s shared repository, Git is a powerful tool. Atlassian continues to support this movement to Git with new features for distributed teams, like smart mirroring.
Staying in sync as a team can be especially challenging when your team isn’t co-located. Collaboration tools like HipChat are essential for distributed teams. But group chat isn’t the only place you need to discuss the work at hand. Most issue trackers let teammates comment on issues so they can keep each other up to date. Same with development tools: the ability to have an in-context discussion about a code change or a broken build is now commonplace.
Automation and visibility
Tools are becoming increasingly integrated, whether from the same vendor or different vendors, to help with automatic sharing and syncing of content. In fact, 82% of our customers reported that their source code management tool was integrated with a build system, issue tracker, or both.
Take, for example, the integrations between JIRA Software and Bitbucket. When a developer creates a pull request in Bitbucket, the corresponding issue in JIRA Software automatically advances to the next stage in the workflow. Anyone on the team can see what state the work is in simply by looking at the issue, and trust that it’s a true reflection of what’s really happening. And when HipChat is added to the mix, the team gets real-time notifications on build status, pull requests, and other issue updates.
Teams are leaner and faster
86% of respondents said the average development team in their company has 10 or fewer members. This is a pretty significant number so we decided to dig deeper into this.
Containers – the hottest software development trend
56% of our customers reported using containers to spin up test, staging, or production environments, compared to 34% of non-customers. With a container, you can define everything needed to run an application or service and use that blueprint (called an “image”) to make new copies whenever you need to scale, or simply share it with others. The ease and speed of using containers not only makes development more efficient, but reduces IT overhead compared to maintaining traditional bare-metal hardware.
The popularity of our Docker integrations for both Bitbucket and Bamboo testify to how hot containers are right now. With Bitbucket, you can see source code stats along side your Docker repo. And for Bamboo, you can spin up more build agents using Docker. Judging by what’s trending on Twitter and the session schedule of every development conference on the planet, containers (and Docker in particular) will be software’s “it” technology for years to come.
Stay ahead of the trends
No matter where your team compares in size or adopted processes, having a great data set in front of you is the first step to staying ahead of the trends. The more knowledge you gather, the more ability your team will have to shift these trends and shape the future of software development.
To get all the software development trends 2016 we discovered, and see how teams of different sizes and industries compare, download our free in-depth report: Software development trends and benchmarks.