Archive for November, 2005

Don’t hire problem employees

Posted in Daily Entries on November 26th, 2005 by Mike Taber – 1 Comment

This past week, I was visiting my parents in upstate New York for Thanksgiving day. There, I noticed an article in the newspaper which caught my attention. It had nothing to do with software, business, or even world news. It was about the Philadelphia Eagles and their arbitration settlement with former wide receiver Terrell Owens.

The Eagles had recently suspended Owens for four games, forcing him to forfeit all pay for those games. After this suspension, they deactivated him for the remainder of the year and are looking to trade or release him before March. If they trade or release him before that time, they will not have to pay him a $5 million bonus. All of this has come about because of what kindergarten teachers refer to as “does not play well with others”. Sure he’s a great player, but he’s not a great team player. I don’t believe that this has been any big secret, and Philadelphia knew this when they signed him onto the team.

Owens, unhappy with what was being done with him declared that he wanted arbitration to help right things, as was his right in the agreement he signed. The arbitrator named Richard Bloch sided with the team, stating that due to Owens behavior, the team was well within their rights to terminate the contract.

The part that I found interesting was what happened after the arbitration. Gene Upshaw who is the Executive Director of the players association felt that it was such an outrage, that he “said he would have Bloch removed from the list of approved arbitrators next month when both the union and management are given that option.”

So, let me see if I have this right. Two parties get into an argument and go to an independent party to decide what’s going to happen, and what’s fair. The arbitrator sides with the first party, and the second party will seek to have the arbitrator fired because he didn’t side with them instead.

The very fact that either party has the opportunity to fire the independent arbitrator is a bit ludicrous. That’s why they’re called ‘independent’. In the US government, there exists a Supreme Court which acts as the independent arbitrator, and nobody has the authority to fire them once they are in place. Their terms in office last until they step down or they die. This has caused problems at times when a president is given the opportunity to stack the court with multiple candidates. However, the essence of the arrangement is that they are independent, and can make decisions based on their own judgement, rather than making decisions based on fear of retribution.

Regardless of how interesting the fallout of this situation is, the fact remains that the Eagles could have avoided this entirely had they done one simple thing. Simply not hired Owens to begin with. It is a well known fact that once you hire someone, it is very difficult to get rid of that person unless they do something terribly wrong, as in the case of Owens.

Employees in the USA are divided into two classes:

1) at-will employees
2)
just-cause employees

An at-will employee in the USA can be terminated at any time, and for any reason – or no reason at all – and the courts will generally not intervene to protect the ex-employee from allegedly unfair treatment by the employer.

Just cause employees can be dismissed from employment only for a good reason, such as poor job performance by the employee.”

-Dr. Ronald B. Standler

Owens was fired as a result of ‘just-cause’. Unfortunately for the Eagles, he had been causing problems within the team long before he had given them ‘just-cause’. I simply don’t know what the laws are in Pennsylvania in regards to just-cause and at-will. However I do know this.

If you don’t hire someone, they can never cause a problem.

I think that’s a very important piece of advise that many companies overlook. Nitpickers can argue that discrimination practices during the interview process can indeed cause problems even if you don’t hire someone. However, if your company is discriminating on the basis of race, religion, gender, whether you’re a cat or dog person, etc, then you have problems with the employees you already have and need to address those first.

In the case of the Eagles, the antics of Owens are well known and well documented. It has been said in the past that he is not a team player and football (American Football, for those of you outside of the US) is a team sport. People need to work together to accomplish their goal. Individual achievements are great, but they’re overshadowed by the accomplishments of the team. Great teams make players great, not the other way around.

The bottom line is if there are questions about the long term viability of an applicant, be they technical problems, team player problems, or simply that the person is lacking in the fundamentals, look for someone else. There’s certainly not a dearth of available developers out there.

Share/Save/Bookmark

You have exactly 3 customers

Posted in All Articles, Business on November 16th, 2005 by Mike Taber – Be the first to comment

As unfortunate as this is, finishing the code for your software is really only half the battle when you’re launching products. There’s a ton of work that still needs to be done once your code is complete. For Milestones, I need to finalize the code obfuscation and do the installer work.

As a .NET application, Milestones is somewhat subject to reverse engineering. Similar to Java, the .NET framework uses an intermediate language, for which there exist tools which will reproduce your code in readily understandable form. Is this step really necessary?

Technically, no. It is not. However for the good of my bottom line I am investing in tools which will obfuscate the source code so it cannot be easily reverse engineered. Oh, of course there will be the die hard people who will do it just out of spite, but these are just one of your three customers that I’m about to elaborate on.

If you develop software, you definitely want more than three customers. You want hundreds, if not thousands or tens of thousands. The fact of the matter is that there are only three types of customers. Let me clarify what constitutes a customer. A customer is anyone who uses your software, regardless of whether they paid for it or not.

Yes, you read that right: “whether they paid for it or not”. Many of you will find those words to be very strange, even blasphemous. How dare I suggest that someone who doesn’t pay for software they are using is to be considered a customer! Before I’m burned at the stake, let me clarify. Anyone who uses your software because they like the product is probably telling their friends, relatives, and peers about your software, thus doing marketing for you. Regardless of whether they actually purchased the software, you cannot underestimate the value of market presence, and shareware is all about market presence. If you don’t believe me, try naming three other products which perform the same function as WinZip.

Back to the topic at hand, you have three types of customers. First are the honest users. This is your bread and butter income. They will buy your software because they don’t like the idea of cheating on their taxes, suffer sleepless nights if they go two days past the required registration date, and are generally nice, honest people.

Next, you have the dishonest users. These are the ‘customers’ who have not and will not ever pay for your software. This can be for a variety of reasons. Maybe they have the whole open source idea wrong, don’t like you personally, or simply can’t afford to buy your software. In any case, no matter what you do, these people will not support your business by paying for the software.

Finally, you have the rest of the population, which is several times larger than the previous two categories combined. While most people are generally honest, if you give them a way to be dishonest and get something for free, they will choose the easy route and not pay for your software. As a developer, it is your job to convince these people that it is in their best interests to support your development efforts and purchase a license instead of obtaining a copy of your product from their friend.

And there lies the problem. Colin Messitt, a shareware developer did an informal study in which he produced two nearly identical copies of a shareware printing application that he published. In this application there was a print option. As a control, one version of the software printed every fourth page as an order form for the software, requesting that the user purchase a registered copy. The second version of the application claimed this crippled functionality, but did not mangle every fourth page like its counterpart.

He arranged his website to allow every other download to alternate between the two versions, providing a relatively equal distribution of the control application, and the uncrippled version. After nearly a year of steady sales, he determined that the registration rate on the crippled version was more than 5 times the registration rate of the uncrippled version.

His experiment shows that statistically, registrations are five times higher when a user is forced to register software to continue using it unhampered. This statistic points to two related conclusions. First, without a mechanism to enforce closure of a sale, a developer stands to lose a lot of money. Second, it shows that honesty on the internet is not nearly as widespread as it used to be. Some of the early shareware developers merely placed a message in their software asking for registration fees and were flooded with checks. Now, people can’t even be bothered to open their wallets to pull out their credit cards.

As a shareware developer, it is up to you how to enforce this closure. It can be with time trials, limited functionality, randomly changing functions, or just about anything else. But this simple experiment is estimated to have cost over $17,000 in lost registrations. It’s up to you to decide whether or not adding a few registration incentives is worth the time and effort.

Share/Save/Bookmark

Funding your startup

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

“An advantage of consulting, as a way to develop a product, is that you know you’re making something at least one customer wants. But if you have what it takes to start a startup you should have sufficient vision not to need this crutch.”

-Paul Graham

I think that Paul has written a great article, and most of his points are well made. But with all due respect, I have to disagree on his final conclusion.

Sufficient vision alone is not enough to start a startup, nor to keep you funded until money comes in. The very reason behind starting out as a consulting company and making the transition to a product company is that you need cash to get you through, and consulting is a very good way to get it.

If you have financial obligations to meet, such as a car payment, mortgage, etc. then you need cash sooner rather than later. It’s all well and good to have an incredible vision, and loads of customers who would buy your product when you actually launch it, but until you do, your vision is all you have.

I rather doubt that I could walk into the local branch of my mortgage company and ask to pay them with my corporate vision. It’s simply not going to work out in my favor. If you don’t believe me, try selling a million dollar idea on eBay. Let me know how that turns out for you.

Share/Save/Bookmark

Glamorous software doesn’t equal instant success

Posted in All Articles, Business on November 6th, 2005 by Mike Taber – Be the first to comment

Let’s face it. Building games is cool. It’s one of those software disciplines that until recently, was something that you had to pick up on your own and with a little luck, land an entry level job with a game development company. In recent years, colleges and universities have begun to offer concentrations in game development. Unfortunately, it doesn’t make the game industry any easier.

Back in 2000, it was predicted that the game industry was about to take off. Sometime in the last year or two, the revenue generated by the game industry has surpassed the movie industry. Now, think about that for just a minute. The computer and console game industry has only been around for some 25 years or so. The movie industry has been around for decades. The game industry has been growing exponentially over the past couple of years. You would think that this means it should be a great place to be.

I don’t believe this to be the case. Interest in this sector has grown so much that major players have entered the market and are making life difficult for all of the smaller ones. Electronic Arts is one of the largest game publishers in the world. Other players include Sony, Microsoft, Nintendo, Sega, the restructured Atari, and others. If you are starting a new business and are short on seed capital, competing with these companies is an exercise in futility.

There are some obvious, and not so obvious ways around this problem. The first would be to become larger than them. Good luck growing your startup into something larger than Microsoft’s Games division. I wish you the best of luck, but I just don’t see it happening.

The second option is to partner with one of them while developing your games. This takes quite a bit of effort and is not an easy path to take. Just getting them to talk to you is difficult enough. Writing a game is not a joke either. It can take years of effort to finish a game that they would be interested in. The worst part is that funding that development long enough to get a semi-finished product for them to look at is next to impossible.

I’ll put it out there right now for those of you thinking that a game idea alone is enough to get a publishing contract. Your ideas are worthless. In fact, they’re worth so little, that it’s amazing that publishing companies don’t charge you just to listen to them. If you don’t believe me, send emails to 10 game companies, telling them that you have an idea for the next great game that will make Quake 4 look like a two year old wrote it, and wait for their responses. If you want to kick it up a notch, ask them to sign a non-disclosure agreement as well. When one of them agrees to pay you for your idea, let me know. I’ve got a notebook full of them, after all.

A third option includes doing contract development work for a game company. It will get you some experience that you may need, as well as make you some decent industry contacts that you can use later. Still not a great option though. Landing contract jobs for game development is difficult unless you know people, which is sort of the point of taking a contract job.

Starting small is definately a viable option. It used to be that small puzzle games were great games to make. The shareware market suffered from a severe lack of decent puzzle games. It’s a market that is pretty neglected by the large publishers because it includes mostly casual gamers who don’t play games a lot, nor do they spend a lot of money on a regular basis for games. Contrast that with the high end gamers who buy a new AAA title every month, or as much as every other week. But a few small game developers have cornered this market as well, and have done a very good job at it.

Developing small games when you’re starting out is a great idea, but it is a path even more fraught with peril than most others. The problem is one that most game developers don’t think about.

There is a very big difference between selling games and selling other types of software.

Go back and read that again, because it’s important to realize this. Done? Ok now. The biggest difference between writing games and writing business software is the necessity of the software and the demand for it. Games are not necessary in the marketplace. There is certainly a demand for them, but they are not a requirement for anybody. When you sell a game, you are competing against every single game that is in a similar genre. When you sell business software, you are competing against only the software that provides the same functionality that your software does.

Business software solves a business problem, and businesses typically have the money to solve their problems. This means that even if your software doesn’t do exactly what they need it to, if it comes close enough, they will purchase it anyway. When a customer downloads a game, it is because he is bored and wishes to solve the problem of boredom. If you do a good enough job on your game, you will cure his boredom and he will buy it. But you need to make an extremely good first impression. Ever buy a game in a store because the box looked cool, only to get home and find out that the game sucks? I know I have.

I put far more faith in shareware games than I do in retail games for that reason. Flashy graphics are simply not enough to make a game good. Unfortunately, they’re often enough to sell it. This is why shareware games have more difficulty selling than retail games. For retail games, you either have to rely on the opinion of a friend, a review, or what it looks like on the box. On the other hand, shareware games give you the opportunity to evaluate the game to see whether you like it or not.

Now this alone is not enough to differentiate business software from games. The second component that you absolutely must keep in mind is the shelf life. Retail games have a very short shelf life. Perhaps six to nine months. Shareware games have a much longer life, which can span a year, to several years. There are exceptions to this of course. Recently, I purchased a copy of Civilization III, nearly three years after it was originally released.

Business software is in a realm unto its own when it comes to shelf life because as time goes on, it can be made better, and expand its market as a more attractive product to other companies. Oracle has hit version 11. Windows has been around for around 20 years now and has undergone a number of version upgrades. Rhinosoft makes some great products, including an FTP client, for which they have passed version 11. The software I’m using to write this article is called CityDesk, and it has reached version 2.0.

The biggest problem with a game is that you have no idea when you’re making it if you will ever get to a version 2.0, which is typically a second iteration of the game because the first one did so well. You are taking a huge risk in writing the game to begin with because if it isn’t well received or if it doesn’t do well enough to recoup all of your development costs, you’re going to lose money on it.

Now, I know that everyone thinks that if they write a game, it’s going to be different and their game is going to be awesome. But having worked with a number of different games while I was running Game Thoughts, it’s not nearly as simple as it sounds. Not only is developing a game hard work, once you’re done with it, you’re not really done. You absolutely, positively must have it tested, and it must be tested by your target audience. Basically, you need your beta testers to not only find bugs, but to tell you what’s wrong with the game, why it won’t sell, and what sucks about it. Then you need to tweak it, rewrite some sections, add content, and a whole mess of other stuff before you can release it.

Now, there are some types of games that you can get away with releasing things like add on packs, expansion packs, etc, without a huge amount of extra work. But it’s fundamentally different than releasing a new version of a business product. So before you take the plunge to write a game, make sure that you remember that if this is going to be your first project, it could also be your last. Make sure you have a contingency plan. Or even better yet, start off writing other types of software. As the company grows, you can expand into different markets, including the games market.

Games are definately a cool place to be right now. But if you’re losing money faster than you are making it… well, let’s just say that the results aren’t always pretty.

Share/Save/Bookmark

Volume III: To build or to buy

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

Starting anything isn’t easy and building a new business has historically been fraught with peril. I don’t have any hard statistics on how many fail. Those statistics are difficult to come by because small businesses are not required to file public financial statements. The best you can generally do is look at the number of businesses opened and closed during a given time period and do a bit of guesswork.

These numbers alone still need a bit of interpretation, since a business can be sold for a profit by the owner, or it can close and declare bankruptcy. It’s also possible that a business can remain open for years without really turning a profit, but not losing money either. There are other scenarios that can materialize, but these are the most common.

I’ve heard some failure statistics in the past, but nothing concrete. It’s just a conglomeration of speculations by guys with PhD’s or Economics degrees. Everything I’ve read points to a similar trend. The first few years, the failure rate for a new business tends to be quite high, regardless of the industry. As time goes on, the odds of a small business surviving become much higher. I suspect that this is partially due to the amount of debt incurred within the first couple of years, coupled tightly with the ability to make sales as a new business. It is certainly related to the number and type of risks that the owner takes during that time.

As the business owner learns about the industry, and how to be successful in that industry, the knowledge gained eventually becomes more valuable than the money the business is making. If this sounds counter intuitive, don’t worry. It is. In the early stages of a business, establishing income is more important than knowledge. Without cash, you can’t pay your bills, you can’t market your products, and you will quickly go out of business. More importantly, you can’t grow your business if you’re not making money. As time goes on, the role of knowledge and cash gradually reverse until knowledge is more important. Your knowledge of the industry will allow you to make better decisions, keep you in business longer, and make exponentially more money which helps to grow the business.

In the early stages, it’s quite possible to make a bad decision, spend too much time or money on a project that never stood a chance, and promptly go out of business. But it is early mistakes that make a business stronger and more viable. In fact, they can save you from a spectacular demise later on when you have tons of money in the bank and aren’t paying close enough attention.

You must make as many small mistakes as early as possible while avoiding the large expensive ones. Each of these mistakes will be a learning experience, so whenever you make a mistake, be sure to pay attention to why things went wrong, how you can avoid it in the future, and what you could have done differently that would have resulted in a success. As a new business owner, you should expect to make mistakes and realize that there is an associated cost to pay for each of them, because no business has ever succeeded without making some mistakes along the way.

The cost of these mistakes will come in two forms. Time, and money. Obviously, time is money, but given the two of them, I would prefer to spend money, rather than time on nearly any given occasion, because I feel that time is far more valuable. If I spend $2,000, I can eventually make that money back. But once you spend time on something, you will never get that time back, barring of course that time machine my future self has yet to send to me. I can’t wait till I get my hands on that lazy bastard.

So, let’s say I need to write up a functional spec for some software I’m developing. I have a couple of different options. I can either write my own word processor with only the functionality that I need, go with an open source solution, or I can buy Microsoft Word like the rest of the world.

Now, I have no doubt that I could write a word processing software package. But at what cost? Neglecting the extreme stupidity of challenging Microsoft in their home territory, how many hundreds of thousands of hours would it take me to write that software? I can get Microsoft Word for around $229, and the whole suite of Office for the list price of $499.

Let’s say I’m paying myself or another programmer $50/hour. Even if we shift the decimal place one slot and figure that I could satisfy the software needs of 10 employees for the one time cost, I’m fairly certain it couldn’t be done with only 100 hours of work. If you know someone who can write an entire software package that duplicates everything in Office in under 100 hours, drop me a line. I’ve got a job waiting for them.

I’ll be saving the merits of Open Source software for another article, so humor me while I skip that discussion right now.

Money is the other cost that you will run into. Every business spends money. Some of it is required expenses, such as computers, software, office supplies, and most importantly, paying your employees. Other expenses are calculated risks. Many programmers who start their own software company are not business majors. It will take a few attempts at some things to figure out what you need to do and how to go about it correctly. Each of these attempts risks failure and each of these failures will cost you money.

Whenever you make a choice to spend money on something for your business, you should run through a quick checklist of questions in your head.

  1. Is this something that we could do without?
  2. If this does not pay off, will the business have trouble meeting payroll?
  3. Will the business be set back by more than a couple of months if it fails?
  4. Could the time/money be spent later for this instead of now?

If you can answer ‘Yes’ to any of these questions, then you should seriously consider what you are about to spend your time or money on, because it could mean the end of your business. Now, this isn’t to say that you should never do something if you answer ‘Yes’ to one of those questions. It just means that you need to seriously consider the consequences of it not paying off for you. Remember that in the beginning, you will make a lot of decisions that can severely impact the viability of your business. One mistake can kill it outright. Your goal should be to make it past the first couple of years without making a mistake like that.

After you survive the first year of business, all the while putting money in the bank for emergencies and paying all of your bills on time, you are well on your way to owning a business that will provide you with an enjoyable and flexible career for years to come.

And that’s really the reason you decided to start your own business isn’t it?

Share/Save/Bookmark