in reply to Document-centric vs. Workflow-centric design
My recommended approach would be: “product- and project- centric.”
First of all, your piece of software is “a product,” even if it is “just” for in-house use. You are spending a lot of time and money on it, even if you're “just” doing it for yourself. People are going to need to rely upon it, even if that group of people “just” includes yourself.
Secondly, your piece of software is a project, which means that the very best time and place to plan it all out ... and to plan it all out ... is at the very beginning. You don't have to figure things out as you go along. You don't have to take off at a full gallop on your horse while you fumble around in your back-pocket to see if you even remembered to bring your map with you. You can create a schedule for yourself and track your progress against it. You can work out specifications, including appearance and procedures, before you start to write anything, and the time spent doing that will be time very well spent. What works so well in the construction trades works just as well here. (Try it.)
The more you work on clearly-separating this design work from your coding, the more you'll realize that “coding it” is pretty much drop-dead easy. It's a task that you basically perform by-rote. The hard work is the design, and what's actually been making software-writing seem “so damn difficult” is the tremendous amount of scrap-and-rewrite that undisciplined methods were causing you to do. You were “going off half-cocked,” time and time again. Acting as though computer-programming were rocket science, when even a rocket scientist doesn't do things that way.
Once you have decided exactly what you're going to do, and how (perhaps among many possibilities) you're going to do it, then both the documents and the workflow just follow on as necessary consequences. Again, more or less just by rote. (I simplify, but only slightly.)
Mind you, the project does not have to be worked-out in exhaustive detail before you can actually start to do something useful. More likely, it's going to be an incremental, cyclic process that goes through many iterations many times ... but not as “a voyage of discovery.” Do all your discovery with a map, in port (or on the leeward side of the most-recent Tahitian island), then set sail (again).
“If you fall off the edge of the ocean, it's your own damn fault.” ;-)
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Document-centric vs. Workflow-centric design
by mr_mischief (Monsignor) on Mar 12, 2008 at 20:40 UTC | |
by locked_user sundialsvc4 (Abbot) on Mar 14, 2008 at 15:21 UTC |