In my scant spare time, I am working on a side project. I get a few hours here and there to work on it and haven't been too pleased with my progress to date.
There is no customer for this project, really. I have no deadlines apart from the ones I set for myself. As a result, i've been a little disorganized about getting underweigh.
In my many years of software development, i've noticed a pattern in how I build an application. I've written much on software projects before. Annoyed at a particular project once, I sat down and wrote 53 pages in 4 hours. Why couldn't my college papers go so quickly?
So since I am in the beginnings of this personal project i'll mention the three initial facets of a solo software project.
I get very excited talking about the project. I understand at a high level how all the parts function and how i'll make them work in no time flat. A lot of drawing, scribbling notes and general design takes place here. Once I hit the meat of the application I begin to slide downward into Phase Two.
I start to build the project and begin to get in all sorts of little conversations with myself about anything and everything. From the various proper ways to name a function to how to break up the back end layers, I will get very bogged down and frustrated. This is my least favourite phase of the project by far. I look at the landscapers tending to the lawn and envy them.
Right now, I'd much rather do anything than work on this project. I'm happy to take any opportunity for distraction. "Oh Look, a fuzzy dog!", I say as I get up from my desk to stare out the window.
It's at this phase where I feel like this project will never get done and I don't have enough in me to complete it. No matter how many projects i've completed in my career, I eventually get to this phase. What I am really doing is turning the problems and contradictions over and over in my mind until I get them all resolved in my thinking. At the time however, i'll berate myself for not "getting any real work done."
Akin to those 3D drawings, where the picture finally appears once you've stared cross eyed for a while, I begin to get a full view of the internals and make serious progress.
Mid to late Phase Three is my favorite and I constantly think of how much time I "wasted" earlier in the project. Matter of fact, this project seems very easy and I have no idea why it isn't finished already.
So in an effort to be a little more organized about my personal project, I'll post my plans and progress.
I've already been through a lot of the planning and diagramming and am a little bored with that. I am ready to move ahead into some functional workings. So for this phase of the project lets look at three pieces:
Things I am going to do
- I need a general site flow so i'll outline the pages in Model Glue. This should give me a good idea of the User Experience
- I'll account for public level users as well as authenticated users. I have sets of code for logging in, role management and the like so this will be easy.
- Each page will also have common navigation. The navigation will account for current state and preserve workflow.
Since I am prone to distraction, I like to put in something that I WON'T be working on. Some of this is better left until later on anyways, but some of it happens to be fun and I know if I don't make a hard and fast rule, I'll end up wasting time
Things I am not going to do
- User input.
- Layout and graphic design.
Lets see what happens in a few weeks