The Project Map

Posted by Justin on August 14, 2005
Open Source Projects

After deciding that I wanted to start another project, I decided to cover the whole process, in detail. This is mainly for people that would like to start projects, but don’t know where to start due to the amount of things that need to be done.

To Start With
First, get an idea… Follow the link if you haven’t read my idea.

Now that we have an application idea, we need to do a lot of things before actually starting it. Some people just jump right in and try to keep their head above the water, but thats a bad idea. Without a project map, you can sink very quickly…

Details
After getting an idea, you need to start writing down, in detail, exactly what your idea is. If you think you’re getting too detailed, you’re doing it right. Sure, things can change occasionally, but thats ok - as long as you have a very good idea of what you’re working on.

Its said that the best programming team Microsoft has works for 6 months just mapping a project out. During this time, they don’t write any type of code… Personally, 6 months is a bit much for me but I have been known to take a month working on my own time mapping out a project.

At this point, make a list of every possible feature you want your project to have. Again, the more detailed the better. Don’t be surprised if, during brain storming, you come up with a heck of a lot more ideas. If you have a whole list of things you want, put a check next to the most important to you - these are your first goals. Trying to design the whole application all at once is pretty crazy if you ask me - do it in sections.

The Map
My most recent project, which I’m still writing a lot of code for is barely off the mapping phase. Check out the project map of the RBE. (I happen to do this in Visio, so FireFox users may complain a little…) But almost every facet of the RBE is laid out with what happens, which pages “touch” each other, etc… You need to make sure that anyone reading this map can understand it, not just you. If you’re working on a project just for you, fine, but trust me - making it idiot proof will save you time at 3am when you’ve had 5 too many cappuccinos.

The mapping phase will also help you out when you’re working on forms. You will be able to pick the file names before starting and even figure out that form 14 goes with file 63… Seeing it on paper is much easier than attempting to think it through. If you don’t have a fancy mapping program like Visio, a standard (OSS) image editor will do - even paper will do.

The Code
One of the best things you can do is attempt to reuse any code possible. This cannot be stressed enough for newbies. There is no reason to have all of your DB connection info in every single file that needs to query a database. Go wild creating functions for anything you feel may come up more than once. I use functions for everything from DB connections all the way down to page footers.

Another thing that needs to be stressed is commenting your code. When you first learn a language, it looks pretty nasty - trust me. After awhile, you’ll view your code and pretty much say “What the hell was I thinking?” - we all do it. Your comments will keep you sane while you attempt to figure out nested if/else statements that go 11 deep for a weird loop.