Category Archives: Software


Test Early and Often

Developing software requires a mix of analytical and creative approaches, involving different types of people who have different blends of thinking. But how can one achieve software quality in the competitive IT marketplace? I argue here that the maxim “Test early and often” is one of the most useful tools for achieving software quality. Continue reading

If we want to advance the art and science of software development, we should direct our attention to the insect world of stigmergy.

Why Can’t Programmers Be More Like Ants? Or a Lesson in Stigmergy

In the good old days before the Internet vanquished time and distance, software developer teams were autocratic organizations Continue reading

Fractal Snowflake

The Fractal Software Hypothesis

Since the pioneering paper by Belady and Lehman in 1976 [1], software engineers have suspected that software development, and post-development called “evolution” is a complex process ending with a complex system—the software product. These early pioneers may have been the first to analyze program defects and note their statistical behavior. The idea that a software product is an evolving system with measurable statistical properties (like molecules in a gas or heat transfer in solids) has recently gained renewed interest with the introduction of agile methods, and the application of big data analytics to the software development process itself [2]. Continue reading