On 1 Nov 00, at 10:38, Ryan Wood wrote:

> a "self-taught" developer, I realize more and more that my biggest challenge
> (and need for improvement) comes in the design and specification stage of
> development. Unfortunately, I have not had any mentors to help me hone my

This is everyone's biggest challenge.  Design and spec are the two least-
practiced and most-important aspects of system development.  Obviously, lots 
and lots of ink (electrons?) could be spent on this subject.  If you can make 
the opportunity, I strongly recommend hooking up with Hal for his "Developing 
Applications with ColdFusion and Fusebox" course.  You'll get a week of 
intensive coding wrapped around great discussions about the design process and 
the need for high-grade methodologies.

All that said, here's the procedure I follow for Fusebox projects (this is not 
the Gospel According to Hal, although it may sound close...):
- Prototype (this is an HTML mockup of the application that includes every 
screen you dream up as a result of the traditional "what I think I want" 
discussions with the client).  Once locked down, it represents *everything* you 
want to do with the app.
- Identify actions (or 'exit points') for each page in the prototype.  These 
will become fuseactions.
- Organize fuseactions into sensible circuit groups.  Name each circuit.
- Outline the Fusebox structure (I like to use Visual Mind for this purpose), 
including the main app, circuits, fuseactions, and fuses.  This process 
involves breaking down each fuseaction into the components (fuses) you'll need.
- Write Fusedocs for each fuse.  This is vital.  Don't skip this step.  This is 
where the technical system design happens.
- Create the Fusebox framework (fusebox, circuit fuseboxes, and fuse files) 
based on the outline.  I've built a little CF tag called Fuseminder that will 
do this drudgery for you.  You can grab it from the Developer's Exchange.
- Write the code for each fuse.  With all the great design work you've done, 
this is the easy part. <g>
- Write a test harness for each fuse as you finish its code.  This allows you 
to unit test your code before making it rely on the rest of the app.
- Insert new fuses into the prototype structure.  As you make daily progress, 
the prototype slowly turns into a full-fledged application.
- Rake in the cake. <g>

- Jeff

==============================================================
| Jeffrey S. Peters       | "Specialization is for insects." |
| [EMAIL PROTECTED] |                 - Lazarus Long   |
==============================================================
------------------------------------------------------------------------------
To Unsubscribe visit 
http://www.houseoffusion.com/index.cfm?sidebar=lists&body=lists/fusebox or send a 
message to [EMAIL PROTECTED] with 'unsubscribe' in the body.

Reply via email to