So sayeth the introduction to the blog page of Code Renaissance, an organization that claims to be “about building great teams and great software. By exploring best practices, team interactions, design, testing and related skills Code Renaissance strives to help you create the team and codebase that you've always wanted.”
In their most recent blog, the folks at Code Renaissance tackle what they call “The Devolution of Code.” The premise behind the devolution of code is solid and quite sadly true. They point to the demands placed upon application software developers today and note how these demands have created an environment where teams often bypass optimal code quality in favor of expediency.
Code Renaissance accurately places the blame for code devolution’s squarely on the shoulders of three common issues in modern IT environments:
While it’s quite easy to be on board with Code Renaissance’s assessment of the problem, their solution is a bit simplistic. It is true, as they say in the Devolution blog, that, “You need to focus on code quality as much or more than you focus on defect count.” However, it’s in how they propose companies become more diligent about software quality that they come up a bit short of an effective solution.
Code Renaissance suggests that the answer to improved software quality lies strictly in the quality of the programmers involved; or as they say:
“Each programmer that leaves offers you a chance to make things better. Find good people, passionate people to replace them. The right person can stoke the fires of existing team members and breathe new life into the team. Set them loose and help them break the status quo.”
Granted, top software engineers tend to write high quality code, but even with all the best development talent in the world, the human factor alone is not enough to guarantee the code will be issue free. Manual assessment is just not sufficient for fully analyzing and measuring modern application software and detecting all possible issues before deployment.
Therefore, while improving the quality of the development team is never a bad idea, companies could improve even further on that talent by establishing a set of software quality standards and evaluating the software those talented developers create against those standards through a platform of automated analysis and measurement to assess the application software.
Automated software analysis sees the whole application, going beyond one developer’s view of it. Furthermore, automated measurement of that analysis provides management the means to track, incentivize and ensure that code quality is built into the software. In other words, automated analysis and measurement can make the best talent in the world even better.