Psychology and Software Engineering

This marks the launch of my blog series on applied psychology as a means to improving software development. The entries over the next several months will somewhat mirror my software book entitled: Digital Work in an Analog World, Improving Software Engineering through Applied Psychology.

I’m not proposing that this is an untapped panacea, as many varied remedies have been undertaken over the decades with either minimal or short term, results. However, the prime reason psychology may well play a supporting role in software best practices is due to two primary factors. This being that software development is both abstract and complex – a daunting combination and because it’s largely a team based global effort today.

Whenever one attempts to conquer an abstract activity, such as designing and creating professional grade software, many dimensions of human thinking and emotion may come into play. When you combine this challenge with team dynamics and then mix in a diverse combination of personalities between the business and the development groups, you have the potential for capricious and possibly undesirable results.

Non-technical aspects of development are often overlooked or underestimated by technical professionals. As scientific and analytical people, we naturally seek out technical solutions to our problems because this is what comes naturally to us. We’d rather not focus on making our teams more effective or consider habits to improve our planning activities. Instead we look for new and improved technologies, shortcuts and other silver bullets that we know down deep are probably not the long-term answer.

Our track record as an industry in fact begs for some answers. When only a third (approximately) of software projects are deemed successful, according to trusted industry observers, we really must consider every opportunity to raise the bar in software engineering. Improving the soft skills of technical professionals is one means of moving the bar. Another is to better understand how to make optimal decisions. When is best for individuals to decide and when are you better off having the group pull the trigger? These are the types of issues (as well as many more) that are discussed throughout the book and that will be touched upon in this blog series.

Applied psychology may have something to offer us here. So I hope you’ll join me in exploring the nontechnical aspects of software engineering to better understand what software best practices may linger therein.