Categories
Tools

An Agile Software World

Since the emergence of the first agile software development methods more than 20 years ago, development teams around the world have undergone a significant cultural shift. The traditional waterfall approach to running software projects sequentially has been gradually replaced by iterative project management styles. This has enabled organisations of all sizes to scale successfully by remaining resilient in a business environment full of uncertainties. Agile methodology appears to be transforming companies across sectors, but is it really the dominant trend in the software industry nowadays? And if it is, which particular implementations of agile are the most widely used by developers?

 

To gain more insight into the above questions, we asked 11,700+ developers in our latest Developer Economics survey about the project management methodologies they follow in software development. The data we collected provides clear evidence that agile is indeed the most commonly adopted practice in the software industry.

Agile project management

Agile is an umbrella term used for processes like Scrum and Kanban that emphasise short release cycles, rapid response to changing requirements and continuous improvement through regular customer feedback, as described in the Agile manifesto of 2001. According to our survey data, more than half (58%) of developers say they follow a project management methodology that can be classified as agile.

By comparison, the once ruling waterfall methodology is currently used by only 15% of developers. Waterfall’s biggest advantage, i.e. its sequential approach, is also its greatest limitation: in projects where the goals are not clear from the beginning and requirements change continuously, waterfall fails to adapt and deliver results quickly.

 

SCRUM IS LEADING THE AGILE REVOLUTION

Scrum was conceived in the mid 1990s as a response to the shortcomings of waterfall and is now the most popular project management methodology, followed by 37% of developers. As a framework that puts the core principles of agile into practice, Scrum enables teams to break down large, complex projects into a series of smaller iterations (or sprints) and ship high quality products faster and more frequently.

Kanban is another prominent agile project management framework, although its popularity is significantly lower – nearly half of Scrum’s (20% vs 37%). The two methodologies share some of the same core values but have very different implementations. Most notably, Kanban is lighter on structure as it’s not constrained by fixed-length iterations, but instead it prioritises continuous delivery of work to customers (even multiple times per day) as long as the capacity of the team permits it.

Only 6% of developers blend the concepts of Scrum and Kanban into Scrumban, indicating that agile hybrids are not common. Agile-waterfall hybrids, in contrast, are the second most popular choice for developers (21%). This is most likely a sign that many organisations remain skeptical towards agile development and prefer a slower transition to it by mixing some of the less controversial agile techniques with the traditional waterfall method.

Other well-established frameworks such as Feature-driven development (FDS), Extreme programming (XP) and Lean are used by about 10% of developers, whereas Adaptive software development (ASD) and Dynamic systems development method (DSDM) – both outgrowths of the early Rapid application development method – appeal to more niche audiences. Interestingly 23% of developers don’t use any specific methodology in their projects, although – as one may expect – it’s mostly amateurs who do so (40%) and to a much lesser extent professionals (17%). Another 19% of developers (18% of professionals) do not follow any specific project management process for some of their side projects, which in most cases are hobby endeavours.

Our data reveals that developers tend to follow multiple methodologies across their projects (2.7 on average), with Scrum being the most frequently co-used framework along with other methodologies. This implies that Scrum often acts as a “touch point” for development teams landing on the world of agile or as a starting choice before transitioning to less structured agile processes. For example, 66% of developers using Kanban and 57% using XP also use Scrum, as opposed to only 36% and 13% of Scrum followers also using Kanban and XP, respectively. Among developers following the waterfall model, more than 40% also use either Scrum or an agile-waterfall hybrid (like Scrummerfall) while the adoption of any other framework is below 25%. It seems that Scrum’s simplicity, clearly defined roles and timeboxed nature attract development teams who want a smoother transition from traditional waterfall to more flexible approaches.

Agile_Software_World

You can read the latest full State of the Developer Nation report here, and help shape the trends by taking the 18th Developer Economics survey here

 

Categories
Platforms

True Cloud-native Development Has Yet To Go Mainstream

Cloud-native development and containerisation is redefining how software applications are built and run. The movement has captured an increasing amount of press and adoption is brisk as teams innovate modern architectures to build upon the unique capabilities of the cloud. Designing applications from the ground up to run in the cloud is also delivering more robust and flexible applications. But, while containerising apps has become very popular, many developers are simply migrating old code and processes to containers and are not yet developing true native apps.

 

WHAT IS CLOUD-NATIVE AND WHY IS IT IMPORTANT?

The cloud-native computing foundation (CNCF) defines it as ”using an open source software stack to deploy applications as microservices, packaging each part into its own container, and dynamically orchestrating those containers to optimize resource utilization.”

The first step towards cloud native computing is implementing containers so resources can be shared with other apps. Containers can also be spun up much faster than VM’s and are portable so they will run the same in any environment. In addition, they offer another layer of isolation from the host environment so applications can be built more securely. These benefits have broad appeal and half of backend developers are using either containers or a service that leverages containers under the hood, such as serverless platforms or cloud functions.

While the benefits of containers are significant it is the combination of containers, microservices and orchestration that enables greater efficiency in the use of cloud computing resources. For example, microservices with heavy workloads can scale out without having to scale the entire application. Also, services that are not required for current workloads can be shut down, thus optimising pay-as-you-go business models and reducing costs. Finally, the scalability and portability of containers combined with orchestration leads to distributed systems that offer greater resiliency. If there is a problem on one server, another instance of the microservers can be spun-up to take its place.

 

SoN_16_Cloud1

 

Our survey found that just 43% of developers are using containers plus container orchestration tools and management platforms, leaving 57% managing their own container deployments. Developers who are not leveraging orchestration tools may just be moving existing applications into containers or building simple apps with a few containers that can be managed manually. Cloud native apps have to not only leverage containers but should be designed specifically to capitalise on the efficiencies that the cloud offers. Developers that are using containers but not using orchestration tools, or platforms with built in orchestration, are not really building cloud native apps.

Cloud-native is more than just migrating to the cloud or containerising a monolithic app. Lifting and shifting an existing application and plopping it in a container is not a modern approach. Historically, as new computing platforms emerge, there is a temptation to take the code that already exists and just port it to the new platform. While you may realise some benefits, the true value of the new platform is missed. This is a common mistake developers make as platforms become popular. The growth phase of mobile apps is a case in point. Once everyone wanted apps on their smartphones, developers ported desktop apps to mobile which were not designed to capitalise on the unique benefits or mobility leading to poor experiences.

 

DEVELOPERS HAVE MULTIPLE OPTIONS TO BE TRULY CLOUD NATIVE

New services are emerging that offer various levels of abstraction that makes it easier for developers to take advantage of cloud-native architecture. Containers-as-a-Service (CaaS), serverless solutions and cloud functions are making cloud-native development more accessible. Developers can deploy containers and orchestration engines on their own or leverage frameworks provided by CaaS offerings. They can also use serverless platforms so that they don’t have to touch a server at all but still get the benefit of orchestrated containers and dynamic services. These solutions are becoming quite popular: 47% of backend developers are using these functions or serverless architecture.

With the flexibility of native cloud development and microservices, developers are free to use the most appropriate tools and services to build discrete components of their apps or services. The spectrum of abstraction and strengths of each approach enable developers to optimise their applications and development time by using the best technology for the job. For example, cloud native developers can use serverless for running short, event-driven processes and containers for running longer more robust code. Additional services are coming to market to fill niches in the spectrum of cloud-native offerings presenting even more options for developers. For example, AWS Fargate is filling the gap between CaaS and serverless where developers still have access to the server but don’t have to worry about containers. The results from our survey confirm that many developers are using multiple solutions to optimise resources. In fact, 32% of developers using containers are also using serverless and 40% of true cloud native developers leveraging orchestration tools and platforms are also running serverless.

 

Want more insights plus an extra graph?

Feel free to download our State of the Developer Nation 16th Edition report.

It’s free and full of insights.

Categories
Community

Calling All Developers to Shape the Future of Software Development

The latest Developer Economics survey is now live, ready to measure the pulse of the developer ecosystem, helping the world understand developers and vice versa. We are calling all developers to shape the future of software development.

Here are a few facts about our developer surveys:

    • This is the 17th edition of the semi-annual Developer Economics surveys.
    • It is supported by the leading developer communities and technology vendors around the world: Amazon Alexa, Azure, ARM, Connected London, Intuit, Here, Digital Ocean, Nutanix, DZone, Hacker Nest, Heroku, Intel, Microsoft, Mozilla, Pivotal, VMWare, Salesforce, Samsung, SAP, Sitepoint, and more. However, it is run by the independent analyst firm /Data. (https://www.slashdata.co/)
    • We reach over 40,000+ developers in 167 countries annually.

Who is this for? Who will shape the future of software development?

Software developers of all profiles including professionals, hobbyists, and students who work across all major areas: mobile, web, desktop, cloud, IoT, AR/VR, games, machine learning & data science.

What has changed in the survey?

  • We have redesigned our questionnaire to capture all trends & insights related to the developer ecosystem.
  • Developers can now sign-up for a global, independent, ever-growing community.
  • We have a new Point System. Developers can earn points through several actions and unlock exclusive content and prizes.
  • The survey theme. It’s now easier to walk through the questions with minimum distractions. That said, we try to make the survey taking as fun as possible, so that survey participants can enjoy a few fun facts throughout their experience.
  • We want to hear the true developers’ voice so we reward them with amazing prizes, gadgets, licenses, etc.
  • For each completed response to the survey, /Data will donate USD $0.1 to the Raspberry Pi Foundation to support the developers of tomorrow access tools and learning courses.
  • There is a revamped Referral program available for all survey takers. Sharing is caring!

& What has stayed the same?

  • It features questions that cover developers’ level of coding skills, favourite programming languages, technologies used for work/hobby, go-to spaces for learning and resources, as well as preferred tools for specific areas of development: mobile, web, desktop, cloud, IoT, AR/VR, games, machine learning & data science.
  • We still care about learning and giving back, on top of helping devs
  • Available to developers around the world in English, plus 8 other languages: Chinese Simplified, Chinese Traditional, Spanish, Portuguese, Vietnamese, Russian, Japanese, Korean.

For any additional information regarding the Developer Economics Survey, feel free to contact the Developer Economics team at community@developereconomics.com.

Developer Economics survey is now open, inviting all developers to take the survey and voice their opinions about platforms, apps, languages, APIs, revenues, dev tools, and more.

Are you a developer? Have your say!

Join us today!

Categories
Business

Why Is Mainstream Adoption Hard To Achieve

When you are involved and excited by an emerging technology, it is a common instinct to overestimate its impact and promise. Media enthusiasm builds in intensity and stokes interest, and when a new technology is promoted at the proof-of-concept stage, the publicity encourages developers to investigate it. Early adopters dive in, development proceeds, and success stories add to the anticipation of great things to come.But what about mainstream adoption?

While the intensity of interest may appear strong, it is equally likely that there are many, unreported, abandoned projects. Developers may initially be enthusiastic about a technology but then sometimes find their expectations are not met for a number of reasons, particularly if the hardware promoted is unavailable, consumers are not interested, or the necessary tools are difficult to get to grips with. To avoid disappointment, those developers wishing to be successful in a new field will need to work hand-in-hand with vendors providing the products or platforms. It is only through refinement that an immature technology can become sufficiently compelling to encourage mainstream uptake and continuing media attention rather than be written off as over-hyped.

We gauged interest in certain technologies by asking developers about the areas they are actively working on, learning about or simply interested in. The resulting answers fall into four quadrants when divided around the median values of the responses, indicative of the technologies that have already matured and been widely adopted, those that are triggering interest, and those that are still nascent or have hit a plateau.

 

Mainstream_Adoption_Graph

 

 

MAINSTREAM ADOPTION

DevOps is one of the best-established, mainstream technologies of those areas we asked about. Used across a range of industry sectors, it is a set of tools and practices that allow development and operations teams to collaborate in the development and rollout of their software. DevOps automates infrastructure, testing, and performance management, allowing code to be released into production more regularly and with fewer defects.

DevOps is one of the areas that ranked highest in the survey in terms of interest, learning, and adoption. It is the most popular by some margin for developer adoption (17%) and learning (also 17%), and over half of the developers that expressed interest in the topic are working on DevOps projects.

We also find embedded development, which includes IoT, to have entered the mainstream adoption. While embedded development attracts similar levels of interest to drones and robotics, it shows significantly higher levels of developer adoption. This may well be because the field has had time to establish itself. IoT, although still an emerging and somewhat nebulous area, has reached a point where the early hype has died down and the possibilities are better understood by developers and consumers alike.

Mini apps are a relatively new phenomenon. Running inside a mobile framework, they are isolated within a specific ecosystem, such as the popular WeChat app. They are written using HTML5 and other web technologies. Developers reported a high level of interest, and 10% adoption, placing them in the mainstream quadrant. Unsurprisingly, we found mobile developers to be particularly keen on this technology, with 22% adoption; the second highest technology of interest for mobile developers after robotics. We also found this to be the one area more highly adopted by women developers than by men.

 

WANING INTEREST

Enterprise Resource Planning (ERP) and Customer Relationship Management (CRM) are used to increase the overall profitability of a business. CRM software is used to organise sales, marketing and customer services, while ERP is used to improve the efficiency of internal business processes. Fewer developers are active in this area than in DevOps, although it is the second most adopted technology area. However, the number of developers saying they simply were not interested in this area was the second highest, and the numbers of developers working in the area have dropped significantly since our last survey. ERP/CRM seems to be an area where interest is tailing off.

 

Want more?
The State of Developer Nation 16th Edition is now available to download for free.