The Software Practitioner’s Digest: November 2011

This tardy issue of The Software Practitioner’s Digest highlights articles from Better Software, IEEE Software, Software Engineering Notes and Jakob Nielsen, as well as a book on applied psychology in software development teams, all of which were published in November 2011.

In this issue:

Technical debt

Two articles explored the subject of technical debt from different perspectives:

In Better Software magazine, Matthew Heusser reported on ten ideas that were brought forward in an Agile Alliance-sponsored workshop on technical debt back in 2008, in which Ron Jeffries, Chris Sterling and Michael Feathers were some of the participants. A free version of the article, entitled 10 Thoughts On Technical Debt, is also available on

Meanwhile, Siemens architect Frank Buschmann recommended a strategic, business-oriented approach to technical debt in To Pay or Not to Pay Technical Debt, published in IEEE Software.

Related reading

  • Technical Debt, an essay by Steve McConnell in which he classifies the different types of debts and suggests how to manage them.
  • The Debt Metaphor (video), explained by Ward Cunningham (the person who coined this term). He also addresses common misuses of the term.

Tom DeMarco: All Late Projects Are the Same

Tom DeMarco argues that all late projects started late and the fault lies outside the software development team. This brief essay, published in IEEE Software, is entitled All Late Projects Are the Same.

Related reading

  • Facts and Fallacies of Software Engineering, a great book by Robert Glass. In the first chapter, Glass argues that one of the two most common causes of runaway projects is poor estimation (Fact 8), and estimation is usually done at the wrong time (Fact 9) and by the wrong people (Fact 10).

Improving Software Engineering Through Applied Psychology (Digital Work in an Analog World)

Digital Work in an Analog World by John R. Fox is a pragmatic book on soft skills aimed at software professionals.

Covering topics that range from confirmation bias and cognitive dissonance to stress and overestimation, including the effects of culture and gender, it starts out with a bit of (approachable) theory and goes on to explain many interesting facts that support subsequent recommendations on how to make your job (and your colleagues’) more effective and enjoyable.

In spite of the lack of prior research specific to our industry, the author did a terrific job here, extrapolating research in similar settings and occasionally filling the gap with his own educated guesses as the last resort.

It’s helped me identify things to improve and things to watch out for, and I’m sure it’d be very useful for other software practitioners too (especially managers). For a more comprehensive review of the book, read How Applied Psychology can help Software Engineers on InfoQ.

Pattern-Based Architecture Reviews

Neil B. Harrison and Paris Avgeriou proposed Pattern-Based Architecture Reviews in IEEE Software. PBAR is a simple and lightweight process which could help identify architectural issues in software products and is intended to accommodate small teams and projects with short iterations in particular. The authors also presented the outcome of the research they’ve done.

In a nutshell, it consists in having an external and expert architect reviewing specific aspects of the architecture with the software development team, in order to identify the architectural patters used and consider their suitability for the problem at hand.

Related reading

  • Pattern-Driven Architectural Partitioning, by the same authors of PBAR. In a private conversation with Harrison and Avgeriou, we discussed the requirement for architect to come from outside the team as it may not be an option for many organizations. In such situations, following a similar process from the start of the design phase could be an attractive compromise and this is essentially what Pattern-Driver Architectural Partitioning is about. PDAP is another lightweight process and it is so intuitive that many architects pretty much follow it implicitly.

Jakob Nielsen: Accuracy vs. Insights in Quantitative Usability

Jakob Nielsen reiterated the importance of doing user testing to get the bigger picture rather putting too much effort into small problems in Accuracy vs. Insights in Quantitative Usability. “Better to accept a wider margin of error in usability metrics than to spend the entire budget learning too few things with extreme precision”, is how he summarized the article.

2011 Salary Survey

The results of the 2011 Better Software/ Salary Survey were published in Better Software, but not all questions were directly related to salaries or benefits.

It was aimed at software practitioners in general and the regional distribution of participants was as follows: 68% from the USA, 8% from Canada, 8% from Europe, 7% from India and 9% from the rest of the world.

Other questions were related to education and job function. Many stats were broken down by the ranking of the role (Staff level, Management level, Director level).

Among other things, I found it interesting that 69% of those polled indicated that they’re satisfied or very satisfied with their job.

Industry Linked Graduate Software Engineering Curriculum

In Software Engineering Notes, Alok Mishra and Deepti Mishra made an appeal to academic institutions offering software development degrees to make their curricula better suited for the industry in Industry Linked Graduate Software Engineering Curriculum.

There’s not much actionable material in this article, other than references to areas of study recommended for software developers.

Related reading