Abstract
The following recaps a custom research study among Java software development managers (a group that has great influence but has been historically under-researched). The study found that the overriding issue, with regards to code quality, frustrating these managers is their ability—or inability—to minimize software failures/bugs in code before release. This is followed by secondary concerns over not tracking quality early enough in a project's development path, the need for clear and well-defined metrics, inefficient use of time reviewing code, and the inability to track individual developer's performance. Managers want a quality measurement system that will institute solid quality metrics, help them track and train new hires, and work with their existing toolsets. The key benefit would be a greater sense of control driven by lower stress levels, more effective coaching of new hires and existing developers, meeting deadlines, and software that meet internal standards and external customer requirements.

Java Software Development Managers - An Important but Underserved Population
Historically, many software companies have done their best to understand the needs and desires of Java developers, but rarely—if ever—have companies looked at the unique needs and frustrations of Java software development managers. Energy sponsored Clear Horizons to conduct a study to better understand the issues that vex these managers on a day to day basis.

Study Methodology
The study was conducted among 216 Java software development managers. In order to qualify, respondents had to currently manage five or more developers who use Java as their coding language, and have significant involvement in the decision making process for the selection and purchase of computer software, hardware, peripherals, and services. Decision makers were defined as those who have final decision authority, make selections but need approval, or make the final recommendations.

Software Failures/Bugs are the Overriding Problem
Java software development managers were asked to rank a list of challenges based on the frequency of their occurrence within their organizations and the frustration level those challenges posed. They identified one issue as their largest, most prominent problem: minimizing software failures and/or bugs in Java code prior to release. This is by far the largest issue with over half of managers having experienced it and with over 40% finding it extremely frustrating (as opposed to frustrating). (see Figure 1)

Preventing these failures/bugs in released code is clearly the primary objective of Java software development managers, and they appear to be struggling to reach that objective. Four major problems impede the Java Development Manager's march toward the ultimate goal of perfect coding in their released products.

Problem # 1: Quality Tracking Starts Too Late, If At All
The first concern is that many projects do not have time allocated to assess code quality, and even when code quality measurements are performed, they often begin too late in the process. Currently, 40% of Java software development managers stated that they have time allotted to checking code quality in less than half of their projects... (see Figure 2)

...and in the projects where they do measure quality, nearly 30% don't begin measuring code quality until the project is more than half-way finished. (see Figure 3)

Problem # 2: The Lack of Clear Metrics
The second major issue is that many projects do not have any established metrics to measure code quality. Managers identified developers who do not follow Java bestquality practices as a key source frustration with 69% of managers who experienced it rating it as either frustrating or extremely frustrating. Related sources of frustration are teams that do not follow high/consistent coding standards (65%) and developers who produce code that is "off-spec" and do not comply with customer requirements (67%).

Problem # 3: Inefficient Code Reviews Waste Time
As the third problem, managers named inefficient code review meetings as a huge source of frustration. Of all the managers surveyed, 40% reported that they waste time in inefficient code review meetings, with 69% of whom finding the meetings either frustrating or extremely frustrating. (see Figure 4)

Problem # 4: The Inability to Manage Individual Developers
Managers identified the inability to measure individual developers as the fourth overriding issue. While related to the frustrations of developers not following Java bestquality practices and not writing their code up to spec, a quarter of managers explicitly cited the inability to manage specific developers as a key frustration (70% frustration). In
addition, almost 20% of managers reported having problems determining who, specifically, on their team is not conforming to the code quality standards (57% frustration).

What Managers Want to Do About Bugs
In an effort to address the aforementioned problems and the over-arching problem of preventing failures/bugs in released code, managers pointed out three specific areas for improvement: tracking new hires/developers to spot problems early on so they can be more thoroughly trained, creating/having metrics by which to measure code quality, and code testing procedures/programs that are integrated with the existing tools to prevent creating "another learning curve." These problems are interrelated as solving one will have a positive impact on each other. (see Figure 5)

Tracking and Training New Hires to Prevent Bugs
Managers reported that a large number of software failures/bugs are the product of new employees / new developers who are either not aware of their mistakes or are not aware of their company's policies and metrics for measuring coding quality. Nearly half stated that they wanted to be able to track the coding of new hires/developers to spot problems
earlier in the process, allowing for more frequent and more thorough training opportunities.

Establishing a Well-Defined Quality Metrics System
Many managers admitted that when developers are sometimes not familiar with or are not living up to the company quality coding standards, it is often because the coding standards of the company are either not as well defined as they should be or are nonexistent. Given that such a small portion of managers are able to conduct code quality testing during all of their projects (less than 28%), a positive step forward for many would be to help establish a well-defined set of quality metrics for coding in Java and possibly a quality measurement system that would help define these metrics and
point out these errors when they occur.

Integrated Quality Metrics That Work with Existing Tools
However, it is very important to note that if there were such a product it would absolutely have to integrate with the company's current developing tools. Almost half of the managers interested in solving these problems stated that any new product would absolutely have to work with the existing coding tools that their developers currently use. The developers that they manage are very familiar and adept at using the systems they currently have and forcing them to learn a new toolset would be a huge time-investment and may possibly even counter-productive.

What Managers Asked For
The solution to these problems is a quality measurement system that helps coach/train their teams—especially new hires—to catch/address issues early in the process. The system must be discriminating enough to measure progress of individuals, as sophisticated managers know that performance/skill levels vary from developer to developer. In addition, as mentioned earlier, any new system must work on top of the current programming toolsets that developers are currently using.

Managers Interested in Solving the Problem are Influential and Senior Respondents that were most interested in solving these problems tended toward larger coding teams, with more than half stating that they manage more than 20 developers and work at larger companies with 1,000 employees or more worldwide. Interested managers also tend to be at the director level or higher within their company and have final decision authority for computer software/hardware/peripheral/service purchases.

Benefits to the Managers
Managers indicated that if they were able to institute a quality measurement system, the over-arching key benefit that they would gain is a greater sense of control over both the developers on the team, as well as the quality of the coding produced and released. Other key benefits of such a product would be lower stress levels (we can all relate to that!) greater odds of success during a project and managing developers, more effective coaching of developers and new hires, meeting deadlines and providing quality simultaneously, and products that meet internal standards and external customer requirements.

Conclusion
Java software development managers have historically been under-researched; however, they have shown that they have unique needs from the developers that they oversee. The overriding issue among these managers is minimizing software failures/bugs in released code. This is followed by secondary concerns over timing, the need for clear and welldefined
metrics, inefficient use of time reviewing code, and the inability to track individual developers. Managers want a quality measurement system that will institute solid quality metrics, help them track and train new hires, and work with their existing toolsets. The key benefit would be a greater sense of control, followed by lower stress
levels, more effective coaching of new hires and existing developers, providing quality while also meeting deadlines, and ensuring products meet both internal standards and external customer requirements.

About Clear Horizons
Clear Horizons is a consultative research firm that specializes in successfully positioning existing products and ensuring the success of new products in the consumer and business-to-business technology markets. Clear Horizons provides quantitative custom and syndicated studies that inform marketing, product development, communications, and
sales management opportunities that drive marketplace advantage.

About Energy
Enerjy Software provides Software Integrity solutions to Java development organizations. Software Integrity means helping you find the problems in your software applications before they become problems in your business. In other words, it's about early detection and correction, and raising the quality of the software development process. Enerjy CQ2 introduces the process of Precision Team Management to deliver a powerful code quality management solution for development managers seeking to reduce software errors, meet project deadlines, and improve the performance of each member of the application development team.

Enerjy Software is a division of the Teamstudio Group. With headquarters in Beverly, Massachusetts, the Teamstudio Group also has offices in the UK, France, and Japan. To learn more about software integrity solutions designed to improve application quality and enhance developer productivity, please visit Enerjy's Web site at:
www.enerjy.com.

About Brad WoodBrad Wood, a senior consultant at Clear Horizons, is a graduate of Princeton University where he studied computer programming. At Clear Horizons, he focuses on developing new product strategies and go-to-market tactics for hardware manufacturers and software development companies. His additional freelance experience in the coding space, as wellas a specialization within Clear Horizons, helps to provide additional insights into the needs of modern programmers and developers.