There are literally dozens of Software Development Methodologies for a would-be programmer to select from, with an equally mind-numbing number of papers, blog posts, rants and raves to confuse the best intentioned developer into not knowing which one will work for their application, because according to all supporting data: they are all the best. Or maybe they are all the worst; it really depends on which side of the fence you are looking out from.
Agile Development seems to be the Methodology in current favor among developers and programmers these days, but that doesn’t invalidate the rest of them; so there’s no need to penalize everyone else for being first. One you most likely haven’t heard of is the Tossed Gruel Methodology of software development.
Tossed Gruel development is a very simplistic approach to designing, developing and maintaining applications. Defined by reactions to the overly complicated practices plaguing software development today, in which far too much detail is paid to the general minutia of development. At its core is an instinctual desire to free the developer’s time and mind from all of the clutter of Project Management and focus purely on writing line after line of code. Think of it as being identical to the Waterfall Model, simplified by removing all of the heavyweight components that interfere with the developer’s desire to simply; create. Requirements, design and testing; all find their rightful place in the trash heap as wasteful steps to be stripped from the core principles, leaving the beautifully simple paradigm of Tossed Gruel Development.
One could think of it as a monkey throwing (or tossing) Oatmeal (Gruel) at a smooth surface, creating layer upon layer until something unified presents itself. Naturally, some of the globs will fall away and maybe expand and spread out into a unique branch from the core – this is expected. The chunks that do not stick are unneeded and not necessary so they are naturally and diplomatically discarded, While the branches, and the core are creations of the uninhibited flow of evolution, creating the core functionality and feature set of the application.
Principles – The Gruel Manifesto
This is where the methodology really begins to take shape. The Gruel manifesto is really a singularly concise truncation of well thought out paradigms lumped into a single, linear ideal which, once fully realized in a any given project, begins to shape, form and even control the development cycle in ways even the most seasoned developer will fail to predict and in some cases fully comprehend.
The core principles are:
- Client buy-in by rapid, self evolving development
- A single delivery point – you’ll get it when it’s done
- Progress is measured by the sheer volume of code being churned out
- All changes are met with the same response *** See YAGNI
- Black Box coding is the best practice – If no one sees your code, they can’t give you their opinion can they?
- Build, deploy, test
- Users generally don’t know what they want – so make sure to tell them ahead of time
This process is gaining in popularity, but I haven’t been able to readily determine how far into the software development realm it has permeated since it is a stealthy process by design. It’ simple, easy to understand, very efficient at achieving a goal, and doesn’t cost anything at all to instantiate into an existing development process. In fact, using the Tossed Gruel Methodology can actually save money.
This is by no means a perfect solution, but like so many others, it is just another notch in the tool belt – so keep it in mind the next a big project get dropped on your desk. It just might turn out to be worth the effort.