JPhenow

Using the hacker blogging framework.

A Recent Venture.

A month or two back a friend of mine came to me to show me a prototype web application he wrote for a project. The project was actually to create a prototype front end for a “Way-finding” system for an old folks home near his school. He showed me what he built, which was actually quite impressive and professional looking, but I was sad to see this direction system had not started to be built at all. I sat back realizing we had just recently learned about Dijkstra’s algorithm. That was all fine and dandy that we learned how to, using graphs, find the fastest way from point A to B, but I was really interested in finding out how that would apply to maps, which would require more information in a database and so forth. Yes I know what you’re thinking “why not just use Google Maps API.” Well, yes I thought of that too, but this company wanted someone design their own map system because it was for navigating their business’s campus rather than navigating a street. This just got more interesting, because we’d really have a product to sell if we created a web application in which people can design their own Google Maps-esque page with their own set of maps for whatever they’d like to use it on.

With all of my running projects, school and an actual job the whole thing slipped my mind and I thought that was the end of it. A few weeks later, though, I received a call from the very same friend because that company called him saying they were so impressed they were thinking of drawing up a contract with him instead of a company that was hoping for nearly 5 times more than a college student would bid on this contract. This was great news since he asked me to build much of the back-end ( sooo I’m building the whole thing? ), sadly the project really was worth at least twice as much as we bid on it, but it could still be a great opportunity. Then he told me they wanted it 3 months after the contract was settled on… I was very close to driving over and throwing something at him, but I tried to calmly express that a 3 month ground-up project was possible suicide. Convinced, he put his bid down with 4 months (still short, but okay whatever). Thus I began freaking out because if we did get the contract then even with 4 months it would be a full load of homework, a 20 hour per week Linux admin job plus this project and a girlfriend. I’m screwed.

Pressed for time every day I began researching what tools I’d like to use. After some deliberation ( I would’ve spent more time on it but I was getting worried about this thing we call ‘time’ ) I decided to use CakePHP for my back-end framework. I mostly decided on Cake because of the quick/easy experience I had when running a few personal tests and tinkering - plop in their source, start naming tables, fields, controllers, etc. correctly then everything starts working like an object… yay quick development! Excited to have found a quick framework I started thinking about revision control, because I don’t trust myself enough to not use revision control. Easily landed on git because I’ve familiarized myself with it over the year or two I’ve used it and I know what I’m doing for the most part. Quickly realized that I will actually want a workflow and some collaboration with my friend so I set up 3 subdomains for development, testing, and near-production. The testing domain would actually serve as the main holder for the workflow and dev would hold the really sketchy, maybe-gonna-work stuff. Within the testing domain I had a few different branches, because like I said, it would be the main holder for the application below production level. It contained a master (newest development seemingly stable stuff), a next (newest of new, might work), a test branch (beta-y, prepping for release) and finally a maintenance branch (flash bach to old tags and patch). One of the last things on my pre-development list was to set up a bug tracker for tracking new idea ventures, bugs (seriously, I know) and just keeping track of the project as a whole. I rarely like bug trackers, but Redmine is quite nice in my opinion, keeps track of commits, will “fix” bugs in the track if you comment on your commits correctly, just a clean tool to use overall. Finally I’m actually getting excited because things are starting to look like a real development project and my buddy calls to tell me that the company we were working with went with a product that will provide support.

Ouch.

Now I’m in the mixed feelings stage. I went from being worried as hell to being damn excited about the project. Now that its gone from my grasp (as if I had it ever?) I’m happy that I won’t lose hours of sleep, fail some class I hardly need or miss an hourly paying job I enjoy, but that excitement left me just as fast as it came. My current thoughts lie with whether or not continue and just make it a general product I could sell. Its all ready to be developed and now I might actually have some time to sit on the thing and do it right, but now that there isn’t a deadline its hard to make myself as excited as I was. Ya know? More on this decision as it becomes clear to me.

Comments