With the ever-growing abundance of viruses, malware and other threats to our networks, laptops, mobile and other devices, I was interested to read Peter Saddington's blog post for @agilescout that brings a software development angle to Todd Dewett’s post, “Soccer Has Ruined America.”
Although just a casual fan of the game the rest of the world calls "football" (football to me is still the game played by Tom Brady and my beloved New England Patriots), I can't say I completely agree with the headline of the post; nevertheless, at the urging of a colleague who is a soccer mom and blogger, I decided to dive in.
Dewett’s premise revolves around the idea that addressing our current malaise has nothing to do with stimulus spending or reducing the size of government, but with the elimination of youth soccer in America!
He points out that a generation of Americans has grown up with the idea that we deserve a trophy just for showing up. Every kid on the soccer team gets a trophy, whether the team won or lost, whether he/she was a leading scorer or spent the season fetching water; this along with the "no scoring" youth sports leagues are two of my greatest pet peeves about youth sports. In the business setting, Dewett appropriately equates the willy-nilly trophy-giving with how employees today receive good conduct certificates just for arriving at work on time 30 days straight. Should I start expecting rewards for making the coffee in the morning, getting my daughter to the bus stop or making sure the dishes are done each night?
And so it goes with much of today’s software. Developers are rewarded for completing the project, but as for the quality of the code, it’s all too often left to the user to find flaws and notify the developer, who then fixes them...or not. My recent post on Microsoft's monthly Patch Tuesdays serves as the most flagrant example.
I’m with Todd when it comes to how we treat people, but I want to take him one step further. Managers must create a workplace that maximizes the opportunities for success. This includes creating a civil, collegial and supportive work atmosphere. It includes assessing people’s skill sets and creating opportunities to take advantage of strengths, while offering training and other solutions to address weaknesses. But it also includes the ability to recognize when a person isn’t right for a position and if possible re-crafting either that position or another to enable that employee to thrive rather than just jettisoning the individual.
With that atmosphere in place, if a developer doesn’t succeed, to paraphrase Herman Cain, “it’s your fault!”
For software developers, the only “gold stars” should be for flawless code. Happily, today’s new generation of software analysis solutions arms development teams with the ability to analyze how the developer assembled the code, its performance, security and technical sophistication. With this information, teams can take previously qualitative assessments of a developer's capabilities - namely if the code is written according to best practices for that programming language or is it likely to have high/low long-term cost of maintenance - and turn them into a quantitative measurement.
Whether evaluating in-house or outsourced software development, today’s static structural analysis of software replaces qualitative observation with quantitative metrics. IT and development teams can identify specific outcomes and quality standards to application software that they can apply across the board.
In addition to identifying high performance, structural analysis can demonstrate performance weaknesses and the need for skills improvements. Because IT budgets remain tight, managers gain the information they need to focus specific training curricula to address specific deficiencies.
In today’s resource-constrained work environments, many companies can’t afford to give everyone a trophy just for showing up, but that’s a good thing. It forces businesses to employ some measure of structural assessment - such as automated analysis and measurement - so managers can evaluate the quality and volume of code that’s developed, provide rewards and incentives for talented programmers and offer remedial assistance to those who require assistance.
And as the economy improves and budgets loosen, separating the leading scorers from the water carriers will position both internal and outsourced programming teams to compete effectively as new opportunities arise. For those companies that have measured developers' performances through structural analysis, their trophies will be in the form of optimal application software quality, increased innovation and reduced technical debt.