Introduction
Yesterday, I was scheduled to give a talk on how to start an internet business to my Tech Entrepenuership class with Dr. Brian Lilly. 3 minutes into the presentation though, the projector turned off and the computer shut down.
A couple of people in the class expressed interest in my presentation though, so I thought I would write down my notes and my thoughts here and send them the link. If you're one of those people I hope you enjoy.
Caveat: I am by no means an expert in this area. I've never even started an internet business. Still, I have some experience in programming and IT issues, so I can help with some guiding advice.
By the end of this page, you should know all you really need to know in order to get started with your internet business.
Finding a programmer
Before you find a programmer, you first have to understand that programmers are expensive. To see an example of why, consider the following images:
The above image is an exploded schematic for an engine. Notice all the fiddly parts that are needed to keep the engine running and running well. If a single engineer could hold the entire system in his head at one time and understood how each part worked, they would be extremely sought after.
Now, look at this class diagram taken from
http://thedailywtf.com, taken from a software system that helps manage customer billing:
When a programmer is working with a software system, they need to be able to keep all this information in their head at one time. The real enemy of software programmers is complexity. I often joke with friends that 50% of programming is being a textfile janitor-- you take complicated messes of text and clean them up.
Interesting facts about managing programmers
- Good coders work 10 times faster than bad coders - (Steve McConnel?, Rapid Development) The programmer who costs twice as much may be 10 times as productive. This is why big software companies go out of their way to get the best programmers. Programmers are NOT interchangeable.
- Over at codinghorror.com, I've seen references that the average programmer produces 20 lines of production code a day. While I don't think this number is particularly accurate, it's often quoted to show people that programming is slow. All the complexity of modern systems really gets in the way of doing your work. I'll sometimes spend days reading and thinking without writing a single line of code.
- Software estimation is the hardest part of writing software. - By necessity, every software project requires that the programmer to solve a problem they nothing about and have never done before. If a programmer gives you an estimate for a software project of any size immediately after hearing your problem, they are either naive or lying.
- Adding people to a late project makes it later - This is well documented by Fred Brook's infamous Mythical Man-Month. Basically, as you add people to a project, the communication overhead increases, which causes organizational chaos and slows things down.
If you want a programmer for your website, you want someone who:
- Communicates well and often - Communication is the root of all problems in software engineering. Not only do you need someone who can explain things clearly, those who can explain things clearly often make the best coders. After all, the best programs express their instructions in such a way that both computers and humans can understand them.
- Doesn't give immediate estimates - really, this shows sophistication. Planning a software project of any size is doomed to error. At the beginning of a software project, you really have no idea what you are getting yourself into. You can make general plans, but DO NOT set them in stone.
- For example, let's say you wanted to build a bridge on Mars. Would you trust any one who gave you an estimate off the top of their head? Of course not! Our information is limited, getting there is a problem, and you really have no idea what kind of issues you're going to face along the way because it's never been done before.
- Is enthusiastic - For a start-up, you need someone who will go out of their way to make the system good. Programmers do best when they are emotionally or intellectually invested in what they are making. This is one reason that Open Source software does so well-- each project self selects for the best coders for that project.
- Is willing to disagree with you - DO NOT hire someone who rolls over and agrees to every feature request. Often times, the features you don't really care about will take 70% of the programming time. You need someone who will explain the ramifications of what you are requesting so you can make the proper business decisions.
That said, here is my recommendation for attracting a technical person to your cause:
- Learn how to do it yourself - If you are an engineering student, you're bright enough to program. Also, when you're the only person in the business, it's impossible to mis-understand yourself. You don't need to be an expert to get started, and the fact that you're interested in the project means that you're one of the best candidates for the job.
- Attract someone in exchange for joint ownership - Really, if you're considering starting an internet business, you probably won't go anywhere unless you have a technical person anyhow. Promising joint ownership does a couple of things for you:
- In ensures that you'll get someone who is invested in the project
- It assures that you'll get the best technical advice that person can give
- It requires no money.
- Hire a programmer for a small task, evaluate their performance, then start a relationship - If you do need to hire someone, don't commit a huge project to someone you don't know. If you have small self-contained projects that someone can work on, farm those out first to friends and places like RentACoder?.com. Once you find someone this way that communicates well, work up to a bigger contract. If you're going to do outsourcing, this is the way to start.
Getting a domain name
If you're starting a business, you don't need to know too much about how the domain name system works, but I recommend skimming the
Wikipedia article quickly. Basically all you need to know is that there are companies called registrars who will add your domain into the lists, for a fee. This entry tells the world what computer they should go to in order to get your IP address.
I strongly recommend getting your domain name and hosting provider separately. If the hosting provider forgets to pay the domain name bill, you loose the name. It's that simple. You want to be responsible for those payments so this doesn't happen. Furthermore, most domain name/hosting provider options take advantage of people without too much technical knowledge. You can get better rate on domain names and hosting if you buy them separately. Rarely does a company specialize in both.
Facts:
- an MX entry says "Send main addresses to this IP".
- When you get a hosting provider, you'll have to tell the registrar to that you want to use their nameservers. The hosting provider will provide you with the necessary information.
- The data you enter in on the domain registration form can be seen through a "whois" query, so be careful what email address you select.
- Registrars can request any domain name they want for 5 days at no cost.
Tips:
- DON'T use Network Solutions, they abuse their registrar status by automatically requesting any domain name you search for 5 days so you can't buy it from competitors.
- If you loose your domain name, DON'T visit the site. If a site doesn't get hits, most registrar front runners will abandon it after their free 5 day trial period.
Reference: I used
GoDaddy? (recommended by a friend). 2 years: $14.30 with
http://retailmenot.com coupons. The interface looks ugly, but they have good rates and are ethical, unlike registrars like Verisign and Network Solutions.
Figure out your server requirements
After you have reserved a domain name, you'll have to buy some server space. Ideally, you would be able to host the entire site from your home cable connection, but most cable providers block port 80 (the web default) unless you upgrade to a business plan which is prohibitively expensive. If you're just getting started, you'd probably be better off renting space from a hosting provider.
Alternatively, you can set up your own hosting. This gives you far more control, but you'll end up spending much more money. Furthermore, you'll need all the server hardware and someone to maintain that server, along with a fast internet connection. If you want to start up on the cheap, I highly recommend going with a hosting provider instead. For $10/month you'll have technical people who will keep the server running and answer all your questions. Furthermore, by the time you outgrow a hosting provider your business will be so successful that you'll already have technical staff and the money for hardware.
Here are a few things to keep in mind when looking at hosting providers:
- Storage - Don't worry about it. For a static webpage, 5 GB is more than enough. Extensive databases (needed for managing thousands of customer records) can take up some space, but you likely won't need to worry about this when you are starting out. However, if you are planning on hosting mp3 files or video files, you'll need to consider your storage requirements.
- Bandwidth - plan for 3.5K/html page and 15K/image. Start small and make sure you can upgrade. Again, if you are hosting streaming video or audio, you might need to plan for higher bandwidth. Otherwise, you shouldn't run into problems with most default bandwidth packages unless your site is enormously popular. At that point, you should be established enough that you can afford and manage an upgrade.
References:
- This site takes up about 100 MB of storage. It has my entire life history for the last 2 years and all of my fiance's photos for 2 years.
- Because most web-sites never come close to their storage or bandwidth allotments, most hosting sites oversell their storage and bandwidth capacities. Make sure your site can deliver what they promise in case your business grows.
- I use A2Hosting?.com, it was recommended to me by a friend. I've heard good and bad things about dreamhost.com.
- A2Hosting? allows me to login to the machine like it was a local computer (they give shell access).
- I pay $8 month for 500GB storage, 500GB bandwidth. I've never come near my limits.
Making backups
Most people know they should back up their computers, but hardly anyone I know does. For your personal computer, this is ill-advised but OK. In the worst case, you will loose your personal data. By spending exorbitant amounts of money you can recover data that you can't live without.
For an internet business however, backups are absolutely mandatory. Backups can mean the difference between success and going out of business. Without backups, you can't recover from disasters quickly. Without backups, you run the risk of loosing customer records. Without backups, one glitch from you or the hosting company can permanently destroy everything you've built. Not backing up your internet business amounts to pure negligence, and if you don't do it you deserve to go out of business.
Treat backups like business insurance-- for a low upfront cost, you can save yourself from the worst catastrophes.
Recommendations and tips:
For small sites, I recommend
Amazon S3. This is a pay-as-you-go storage service, and it's prices are ridiculously cheap for a small website. Figuring out how much it will cost you can be challenging because they charge you for uploading, downloading, and storage per month. However, if you run nightly backups, you're looking at a cost of about $0.80/GB/month. That's right, I pay less than 25 cents per month to back up this entire site. Furthermore, Amazon S3 is massively redundant. Your data will be mirrored on computers in data centers and bunkers across the united states. For small sites, it is absolutely the best option available.
I have another page on
SettingUpNightlyBackupsWithAmazonS3 , if you want a full walk-through of my solution.
For larger sites with lots of media, and for your personal computers, I recommend backing up your data onto external drives. Specifically, I highly recommend the
Thermaltake Blacx for backing up your data.
This wonderful device allows you to plug in a hard drive like a video game cartridge and connects it to your computer through USB. No special software is required. The Blacx will set you back about $40, and a 750 GB SATA hard drive currently costs about $200, with prices dropping all the time. When you fill up that hard drive, you can buy another and swap them out. The Blacx effectively turns hard drives into 1 TB diskettes you can buy anywhere.
Collecting market research
Server logs tell you
- Where people are coming from
- What links they are clicking
- Country and State
Recommendations
- Google analytics: free
- Piwik: free
Getting paid: ads
Auto-generated context ads: Google
AdSense?
- No payments until $100 reached
- Can’t host other ads
- Infraction=banned for life
- Best case scenario: $500/mo
Affiliate programs
Offer advertising directly…
Getting paid: credit cards
Using services
- Charge flat fee + % of sale
- Paypal, Yahoo, Google Checkout all less than 2% of sale.
Making your own: Not worth it initially…
- Secure SSL cert: $100/yr
- Credit card software: $200
- Need merchant account through bank
- VISA: $30-$60/mo
Advertising
Search Engine Optimization
- 40%-60% of people only click on the first page of results
- Can be seedy
- Link to good sites,
- submit your site to social websites (del.ico.us, Digg, …)
Advertising on the Internet
- Google AdWords?
- Affiliate programs
Summary
Advantages
- extremely low capital expenses
- modest time investment
- no distribution problems
Disadvantages
- labor can be expensive
- can't live off advertising alone.
Minimum steps needed to start an electronic business
- Get a domain name
- Figure out your server requirements
- Set up backups
- Develop the website
- Prepare analysis tools
- Get Paid:
- Set up ads
- Set up payments
- Advertise your site
- SEO and google rank
- Impact from ads
- word of mouth
Get a Domain name
Figure out your server requirements
Set up backups