Preface

How important is code quality, according to practitioners? How do they cultivate and nurture their code quality habits? What obstacles do they experience, and how should organizations facilitate them? SIG and O’Reilly teamed up to find out.

A Survey of Tools, Trends, and Habits Across Software Organizations

Producing high-quality code is an aim that almost everyone in software development would say they support. Yet, long-term observations in the field reveal that many organizations do not back up that worthy sentiment with the necessary resources (technology, budget, time, training, and management attention) or with the institutional processes required to ensure that the quality of code is routinely maintained.

In 2016, the Software Improvement Group (SIG) collaborated with publisher O’Reilly Media to survey 1,400 software developers on topics related to code quality. The intent of the survey was to uncover trends in overall attitudes, working assumptions, resource distribution, and individual and team behaviors around code quality. In general, the results of the survey reinforced SIG’s findings from prior surveys and years of field work with software teams: code quality is valued in principle yet often measured and managed unevenly—or not at all—in the day-to-day practices of software development organizations.

Through their answers to the survey questions, programmers working in a variety of settings convey their experiences on how code quality is addressed in their organizations. As detailed in this report, survey respondents came from a wide variety of settings, from startups to large enterprises, and including both closed source and open source projects.

This report provides detailed results for answers to each question in the survey, along with observations on key correlations among the answers. At the highest level, the survey produced four major findings. Let’s take a look at each of them in the sections that follow.

Responsibility, but Not Enough Facilitation

About three-quarters of developers believe that accountability for code quality rests with individual developers and their teams. However, there is a potential disparity between supporting the concept of accountability for code quality and actually having access to the tools and techniques needed to enable a coder or team to ensure an appropriate level of quality. Similarly, almost 80 percent of all respondents said that they address code quality “during coding.” Yet more than half of all survey participants use no code quality tools at all.

In other words, even though the developers who participated express a strong commitment to professionalism in terms of code quality, many of them seem to lack the means needed to give a proper foundation to that commitment.

Lack of Resources

Most developers do not use tools for improving software quality. In large part, this is because they lack the budget to acquire them. One part of the problem here was addressed in the previous point: lacking adequate tools, programmers simply will not be able to maintain code quality at the level they would like to. Beyond that, however, lies a deeper issue for organizations, namely that they are not dedicating enough resources—or, in some cases, communicating the availability of those resources—to enable their development teams to deliver high-quality code using a consistent, empirical methodology.

As detailed in “Code Quality Tools”, more than 70 percent of survey respondents reported that they have no budget reserved for code quality tools—not even a few dollars per month. SIG’s hands-on experience with development teams in organizations across a range of sizes and sectors shows clearly that use of the right tools and methodologies for code quality has a marked impact on the performance, stability, security, and maintainability of enterprise software. In general, paying attention to code quality is the best way to make software “future-proof.” Yet, these survey results reveal that most organizations have not embraced this truth, at least as reflected by their budget priorities.

Inadequate or Inaccessible Tools

Many developers cannot rely on typical code quality tools because the tools do not support the relevant technologies and coding languages they use, or else the tools lack certain features that would be of use to them. This might indicate an opportunity for makers of the tools to evolve and improve their offerings to be more relevant for programmers today.

That said, it is worth noting that the technologies most used by survey participants include JavaScript, HTML, CSS, Java, Python, MySQL, and C#, each of which was used by more than 20 percent of respondents. All of these technologies are widely used in software development. Not using code quality tools with these languages might relate less to the features of the tools themselves and more to the lack of budget for them—or simply the lack of awareness of their capabilities among programmers, as addressed in the next point.

Lack of Awareness or Familiarity

Many developers are simply unaware of available tools or are working on teams that have never used them. Institutional inertia might be the main culprit here. Whereas some organizations long ago embraced the use of tools and methodologies that help ensure code quality, many more seem not to understand either the ready availability of tools or the great benefits that come from making code quality an area for rigorous, systematic emphasis.

The following chapters provide detailed assessment of the responses to each survey question. In certain cases, solutions to specific problems will be suggested by referring to other resources provided by SIG.

Acknowledgements

Special thanks to SIG’s CTO, Dr. Joost Visser, and O’Reilly’s technical reviewer, Abraham Marín-Pérez, for their invaluable comments on the manuscript of this report.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset