<?xml version="1.0" encoding="windows-1252"?>
<node id="90966" title="Re: Coming up with code design" created="2001-06-23 15:23:37" updated="2005-07-21 01:27:21">
<type id="11">
note</type>
<author id="16711">
djw</author>
<data>
<field name="doctext">
When I first think of a new project, I try and draw out exactly how the meat of the project will work.  This is the first thing I attack during my process.  I always catch myself trying to add features, or trying to make it sleek even before the thing works.  I can usually catch myself and write those items down for later.  Or "After it Works" (tm).&lt;br&gt;&lt;br&gt;
Once I have the basic code working, I start drawing out all the things I want to add to my project.  Then I take another look at my methods used for the working code and see if everything will fit the way I have it down so far.&lt;br&gt;&lt;br&gt;
The next phase for me is a little messy.  I think I start to brainstorm a bit and I quickly add features/improvements all over the place.  I can tell that I should learn to curb this habit before doing anything larger.&lt;br&gt;&lt;br&gt;
Another thing I've found is never ever release an early concept to friends. =) "add this", "do this", "this would be cool" - I learned my lesson, they get it after its done&lt;br&gt;&lt;br&gt;
Once I get most of the features in that I want, I start to organize myself a bit and clean up the code.  I do this until I'm satisfied with the layout(functions++), then I complete any outstanding features within the new structure.&lt;br&gt;&lt;br&gt;
Then I release.....&lt;br&gt;&lt;br&gt;&lt;br&gt;
Recap:&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;Write down outline and ideas&lt;/li&gt;
&lt;li&gt;Get chunk working and redo working code chunk for improvements/features&lt;/li&gt;
&lt;li&gt;Chaos&lt;/li&gt;
&lt;li&gt;Organize/clean/final additions&lt;/li&gt;
&lt;li&gt;Release&lt;/li&gt;
&lt;/ol&gt;
&lt;br&gt;&lt;br&gt;
Thanks,&lt;br&gt;
&lt;a href="http://www.perlmonks.org/index.pl?node_id=16711&amp;lastnode_id=1072"&gt;djw&lt;/a&gt;</field>
<field name="root_node">
90896</field>
<field name="parent_node">
90896</field>
</data>
</node>
