Coaching Your Team for Better Code Quality Management
Raising the level of accountability for individual developers
By: Java News Desk
Oct. 5, 2006 12:00 PM
Where is the Accountability for the Quality of the Finished Work?
There are many reasons for software failure: poor project management, the growing complexity of software and market changes. But most often, poor code quality is to blame and whoever developed the software-whether a commercial software vendor, an outside technical vendor or a company's IT organization-is liable.
Corporations may take any financial hit, but development managers are in fact directly responsible for poor application quality. Though their jobs depend on delivering software that is up to spec and that works, many development managers have little insight as to the quality of code their teams are producing.
These managers often report such problems as:
The bottom line is that development managers need to know how their team is doing on an individual developer level because they are fiscally responsible for their team's activities and held accountable for what they produce. The manager must be able to provide actionable steps to correct the course of the application project by better coaching his team.
Development managers are often a promotion away from once having once been a developer. They understand how it feels to think in logical constructs, absolute rights or wrongs, one statement at a time.
But the manager's view must be broader than a set of methods, a new feature or a list of bug fixes. They must coach their development team on the importance of meeting business objectives, the importance of software integrity and code quality. Success or failure in these areas will affect everyone's jobs.
In this day of outsourcing and offshoring, it is also imperative that individual developers take the initiative in improving their skill sets, and take responsibility for the quality of their work.
Managing the Developer
How do development managers find out what these people are doing and how they are doing it, without a major, ego-bruising hassle? How can they better understand training needs, reward outstanding performers, apportion a fixed pool for raises, determine who to retain in tough times and break any language barriers?
These questions are especially pertinent for managers who have just taken on a new and unfamiliar development team, and don't have the time to sift through all the code, trying to determine who has done what, trying to gain an insight into abilities and aptitudes.
Developers are likely to resist initiatives that mine data on their work patterns, seeing it as inhibiting their creativity. Performance tracking software, while typical at the project level, has not yet appeared in this context; and is likely to be seen as intrusive-especially the first time a developer is presented with such detailed statistics.
What About Metrics?
A well-run source control or change management system helps manage the software's release cycle. It can reduce the risk of application failure, the cost of delivering new or improved application features and the risk of exceeding schedules and budgets. Most developers like the structure provided by a source control system; and a good system will help improve their performance and morale.
This type of system provides some information that can help development managers better understand developer performance, but is it enough?
These systems can answer the following questions:
Code checker tools help developers adhere to coding standards. They point to lines of code within files and offer details on how to adhere to the standards. Some code checkers document possible security violations and provide links to the code that causes the violations.
Ideally, development managers should be able run code checkers against all the code in their repository at one time, to help them gain a global view so that they can track for improvements.
Correlating file ownership with coding standards violations would allow development managers to determine at a glance who created the greatest (or least) number of violations. Seeing this information on a graph would help development managers understand trends, with the goal of overall quality improvement.
Testing frameworks let them write tests before their code is written. They can explicitly declare the expected results of a specific program execution before they write the code. Then they write the code, test it using the framework and change the code until it meets the expected results. With framework software, developers get immediate feedback from writing, saving and rerunning their own unit tests.
Framework software provides an iterative process that collects tests cumulatively over the lifespan of the software. As the software changes to meet user needs, so do the test cases within the framework. Using a testing framework increases programmer productivity and program stability, while reducing debugging time and stress.
When developers use a testing framework, development managers can determine:
Reader Feedback: Page 1 of 1