Designing and building software is at least as complex and demanding of intellectual labour as the building of ships, large buildings or suspension bridges. If the number of failed software projects is anything to go by, perhaps it’s is even more difficult than these.

In modern history at least, the underlying assumption when performing complex projects like building railways or operating systems has been that you should at least apply forward planning and preferably repeatable processes as well.
However, in recent years two things have changed this assumption in software development. The first is the Agile movement and the second is a general acceptance of imperfection in exchange for novelty or availability.
Continue reading The Decline of Process and the Rise of ‘Good Enough’