Archive for September, 2005

Day 48

Posted in Daily Entries on September 26th, 2005 by Mike Taber – Be the first to comment

Well, it would seem that I haven’t made nearly the number of updates here as I would have liked. Given that Moon River’s first product is a project management tool, you’d think that this would have been easier to keep up with. But alas, anyone who owns a house will know that you often do what you need to do, and not what you want to do.

But our first product is nearly ready for something beyond the initial beta. There are still some things that need to be set up on the Moon River website in order to make it work. I have about a dozen or so articles in the queue that I’ll be publishing soon enough. Not all of them are in my Business Bootstrapper series, but I think most of them are pretty good reads, nonetheless.


Day thirty-something

Posted in Daily Entries on September 14th, 2005 by Mike Taber – Be the first to comment

Finding great software developers to work for you can be a full time job, and in many companies, it is. Hiring managers are constantly on the lookout for any great developer they can find because even if they can’t land him as an employee, that developer will most certainly have colleagues he can recommend. After all, people who are great at what they do tend to travel in the same circles with other great potential employees. It only makes sense to seek out these people because it’s well known that in the world of software, there’s a huge range of productivity levels between developers.

But something is fundamentally wrong with this concept of searching for great talent. Do companies really need to have a full time employee just searching for other potential employees? The fact is that since the dot com bubble burst, semi-technologically savvy people have been leaving the field in droves. The job market for software developers has gotten extremely competitive as people with somewhat less than desireable abilities are forced to leave the field for other industries because companies simply won’t hire them. Shouldn’t this mean that the overall level of talent has gone up? Shouldn’t the people left be more competent? You would think that would be true. So, what makes it so incredibly difficult to find great talent?

The answer is that insanely great engineers are being paid top dollar to stay put, and simply aren’t changing companies or jobs very frequently. When they do, it is only because a better offer literally landed in their laps. When a developer decribes his job as one that “doesn’t completely suck”, the truth of the matter is he considers it to be a good job and is willing to stick it out, rather than take risks on a new job that has the potential to be better. Chances are good that the unknown job is probably worse. It’s not any different than playing blackjack and asking for a hit when you’ve got more than 11. It’s a gamble, and chances are good that you’ll end up worse off than you were.

So, how does a company find and attract these great developers? It’s no secret that a good developer can be more than 10 times as productive as an average developer, making fewer mistakes and writing more code in the same amount of time. Software is one of the only industries where such a vast differential can exist between the quality and quantity of work produced between two employees. Small companies don’t have the capital to shell out $200k for these great developers. Large corporations are cutting costs left and right. They’re willing to pay a bit more to the great guys they already have, but their shareholders, management and HR would balk if they started paying top dollar for every great engineer they could get their hands on. There’s a simple solution that very few of these companies have stumbled upon and if you haven’t figured it out for yourself yet, I’ll clue you in.

Stop torturing your employees.

Walk up and down the aisles of the cubicle farm in any large corporation, and you will inevitably find all of the things that are preventing them from getting top notch talent. Cubicle farms are a problem to begin with. Developers need quiet offices, as heavily advocated by Joel Spolsky. It’s hard enough to think alone, but the half height cubicles certainly don’t help. Dilbert cartoons plastered all over the place should be considered one of two things; 1) a really big clue to you that your environment sucks, or 2) your employees are incredibly happy and laughing at how bad everyone else has it compared to them. Guess which boat you’re probably in? Dilbert cartoons simply wouldn’t be nearly as funny if it wasn’t a rather accurate representation of the company they were posted in.

You find managers who won’t shell out a few extra dollars to get the good stuff instead of the garbage hardware from the lowest bidder, and don’t get me started on chairs. Personally, I’ve never worked in a company where the chair was something I’d consider “comfortable”. At one job I switched between four different chairs and all of them sucked.

The only job I ever had where outdated equipment wasn’t a problem was one where I was an IT administrator about half the time and I got dibs on all new equipment while my hand-me-downs went straight to the sales guys because it was still top of the line. Let me say that again in case you missed it. To the sales guys! The engineers, the ones doing the real work with CAD drawings, circuit simulations, and software testing all got shafted. Face it. These conditions make putting a gun barrel in your mouth a tempting alternative.

Here’s a suggestion. Instead of making work the worst part of their day, make your employees happy to work for you. Even better, get them to actually enjoy coming into work. Easier said than done you say? I honestly don’t think so, and I also don’t think you need to shell out tons of cash on monster salaries to do it. Let me give you another clue. For the vast, vast majority of candidates, money is not the number one motivator when considering a job offer. I’ve interviewed a few dozen people for jobs over the last few years, and by far the most common questions revolve around what the team dynamics are, whether I enjoy my job or not, equipment budgets, and how receptive management is to new ideas. Only once have I ever been asked a question related to monetary benefits. Just once! I know how bad a sample size that is, but don’t bother correcting me. If you think I’m wrong, you’re the one in 36 that felt money was more important.

So, knowing how much more productive these people are, I think it’s quite clear that the number one goal of Moon River Software should be to make it into an incredible place to work and follow Fog Creek’s example. That means comfy chairs for every employee, not just kickbacks for the executives who rode on the backs of the employees. Flexible hours? Of course. Great benefits? Just like a luxury car, great benefits come standard. Smart and empowered employees? Without exception, because smart people like to be around other smart people. They also like to be challenged and own their own projects. And they love to be given the power to get things done.

This also means equipment budgets to alleviate developer headaches. Ever try to run more than one virtual machine with less than 1Gb of RAM or anything less than a dual cpu computer? It sucks. Ever try to convince management to spend $100 for another Gig of RAM? It’s ludicrous that you have to even make a half hearted case for it, let alone fill out paperwork and write up business justifications for it! The conversation should go something like this:

Employee: My computer is too slow, I need more RAM for my computer.
Manager: How much do you need?
Employee: I have 512Mb now, I need at least another 512Mb.
Manager: Go pull the case off your machine and tell me what kind you need. Let’s see if we can get you up to 2Gb.



The sad part? We know that doesn’t happen in most companies. For $200 the manager can make his employee aware of how seriously his problems productivity problems are taken. Instead, the manager says no, content with the fact that he saved the company $200 this afternoon and annoyed the employee with just one more little thing to add to his list of reasons why he hates his job. And don’t think for a second he hasn’t been keeping track of the things you’ve said no to. All of them will add up to him quitting in 6 months because his needs aren’t taken seriously. Then you’ll spend 4 months of salary on the next guy getting him to the point where he’s semi-productive in your environment, plus the $5k bounty you paid to the recruiter to find the new guy. Cost effective? I think not.

So this is my plan for the future, straight out of Fog Creek’s business plan. I want to make Moon River Software the type of company where top notch people want to work. I want Moon River Software’s reputation to be known as a company that takes the needs of the employees seriously so that we don’t have to look for developers. Top notch people will seek us out. But as Joel, of Joel on Software says, all of this doesn’t do any good if you can’t stay in business, make payroll, or pay the bills. For that reason, I won’t make purchases that can’t be made out of current revenues. That means no loans, no debt, no outside investment that needs to be repaid, etc. In the beginning, this will need to be waived somewhat out of necessity, but only in the couple of months. After all, what good is a great place to work if it doesn’t stay in business?

Will this plan work? I certainly think so. It worked for Fog Creek, so why can’t it work for any other company?


Volume II: Conserving what little cash you have

Posted in All Articles, Bootstrapping a Business on September 12th, 2005 by Mike Taber – Be the first to comment

Every hero has a nemesis. Frodo had Gollum. Batman had The Joker, and Harry Potter had Voldemort. In nearly every case, the hero finds himself with his back to a wall, the end of the world is near, and people are going to die.

Well, it may not be quite so dramatic when you’re a startup company treading on your new ground, but you still have a major nemesis to deal with. Several in fact. Today, I’d like to talk about what is arguably the most important one. Cash.

Ah, that most glorious of things, which venture capitalists crave like crack. Like 5 year olds crave sugar. Cash is quite a beneficial thing isn’t it? Well of course. But it’s opposite can be your nemesis. Run out of cash, and you run out of business. It’s a simple concept, one which I really wish the airline companies would take into consideration at some point. Incidentally, two of the top seven this week are filing for bankruptcy. The unfortunate thing about a brand new company is that typically, you don’t have any cash. No money at all. And that’s simply not good business.

Initial Capital:

So now, you’ve incorporated this business with the state, maybe you have a partner or three, and you have a product you’re looking at creating. Here’s the catch 22. You need to sell your product to get money. You need money to build your product. As much fun as it is watching a dog chase its own tail, or watching a cat chase a laser pointer, it’s not nearly as funny when you’re on the receiving end is it?

There are a lot of ways to raise capital for your company. The first, which I have very little experience with, is to get outside investors. These are people who invest in other businesses for a living, giving them money in exchange for ownership of the companies and voting rights on their board of directors. I won’t discuss these. I’ve seen how they work to some extent, but if you want to read about them, start looking somewhere else because I simply don’t know enough about them except to say that I don’t think that’s for me.

So, if you’re putting the ix-nay on outside investment, that means that you only have a couple of options left. Personal loans from friends or family, your own money, or getting a loan. Loans from friends or family can be tricky, because there’s a personal attachment there. If the company doesn’t fare well, was it really a loan? Was it an investment? Either way, it can get ugly fast if you fail.

If it was your own money that you had saved up and you fail, the situation isn’t nearly so bad. However, if you got a loan to fund the business by putting up the equity in your house as collateral, you could be in serious trouble. My advice is to take the path that you feel most comfortable with should the company go under. If I were 23 and fresh out of college with no loans, I’d be comfortable with putting it on the plastic. Unfortunately, I’m not. I’m married with a mortgage, car payments, utility bills, cable bills, etc. The whole nine yards really. So taking another mortgage on my house is not a risk I’m willing to take, and I wouldn’t recommend it to anyone.

The fact is that you absolutely must think in the back of your mind“What’s the worst I’m willing to live with if I fail?”. Once you figure that out, figuring out how to fund your company shouldn’t be terribly difficult.

I think the best thing to do is look for beta customers while you’re developing your product. Yes, I said beta customers, not beta testers. There’s one important difference. For new products, beta testers are usually given a free copy of the software for helping out. Beta customers are those who will get to directly influence the final product and in return, are nearly assured that it is developed to meet their needs. If you can convince them to pay you while it is still under develpment, then congratulations. You’re well on your way to being successful. Be be careful when doing this, because it’s easy to take someone’s money, but if they have a serious problem that you can’t address, they’re going to be very put out because they paid good money for a pseudo-custom application and you’re not delivering on your end.

The way around this is to be very up front with them and make sure they know where your priorities are, and that they can live with the basic functionality. You can also help alleviate this trouble by offering them a below retail discount on the software. It’s still not free, but it puts money in your account, gets you a paying customer, and provides you with some important feedback.

First Months:

The first few months of business will be very difficult, especially if you’ve burned your bridges, quit your job and decided to take a chance on running your business full time. This certainly isn’t for everyone and unless your product is ready to ship and you already have customers beating down your doors, it’s probably not a good idea.

Instead, you should be looking to preserve all of the cash that you have on hand. The best idea is to work on your product until it’s nearly ready to ship to customers. You’ll quickly find out that writing the software is only about half the work. There’s a lot of work to do once the last line of code is written. You need to put up a solid website, revise your marketing plan to fit the product, research competition, price your product, get early adopters, talk to customers to get feedback which will help improve your product, etc.

It’s a long list to get through. Fortunately, most people have partners and can generally split a lot of the workload to get things done faster. There’s a really big impulse to start spending money before you have it. I myself was thoroughly tempted by a new deal that Dell was offering just a few short weeks ago. I could have snagged myself a 64bit dual core 3.0GHz Pentium D machine with 4Gb of RAM. The video card was just sick in this bad boy. I already have a pair of Western Digital Raptor drives, a DVD burner and a 20″ LCD monitor so I was all set there in terms of upgrades I wouldn’t need to pay for.

I could make the purchase, write it all off as a business expense, and have the greatest computer I’d had in a very long time for only about $100/month. There was only one problem. I didn’t have the money quite yet. Now, during the course of developing my first product at Moon River, I had the foresight to seek out potential customers and explain to them what I was doing and if they’d be interested in it. This market research landed me a sale based on custom features that were implemented early on because they were included in the design phase. Had I not been scouting around, these features would certainly not be there now, but they were requirements for purchase, so they’re in the product.

Once Moon River was incorporated, I could receive a PO from this pre-customer, send them a bill, and would have capital to spend on whatever I needed, such as this new computer from Dell. The computer I’m using isn’t exactly terrible, but it’s not as fast as I’d like it. Compiling is a little slow, it’s got only a limited amount of RAM, and it’s just not an efficient development machine. It would be fine for running automated tests and whatnot, but running our product through the debugger is a bit painful at times.

So, a faster computer is something that’s debatably necessary. Without this PO, which I know we will receive at some point, I had other options. I could apply for business credit direct from Dell, I could finance it, I could pay it out of pocket with the expectation I would be repaid, or I could lease the hardware. I could also get a business credit card and charge it. Seems like a lot of choices until you realize that none of them are really viable.

What happens if the PO doesn’t come through? What if funding is cut? What if I need money for something else (which always happens). What if the company goes out of business in 6 months and I’ve leased the hardware? Then I’m stuck with a payment for a computer that is meant for a business that doesn’t exist. Granted I keep the computer, but it’s no longer a choice of buying the computer. You have no other option. It really comes down to the fact that we would be depending on an income that simply isn’t there yet.

After anxiously awaiting for the PO based on the initial demo, I decided that it would be best to simply wait till the money was deposited into the Moon River bank account. And once the money is in the account, I will spend about $100 to upgrade the current development machine I have with an additional 1Gb of RAM. As I said before, the computer isn’t terrible, but it doesn’t have a lot of memory either. Adding RAM is very cost effective, uses comparably little capital, and will produce far better results for the money than a new computer. In addition, we’ll have money for other things that we really need, such as new installer software because Visual Studio’s built in deployment project really isn’t that good.

The bottom line is that you need to keep your expenses in check. If you can’t pay for something out of pocket and still leave the business with a reasonable amount of cash in the bank, then perhaps you should think twice about making the purchase. Note, that this is really related to capital expenditures, rather than salaries. Office space, network connections, and other utility costs typically can be avoided only so much. See if you can make do with sub-par hardware, or see if you can get a decent deal off of Ebay if you really think you need it.

You can work out of your basement for a while to help save money. High speed connections are almost a must, so if you need to spend money, here is the place. I would never choose anything other than broadband internet access. It would drive me absolutely insane. To some people, this wouldn’t seem like a big deal. But everyone has their pet peeves and slow internet connections are one of mine.

As your income grows, so can your expenditures. Just remember that on the balance sheet, if the cash on hand ever hits zero, you’ve got some serious problems. On the other hand, if your revenue stays at just above zero for a while before it moves at all, that’s not so bad. You’re bound to incur some corporate expenses before you start making any money. This is to be expected, but be careful not to get in over your head. Debt is a slippery slope for anyone, and it’s so very very tempting to spend money that you don’t have because you think you’re going to get it. It may not happen.

Tempt yourself with this thought instead. Is this purchase absolutely necessary, or can it wait until you have thousands of dollars in the bank? There will be times you must deviate a bit and splurge on a new software package that will really help you out. But in my experience, probably half of the expenditures you want to make in the first 3 months of business, are expenditures that you could safely ignore and will do better as a business because of it.


Is protecting shareware against pirates worth the expense?

Posted in All Articles, Business on September 2nd, 2005 by Mike Taber – Be the first to comment

Software piracy is rampant. As the owner of a software company, it is in my best interest to protect our software from being pirated, used illegally, or used past the trial expiration date isn’t it? Every copy of software that someone pirates is money that we don’t receive. That is money that we could have used for additional research and development of new products. It is money that we could pour back into our products to make them better. It is money that could be used to market our products, to increase our sales and market share. Most of all, it is money that could be used to expand our business. So we should do everything we can to prevent our software from being copied and make sure everyone pays for it, right?

The answer is not necessarily yes. While forcing people to pay for your software is typically the most powerful incentive for using strict copy protection schemes, there are often opposing incentives, alternatives, and consequences which are overlooked in favor of this quest for cash.

Market share is by far the most meaningful and most powerful reason for not strictly enforcing copy protection. One prime example is WinZip. Everyone knows what this is, what it does, and why it is important. With a few mouse clicks, it can reduce over four hundred megabytes of log files to under thirty. The price tag is a mere $30. How many times have you used this software, and have you ever paid for it? Chances are you’ve used it plenty and never paid for it.

Can you name three other commercial software applications that perform the same function as WinZip? If you can, then you’re in the minority. The zip file format has become so prolific and widespread that very few people are even aware that WinZip is just one of a handful of applications which can handle zip files. This is especially true when it comes to people just learning how to use a computer for the first time. The makers of WinZip hold a considerable market share over their competitors, and it is not likely to change in the foreseeable future. It is a direct result of their policy of not enforcing copy protection on their software. The ability to zip a file is built directly into Windows XP, yet people still use WinZip instead of XP to zip their files.

An alternative to a strict copy protection scheme is to simply not distribute the full version as shareware. Many customers are leery of purchasing software from a small, internet only company because if it goes out of business, they have nowhere to turn for support. Their investment is gone. If they change machines, they need help moving their license from one machine to another. Distributing an unprotected executable after the sale is becoming more and more popular as a distribution option. This allows the customer to freely install the software to any computers he wishes, putting the power back into his hands. He feels honest because he has purchased it, can install it freely, and you’ve still been paid as a developer. This is slightly different than the typical licensing model, but many end users seem to appreciate this.

The third powerful reason for not strictly enforcing copy protection is end user complexity. If the copy protection scheme is too complicated, many users simply won’t understand how to activate their software and will become frustrated enough to search for alternatives or demand a refund. Questions from users result in tech support calls, which cost the company money. In an application which sells for several hundred dollars per license, it is worth the time investment to support many calls. For a product under $30, it is not.

It is important to realize that you have three customers: those who will pay for your product, those who will not, and those who might pay for it. The first group is guaranteed income. The second is guaranteed to pirate and never pay for your software. The third group should be your target. Copy protection does not need to be difficult or involved. It should discourage casual copying, encourage people to register, and above all, make the customer feel good about paying you for your hard work.