Fog Creek Software
Discussion Board

project development outlines

Anyone know where I can find an outline template to design a softwhere program?

Surely a simple outline can't be hard to find...right?

Does anyone make an outline before writing code?

Michael Zuilkowski
Thursday, March 6, 2003

I don't know exactly what you mean by 'outline', if you are looking for <guidelines>, I suppose you should look for some architectural best practices depending on the kind of software application (desktop, client-server, web, multi-tier, mobile, ..). And for low level (component, class, method) design you should review some 'software design patterns' books and articles.

If you are looking to <describe> the software design, you should take a look to UML, a diagraming language used specifically to express software design documents, is both its static (structure) and dinamic (function) point of views.

If you are looking for guidelines to <start> the design process, you may find useful info about the Rational process RUP, which guides you through the stages of a software development process.

I suggest also checking guides about writing functional specifications, which are documents used to fully describe designs for all kind of software projects.

Doing a google search in every one of these topics should give you good hints.

sergio acosta
Thursday, March 6, 2003

Usually before I start developing I draw a simple picture of the GUI on a piece of paper and write a short functional spec as a guide for when I actually start writing the code.

Thursday, March 6, 2003

So what do you use as the basis for the sketch of your GUI?

Practical Geezer
Friday, March 7, 2003

Some Java bloggers I follow are enamored with Java Outline Editor. Hope it works for you.


Chris Winters
Friday, March 7, 2003

It really depends on what kind of application I am writing, and how large/complex the application is.

I will often write down scribble notes and gather required information. At that point, then one has to sit down and decide what features etc the application needs. It is at this point I then write out the functional spec. Joel has a good article on this at:

Next, I will then  generally then design the tables. If it is a simple application with only about 10 tables, then I will jump right in and start using the ER tools in the database to draw out the tables. The data portion to me is most important part of my applications. You get this part right, then the rest of application falls into place with little effort.

I actually use the table designs doc to thuw guide me through the rest of the screen designs etc. So, often I will start writing code and some forms without laying out the forms before hand. However, my table designs are almost ALWAYS done before any coding occurs. Hence, my “over all” table designs come right after the requirements and the functional specs stage. So, I do often jump into work without necessary laying out how a form will look before hand. However, those table designs are done first! I use Viso for much of my table layout work.

When you have a larger number of tables, then the design is too complex to make all the tables with the fields names first. My mind can’t work with such a large number of tables and all the details of each field. However, I do still need that top most view of tables. So, again, I still design around the tables and the relationships. 

So, I will start on a piece of paper, and start drawing squares. Here is a customer, and they go on tours (ah, two tables now). Here is a inventory part for the tours, (again another square). I will continue this drawing of squares until I have all the parts needed for the appcltion. Sometime those squares will become *more* then one table.

Hence, I will thus start the design process with JUST the table Names. I actually paste up that “HIGH” view of the tables only view on the wall in front of me. I then start to layout forms based on that relationships.

Then, as I actually create the real tables, I then actually print out the ER tables.

So, here is a initial table design made using Viso.

And, after further down the design/coding process, you then get:

You can read a good portion of my notes I made when I did this project at:

Much of approach will depend on how complex and what you are creating.

Albert D. Kallal
Edmonton, Alberta Canada

Albert D. Kallal
Friday, March 7, 2003

<So what do you use as the basis for the sketch of your GUI? >  I usually draw the layout of the GUI with boxes for PushButtons ect.  After I get something I like that is easy to use and non confusing I create the GUI in Visual Basic and use that as my final template for the actual software developement.

Friday, March 7, 2003

That doesn't answer the question.

The question is: what do you base your sketch on.

Not: How do you draw your sketches.

Once you start drawing, you are drawing a (potential) solution.

Practical Geezer
Sunday, March 9, 2003

*  Recent Topics

*  Fog Creek Home