Creating My Own Buzzword
Most of you love programming and shut ears when its only starts to buzzing anywhere but please hold on, its for a good cause and maybe even you might benefit from it.
2010 i held on German Perl workshop in Frankfurt my personal record of 4 full length talks. One of him was about, what I called then documentation driven development: DDD. But that was already taken. I thought this idea longer through and I want you my comrades be very first to hear it.
The main idea of DDD was:
- write first the docs of a feature
- tests
- code
reasons were:
- very good and complete docs and tests
- better because well thought trough code
- writing tests makes more sense on stable API so write your idea first down as docs to see conflicts in architecture
I loosely rewrite Kephra with that and I still like it. However there are some flaws. Quick movements in API are still painful. And that proposal didn't even cover the real idea that is behind all of that. You do it to make great software which is well thought through and is not lacking something that you have to fix after shipping.
To achieve that i want to have a style called CP: complete programming.
First of all it doesn't sound as attention grabbing and hipster lame like like "extreme programming". I'm not a terrorist, I like people and if I would be one I would never admit and act as a harmless, bit naive guy. I just like to program but I'm not a nerd and I'm not only fully aware that life is bigger than the box I stare at now, I practice it daily.
Secondly its not only about the docs. You need configs, makefiles, key bindings, and and and .... So when I think of a feature I have to implement all these aspects before moving on. So you have more possibilities to see consequences and polish that feature that its fully usable instead of having to many half made parts.
That's is not the same as making small prototypes. Sure I have them in the sp2 branch too and there is also a larger more overall plan I want to meet. But I always deal with one section of the program and make there one feature but with the whole picture in mind.
Thirdly, this contains a lot of common sense and in your head calculation which can hardly be fully formalized. However I try to work on that to having something to show, maybe already at GPW in Berlin.
You might say now: but I do this already! Great you sound like a reasonable person. Write me your ideas!
Thanks a lot.
PS: originally I wanted to call it holisitic programming: HP. But yeah its sounds like a company already there, too elitist and frankly the first i thought of: holistic - thats sounds like ken wilber and alike and i don't like them very much. These scientist who write about mysticism and meditation feel a bit creepy to me. I prefer to attend the freak show and live life to its fullest and not stand in the corner take notes while others having the fun.
DDD commonly means Domain Driven Design (and is short of the the title of that book).
I used to do more Documentation Driven Design than I do now (I still write the docs) my problem became that although my API was clean my model was wrong and not supple enough. Domain Driven Design helped me to understand that problem and where I'd gone wrong.
Are you familiar with the Unified Process? which XP, Agile, and RUP are all based upon? Are you familiar with the offshoots enough to explain how yours would be different. Is this based on it at all?
Also following the Pragmatic Programmer a bit, repeating myself is a sin, this is why I use Dist::Zilla to generate Makefiles, metadata, etc. I don't do anything with keybindings, but that's because I don't write apps.
Thanks,
your right, repetition creates bugs and is a tell for bad structure (mostly),
yeah I knew DDD, thats one of the reasons i want to get off that, yes i know a bit XP, Scrum and Agile. And i do also loosely follow the pragmatic bookshelf, however its for me most important to define what works best for me. But I will study deeper into it.
I'm huge fan of dzil, want adopt it for all my stuff.