[LCP]Pre-planning/documenting software projects

Jack Lloyd lloyd at randombit.net
Mon Apr 5 17:37:48 UTC 2004


Generally you won't know how to design the stuff until you start coding it (ie,
trial and error). You keep trying different approaches until the design comes
out 'right'. In particular if you haven't done any major coding in the past, it
will probably be difficult to see how to start out on the problem, and even
designs by experienced people usually go through a number of changes/total
rewrites over their lifetime.

I think the first thing to think about, before software design, is to figure
out the answers to "What will this project do?" and (just as important IMO)
"What will this project *not* do?". Once you have good answers for those two
questions (even if just in your head), then you can start thinking about
design.

If you're interested in software development planning, read "The Mythical Man
Month". If you plan on this being a fairly large project (ie, more than just
you), read Peopleware as well. Both good books, and actually pretty
entertaining. Design Patterns is very good and might be helpful when doing
design. However, there is a reason that there are no books on how to "break
down the actual software idea into modules": software is (almost) always a
one-off process, and things are difficult to generalize. Not only are all
projects different, but the tastes of the designers can range over a wide
span. What someone else might consider to be good design style, I might
consider to be very poor. In specific areas (Java servlets, something like
that), you can probably find books that help you do the design. But (hopefully)
your project is sufficiently new and different from what's already out there
that you'll basically have to do the design on your own.

-Jack

On Sat, Apr 03, 2004 at 12:51:30PM +0200, juman wrote:
> I am one of those techheads who now and then code little utilities that
> help me with specific tasks. Programming is something I have learnt
> mostly by myself and prefer coding in C but sometimes I also do
> shellscripts, PHP, Perl and C++.
>     Now I am trying a little bigger project which also includes more
> pre-planning before I actually sit down and start coding. So I started
> to read up on some diffrent tecqhniques for software development
> planning. And as I can see it the biggest one is using UML and some
> graphical tool to produce it. But I do most of my work in a Linux shell
> and wonder what tools and techniques there might be not using Windoze or
> X?
>     I am also looking for online texts about software development
> planning or books that you might recommend. Most of the text I have
> found so far is more about how to plan your resources then breaking down
> the actual software idea into modules so that you can begin coding.
> 
> /juman 
> _______________________________________________
> This is the Linux C Programming List
> :  http://lists.linux.org.au/listinfo/linuxcprogramming List



More information about the linuxCprogramming mailing list