All projects are the same

Yesterday my toilet arrived.  Well, part of it.  I was so excited, and so let down all at the same time.  See, I ordered the two piece tank and bowl, the part number was 402024.  What arrived at my house was just the tank, part number 402022.  Doing a bathroom renovation with only a toilet tank doesn’t really help much in having that extra bathroom.  I am glad that I planned enough ahead to make adjustments if something should go wrong, such as missing a toilet bowl.

When planning a project, whether it is at home or at work, it’s basically the same idea.  You have a goal to accomplish.  Most days at work, it’s the completion of a website or a part of a website.  At home, my current goal is to have a new bathroom where the floor isn’t spongy and there isn’t an ugly plastic shower surround that wasn’t properly installed.  In order to achieve that goal, there has to be a plan, first a basic plan, sort of an overview, what I would call the logical progression.  Once we know that, we can start filling in the details of the project.  From there we should be able to follow the pre-built step by step guide, like a color by numbers but with a lot more skill required. 

At work, lets say my ‘project’ is a login with registration.  We know what the end goal is, someone can register for a login and then be able to log in and do something.  Our first step would be to figure out the logic needed to get from, well, nothing, to having our goal met.  So, at the most basic, we need to know what is required for the login: username and password.  Rather than having to go back and rewrite everything, we also need to know what other information the login will require for registration.  Usually companies want to know a name and address information that can be attached to the login, so we keep that in mind.  Once we have all the requirements for registration, we can begin to build the database and the necessary forms.  Usually at this point we tend to skip a lot of what we learned in school to do, planning out the details before beginning programming.  Sometimes it seems easier to program on the fly and make adjustments.  It all depends on the size of the project.  A simple form doesn’t need much forethought and planning, but large scale applications do.  In the large scale applications that I write, I do tend to plan everything out as detailed as possible before coding.  I like being able to be reassured when I’m in the ‘code mode’ that my logic and progression is correct, so when I have that reference, I will know for sure whether or not I’m on the right track.

Once all the logic is set up and the plan is drawn, it’s time to start the coding.  Since we are primarily focus on Coldfusion and MySql here at DDA, most of what we do will be in that.  I prefer to have the mysql database and tables set up before starting the coldfusion programming.  This is of course as long as the whole progression has been properly written out beforehand.  If you’re programming on the fly, changing a database structure is much easier than having to rewrite a whole bunch of code because you found something that you will need somewhere later in the form, but for efficiency sake, one should come before the other.

The thing to remember is that life will always throw you curve balls.  Whether it’s a client that says ‘I would really like this completely different from what I told you in the beginning’ to only receiving your toilet tank, be prepared for change.  If you have a solid plan, it can accept some switching around of things without having to start over.  Remember, they keep moving the cheese.