
Most software development is a chaotic activity, often characterized by the
phrase "code and fix". The software is written without much of an underlying
plan, and the design of the system is cobbled together from many short term
decisions. This actually works pretty well as the system is small, but as the
system grows it becomes increasingly difficult to add new features to the
system. Furthermore bugs become increasingly prevalent and increasingly
difficult to fix. A typical sign of such a system is a long test phase after
the system is "feature complete". Such a long test phase plays havoc with
schedules as testing and debugging is impossible to schedule.
We've lived with this style of development for a long time, but we've also had
an alternative for a long time: Methodology. Methodologies impose a disciplined
process upon software development with the aim of making software development
more predictable and more efficient. We do this by developing a detailed
process with a strong emphasis on planning inspired by our experiences and
learning's in the past - which is why we tend to refer to them as Contentshoppe
Methodologies.