Documenation Driven Development (DDD)
What is Documenation Driven Development (DDD)?
DDD simply means that you write the documentation for things you plan to program before you actually start getting into the code. It is similiar to making an excact concept of your application but it more focused on the user then on the developer (of the project).
What are the advantages of DDD?
DDD has several big advantages over other programming strategies, especially:
- Keeps you from over- designing/complicating things (If you can't explain them - don't use them)
- Gives you the chance to get your ideas peer-reviewed since it helps people to understand what you are trying to do.
- Good Documentation - If you use DDD your project will always be very well documented.
- Helps Planning - If Users know how things are going to work in future they can fine tune their projects to be future-safe.
- Creates user-friendly software - If the developer writes the documentation for the user he'll think more like him and make software that is user-oriented.
- Keeps up motivation - Believe it or not, writing the documentation for things you did and that you will do can be a motivationally rewarding experience.
And what about the disadvantages? Well while we think the advantages are outweighting the cons by far here is what we feel is not so good about DDD:
- Time Consuming - Having the developers writing big chunks of the documentation keeps them from developing.
- Confusing - If not done in a clear manner, DDD might gets the users confused about actual features and the things to come.
Did you invent DDD?
Well, yes and no. We have known about other agile programming techniques like Test-Driven-Development before which are quite similar. The idea of of writing the documenation for future features came out of a dialog between the_undefined and frando in #spliceit. But it has to be said that, even so we didn't know of it before, there were people who came up with the exact same idea, before us. Still - there is not a lot of information about DDD out there, so we think it's still a fairly new (and experimental) technique.
More stuff to read
If you are interested in the guidelines and idea behind SpliceIt! you might find those pages interesting as well:
SpliceIt!-Documenation v0.1 ALPHA (generated on 28.03.2006)