Well, it was a long hard road, but Moon River Milestones is finally out the door. It's less than a week after the launch, and while I accomplished a huge amount of work, there's still a lot left to do. I use Milestones mainly for my own project management, both in the business, in my personal life, and while doing project estimates. It's really nice to use it for everything to help keep me organized.

On the other hand, it's a bit disheartening to see how much work there is left to do. For example, I have identified thirteen bugs in the software already. Thirteen! And it's only been 5 days since the launch.

Some of them are exceptionally easy to fix, for example Issue 211 says that when viewing sub-project milestones, the 'Inquiry' field actually duplicates the 'Feature' field. While I haven't looked into it yet, I'm certain that this was simply a copy/paste error in the code that went unnoticed for a very long time. I don't make extensive use of subprojects myself, although I know that some users will.

Other bugs, like Issue 164 states that if a session expires, and the user had already uploaded some files, those file uploads are lost. Hmmm. Much more difficult to fix. Basically, it means someone started to enter a new issue and either took more than 20 minutes to do it, or left their machine after uploading the files, and then came back to do it. This is much more difficult to fix. It would involve creating temporary pointer objects embedded in the page to rows in the database representing these files. It's a much more complicated problem, and addressing it can create even more problems.

I currently have 38 issues targeted to Version 1.1.0, and of those, 12 are bug fixes. The lone bug which will likely get pushed off to Version 1.2.0 is the file upload during expired session bug. Everything else works in that situation, it's just that the files uploaded are lost if the page didn't postback within the last 20 minutes.

What went right:

Time Management - Now that I'm doing contract work, my time is generally my own. It's nice to not have to commute for 2 hours every day. It helps a lot in getting things done. By maintaining roughly the same schedule as I was before, I get 2 hours more to myself every day, and for the most part, I've been using those hours to help me get Milestones out the door. It also helps that my hours are no longer set.

If I want to work 10+ hours in a day doing contract work, I can. If I feel like I'm not getting anywhere with Milestones, I can switch to the contract work for a while, log some hours to help pay the bills, and come back later. I'm a total night owl when it comes to working. I'm very comfortable working till 3 or 4am and sleeping till 10am. On the other hand, I've had days where I've been up at 6:15am and working till 10pm before as well. What it amounts to is that my time is much more efficiently used than it ever was when I was on a strict 8 hour schedule.

Product Evaluations - With the lone exception of the 'bug' I ran into while evaluating the Wise Installer, everything seemed to go pretty well. It was a little bit frustrating attempting to set up my automated build environment though because I absolutely needed to have non-evaluation versions to get the batch processes running properly. The trial version of the obfuscator I chose didn't allow command line mode. Also, the evaluation version of the Wise Installer forced the user to click on a dialog box every time it ran, command line mode or not.

But to be honest, neither of these problems was earth shattering, and both went away very quickly once I purchased the full versions of the software.

A Business Credit Card - Bank of America has been my bank of choice ever since they took over Fleet. I used to have my Game Thoughts business account with Fleet until they were acquired. I never had any problems and if anything, the service simply got better with Bank of America. When I set up my business checking account, I received a ton of business credit card applications in the mail. I ignored them for the most part, since I wasn't quite ready to go full time with the business, but when it came time to do so, Bank of America laid down an offer I couldn't refuse. 0% financing on all purchases for 1 full year.

With a new business, cash flow is a mighty big problem. How do you buy things without money? You buy it on credit. Well, as a new business, you have no established credit, so then what? Simply put, you're screwed.

When I saw this offer from Bank of America, I knew I'd be killing two birds with one stone. The service would be great, I didn't have to go outside my bank, and the 0% interest on all purchases for a year really put it over the edge. I applied for it, was accepted and given a healthy line of credit which I used to fund all of my business purchases. While I am personally liable for all charges incurred, by having a separate business credit card I can write checks out from the business checking account and not have to worry about paying for anything myself.

What went wrong:

Not Enough Time: While my time management skills are pretty good, and Milestones certainly helps me to budget my time wisely, there's simply not enough hours in the day at times. It turns out that certain things, like marketing and research, take an extraordiary amount of time to do, and there's very little immediate return on that time investment, which seems like a good reason to put it off. I've worked 16 hour days in the past 2 months trying to get everything done for the product launch, and the installer problem set me back a good 3-4 weeks. Even after I solved that problem was the additional issue that the connection string created by the Wise installer is an ODBC style connection string, not a Sql Server connection string. This forced me to do some pretty funky parsing to convert from ODBC to SqlConnection before using the connection string.

There are simply too many instances where time was a factor. Luckily for me, testing was done as time went on because I was using the software so much myself. Every day, I pounded on the machine, bravely vanquishing bug after bug as each of them reared its ugly head. I also went above and beyond my specs by adding in decent looking icons before the v1.0.0 release. The old icons were probably copyrighted anyway, and that simply wasn't an issue I wanted to deal with if I didn't have to. So, I bought an icon package and spent about a day integrating the new icons and making the UI look a lot better than it did before.

Cash Flow: As someone who is somewhat unfamiliar with the consultant market, I realized a very important lesson very quickly. You need to have a very strict budget when you first strike out on your own. It's very easy to trick yourself into thinking that just because you're getting paid x times what you were before, you're going to have an easy time making ends meet. Welcome to the real world my friend.

Consultants don't exactly get a weekly paycheck. In fact, after you submit a bill, it could be 30, 60, or even 90 days before you see a check, depending on your client. I was in the fortunate position of being subcontracted out to a company whose client had committed to paying within 21 days and had electronic invoice submissions. In addition, when the invoice is paid and the funds clear the account, I am issued a check. So after I submit an invoice, I get a check in about 30 days or so.

Don't get me wrong though, I was sweating bullets at the end of November. I was able to make ends meet before I got my first two checks but only by dipping into my wife's emergency fund. Now, things seem to be going well, but it was a bit stressful for about 2 weeks there. If you go the contractor route, make sure you get guarantees about when you'll be paid, and have money stashed away to help make ends meet if they don't come through when you need them to.

Not Enough Manpower: Doing everything yourself is a very difficult task. I wish that at the very least, I had a junior programmer helping me full time go through these things in Milestones. Even now, there's documentation to be written which is likely to take a while because there are more important things to do than documentation. Everything is up and running, the online trials seem to be working perfectly, but marketing has a huge gap right now. People simply don't know that Milestones even exists. It's hard to make money on a product when nobody knows about it.

Milestones also has a great way of telling you how much work you have left to do on any given summary of the issues you're looking at, so long as you filled in the time estimates of course. But it's disconcerting to see that number trend steadily upwards as the work piles up and you're spreading yourself too thin to keep up with it all.

Mild Burnout: When you're working seven days a week and putting in more than 10 hours a day each and every day, it won't take long before you burn yourself out. This is one of the more serious dangers when creating a startup, especially because of the smaller team size. If it's just you, and you aren't doing anything, you can be seriously screwed. Even if you have a partner, unless you talk about burnout, there's likely to be some resentment because one person is doing a lot of work, and the other isn't doing much at all. That's no way to get a business off the ground.

It turns out that I've been experiencing a bit of mild burnout. Fortunately, I could feel it coming and took some steps to prevent it from ruling my entire world. In my off time, I like to play video games, and I like to read fantasy books. On my bookshelf, I've had some David Eddings books which I never quite finished reading. I read book 1 of The Tamuli, but never bought books 2 or 3. I reread book 1, and then bought books 2 and 3. I still have a little ways to go in the third book, but I'm nearly finished.

Reading does two things for me. First, it relaxes me because I'm not staring at a computer screen anymore. Second, it gets my mind completely off of work and I generally just forget about everything else. I'm an extremely fast reader though, which I think is one my my downfalls. I remember when I was about 12 years old, I would go to the town library, check out 6 fantasy books at a time, and have all of them read within the next 2 days. Doing nothing but reading, I can burn through about 1200 pages in a day, non-technical stuff only of course.

Conclusion:

It would seem that of the things that went wrong, there are a couple of areas which will straighten themselves out on their own. From this point on, I don't forsee cash flow to be much of a problem in the near future. While that may change should my client decide to go in another direction, or the work tapers off, I think that the software side of my business should help buffer any sudden changes.

Not enough manpower is something which probably plagues every company on the planet. There's always more work to do, and always more features to cram into the software. I think the key is to set a schedule, make your best guess estimates at how long anything is going to take, and continually revise and update the schedule to reflect ongoing changes.

Burnout is always going to be a problem. The key to burnout is managing it effectively. By keeping tabs on how close to being burned out you are, you can mitigate the effects by making sure to add time off to your schedules. In the game development world, it's seen as a badge of honor to be working 12-16 hour days for weeks or even months on end. That's just incredibly stupid. Once that final push is finished, the developer is so burnt out that it can take months, or even years to recover. I know this because I've been burned out for months at a time before. It's not fun, you have no motivation, and the quality of your work really isn't all that good.

I hope that this has been somewhat enlightening for you. Having written it, I'm certainly more aware of the things that have changed over the past few months, and some of the challenges that lie ahead for Moon River Software.