Commercial Start-Up

Now that the UNIX workstation was on the island and the leased line to the Internet was up and running, the next thing to do was to work on our dial-up access.

Working with the Phone Company

A friend who ran an ISP in Cincinnati had told me that if I wanted to run a successful dial-up operation, I wanted a service from the phone company called circular hunting. Normally, a bank of telephones is put into what is called a hunt group. You might have a block of phone numbers, from 555-1000 to 555-1020. With normal hunting, a phone call to 555-1000 is always taken by the first phone in the hunt group that isn’t busy. But with circular hunting, the phone system remembers the last phone that it dialed and automatically dials the next phone number in the hunt group, whether the call to the previous phone number has hung up or not.

Circular hunting sounded like a great idea if you are running dial-up access with analog modems. Consider what happens if you have a modem that suddenly fails to answer new calls. If you have circular hunting, then you just lose one modem: the next caller gets the next modem. But if you don’t have circular hunting, then every caller will get the ringing modem, and nobody will get any of the other modems in the hunt group that are still good.

Lesson: Design your systems so that they will fail gracefully.

I called up NYNEX and tried to order a Centrex system with circular hunting. Unfortunately, nobody at the phone company knew what I was talking about. (A few months later, I learned that the reason nobody knew what I was talking about was that the service has a different name in Massachusetts from the one it has in Ohio. In Massachusetts, the service is called UCD—Uniform Call Distribution.)

Lesson: Know your phone company. Know its terminology, the right contact people, the phone numbers for internal organizations, and everything else you can find out.

I ordered a conventional Centrex system with four lines. Three of the lines, 696-6650, 696-6651, and 696-6652, would be in the hunt group. The fourth line, 696-6653, would not be in the hunt group. That line would be our business line.

Incorporating Vineyard.NET

In mid-August, the Internet cooperative got a third partner: Bill Bennett. Bill had been watching everything that Eric and I had been doing and he wanted a piece of the action. I also owed Bill a tremendous amount of money, because the wiring of the house had cost far more money than I had budgeted. Bill was willing to forgive the loan in exchange for a percentage of the Internet cooperative.

Around this time, I was coming to the realization that doing the Internet access provider as a cooperative wasn’t going to work in the long run. Unless we could make a profit, there would never be money to purchase new equipment and expand our capacity. Unless we could make a profit to hire somebody else, I would be stuck forever doing technical support. Bill thought that an aggressive commercial service could make a tremendous amount of money. Egged on in part by Bill, in part by my debts, and in part by a spate of Internet-related companies that had initial public offerings in the spring and summer of 1995 (at somewhat obscene valuations), the three of us incorporated Vineyard.NET and embarked on a slightly more aggressive service offering.

Our plans for offering service mimicked many other Internet companies that were starting at the time. We planned to let early adopters use our service for free for a few months. Then we hoped to charge a low introductory rate, after which we hoped to raise our prices once again to the actual level.

Initial Expansion

The first things that we needed were more phone lines and more modems. That required working again with NYNEX or, in our case, our NYNEX-authorized reseller. We told them that we wanted to have a fiber optic circuit brought from the central office to our location. But NYNEX wouldn’t do it: they said that the fiber demultiplexing equipment was not CPE—customer premise equipment. So instead, they brought a cable with 100 pairs of copper to our location. Bringing it required two huge trucks, five men, and shutting down the street for a day. We calculated that the whole operation must have cost NYNEX somewhere between $5,000 and $10,000. All of a sudden, things were real. Some company had spent real money in the anticipation that we would be paying our bills. And to do that, we needed to get customers and collect money from them.

I knew that one of the most expensive things for a technology-based company to do is offer technical support to its customers. Tech support is even more expensive than research and development, as research and development costs remain roughly constant, while tech support requirements increase as a company’s customer base increases. Another thing that’s incredibly expensive is advertising. So rather than build our own technical support group, we partnered with computer stores that were on the island. They could sign people up for our Internet service when customers bought computers or came in to buy supplies. It seemed like a win-win situation.

Lesson: Build sensible business partnerships.

The idea of partnering made a lot of sense. The island’s computer stores, after all, were already experienced in dealing with computer users on the island—the people who would be our customers. And they were also equipped to sell customers any additional hardware or software that they might need to make their computers Internet-capable. So we set up our systems so that our computer store partners would be able to create accounts on our machine. They would also collect sign-up fees. In return, they would get a bounty for each user they brought in, as well as a set percentage of each user’s monthly fee. We also set up a few of the island’s computer consultants as resellers.

Once we had our phone lines installed, we needed to figure out what to use for modems. We briefly looked at some rack-mounted modems made by U.S. Robotics and were scared away by the high prices. Although I wanted to use rack-mounted modems, it seemed that all we would be able to afford for a while would be discrete ones.

But which discrete modems? I bought some ZyXEL modems for a lot of money and they were having problems, so we started trying other brands. We settled on Motorola’s Lifestyle 28.8 modems. They seemed to work reliably and they didn’t give off much heat. Eric built a modem “rack” for them out of wood, with each modem tilted at a 45-degree angle so that the heat would vent out the back side. (Eventually, we switched over to rack-mounted modems manufactured by Microcom.)

We started offering service for free in August 1995. Our plans were that “charter” members—people who signed up before October 1, 1995—would be charged $20/month for the first year. Anybody who signed up in November would be charged $25/month. We wanted to keep our prices lower than $29/month—that’s what The Internet Access Company (TIAC) was charging. TIAC offered dial-up access on Martha’s Vineyard, and it was important for Eric that we charge less than they did.

Accounting Software

The next thing we realized was that we would need to have some sophisticated software for keeping track of user accounts.

It wasn’t my intention to write a complete customer billing and accounting system in Perl. I really only wanted to have a system for keeping track of who had paid their monthly bills and who hadn’t. I wanted customers to be able to check their balances from the Web. And I wanted to be able to send customers their bills by email.

Lesson: Use your web server for as much as you can.

I had run a business before, back in 1992, and had used QuickBooks to keep track of the business books. QuickBooks is made by Intuit, the makers of Quicken. QuickBooks can easily keep track of a customer-driven business with hundreds or even thousands of customers. But QuickBooks didn’t have any easy way of importing lists of invoices that we might generate on the UNIX system, and it didn’t have any easy way of exporting the data for view on the Web. So in the end, I used QuickBooks for the business’s main books, but had to create my own system for managing user accounts.

It turned out that writing our own accounts management system was the right idea: it gave us the power to tailor our business policies and terms however we wished, knowing that we could easily modify our billing software to accommodate our desires.

For instance, we wanted our resellers to be paid a 20 percent commission on the accounts that they owned, but only when their customers actually paid their bills. That wasn’t a problem: I simply modified the program that received payment so that when a check was received on a customer’s account, the reseller was automatically credited with the commission.

Lesson: Have programs be table-driven as often as possible.

From speaking with my friend in Cincinnati, I realized that we might have dozens of different kinds of accounts and special deals within a few months. It had become an accounting nightmare for him. Rather than repeat his experience of building this logic directly into our accounting system, I created an accounting system that was table-driven. Each customer had a different account type. The account type keyed into a database that included information such as the account’s sign-up fee, its monthly fee, the number of hours included in that monthly fee, and the cost for each additional hour.

Lesson: Tailor your products for your customers.

We also created a special kind of account for small businesses called a “group” account. This account allowed a business to have several Internet accounts that would all be charged to a single bill. Businesses were charged on a different scale from residential users—a lower monthly fee, but a higher hourly rate. We did this because many businesses seem more comfortable with a pay-as-you-go approach. (Or perhaps it’s because businesses find it easier to let these charges creep up when they are not paying attention.) At any rate, going after business users made sense, because they had a peak usage time between 9 a.m. and 5 p.m., and the peak residential usage time was between 5 p.m. and 12 p.m.

We did not funnel the group accounts through our resellers. Instead, we resolved that we would provide tech support to a single person at each business; this person, in turn, was expected to provide first-line technical support to the other members of his or her organization. Once again, having built our own account management and billing software made this easy to do—it was just a matter of coding. The final system allowed the group account managers to create or delete accounts for their own organizations without having to bother us. The managers could even change the passwords for people who had forgotten their passwords—but only for people who were in each manager’s particular group.

Lesson: Build systems that are extensible, and always practice good software engineering.

I wrote all of the software in the Perl 5 programming language. Perl is a great language for building large applications relatively quickly, and it runs reasonably fast. For a customer database, I used the UNIX file system. A large directory called /vin/accts has a subdirectory for each user on our system. Inside each user’s directory is a series of files, each file containing a different piece of information about that user’s account. So the account type for Eric’s account was kept in a file called /vin/accts/ericx/account-type, whereas the name of the reseller that owned Tom’s account was kept in a file called /vin/accts/tom/adm/usersm/owner.

As the system evolved, we developed three kinds of Perl programs. The first was a set of library routines that were used by all of the systems. These library routines managed the account database and the billing system. The second was a set of CGI programs that could be used to perform routine chores, like looking at a user’s bill or adding an account. The third was a set of Perl programs meant to be run from the command line. These were administrative programs meant to be run by Eric or me.

Lesson: Automate everything you possibly can.

In writing all of these programs, I had a simple rule. The first time I had to do a task, I would do it manually, simply to be sure that I understood what was wanted. The second time I had to do something, I would do it manually again, to be sure that I was doing it correctly. The third time, I would write a program.

Following this strategy, we soon ended up with dozens of small but useful programs. We didn’t forget about them, because most of them were on a web page. We set up the Vineyard.NET web server so that users, resellers, and administrators would all use the same URL to access the system, http://www.vineyard.net/start. The system automatically looked at the username of the person who was accessing the web page and made the appropriate commands available.

For the first few months, I had but a single regret about the design of the system: I wished that instead of using the UNIX file system, I had used an actual relational database, or at least a Perl DBM file. But as time went on I realized that the decision to use the UNIX file system as our database was a pretty good one after all. Certainly the filesystem could handle it: I’ve been on UNIX systems with thousands of users, and they store all of the user home directories in a single directory. Furthermore, using the filesystem meant that we could use all of the standard UNIX tools, such as grep and find, to manage our user accounts database. I figured that when we hit 10,000 customers we would probably have to do something else. But quite possibly, all we would have to do would be to add a second layer of indirection, changing Eric’s directory from /vin/accts/ericx/account-type to /vin/accts/e/ericx/account-type.

Publicity and Privacy

With this basic business idea in place, we called up The Martha’s Vineyard Times, one of the two newspapers on Martha’s Vineyard, and asked them to write an article about us. The Times sent over a reporter with a camera, and a few days later the newspaper ran an article about Vineyard.NET with a photograph of Bill, Eric, and me.

The reporter wanted to print a phone number at the end of the article that people could call to get signed up for our service. This free advertising was precisely the reason that we had called the newspaper in the first place!

Lesson: Always be friendly to the press.

Unfortunately, our phone numbers were in a shambles. It was clear that we didn’t want to use the number 696-6653 as our office number. First, it was too difficult to remember. Second, it was clear that we wanted as many of the 696-665x numbers as possible to be in our hunt group.

Eventually we picked the number 696-6688 as our office number. But that number wouldn’t be installed for more than a week. In the meantime, the company was using my home phone number, which is the number that the newspaper ended up printing.

Lesson: Never give out your home phone number (and please don’t give out mine!).

Letting the newspaper publish my home phone number was one of the biggest mistakes that I made throughout the entire Vineyard.NET project. For the next year, I received telephone calls on almost a daily basis from people who wanted to find out more about the Internet. It’s true, the phone number was only printed once. But people clipped the article. People photocopied the article for friends. They wrote down the phone number, thinking that they would get around to calling it someday. I got those calls during the day, over the weekends, and even in the middle of the night (people who couldn’t get to sleep, and who thought that they would be leaving a message on our answering machine).

It turns out that there were many other places that my home phone number had been used as well. My phone number was in the router MOTD (message of the day), because the MOTD had been written before Vineyard.NET had become a commercial service, and it had never been changed. NYNEX had my home phone number listed as the official contact number for Vineyard.NET’s account, because that was the phone number that I had asked them to call me back at when the Centrex line was first set up. Months later, when Vineyard.NET started billing people’s credit cards, my phone number was the phone number that was printed on our customer’s bills—because our bank had simply copied down my phone number from their records.

Lesson: It is very difficult to change a phone number. So pick your company’s phone number early and use it consistently.

Perhaps I should have changed my home phone number, but I didn’t. Still, it was hard not to get angry the 30th or 40th time I got a phone call from somebody wanting information about Vineyard.NET. Indeed, sometimes I did get angry—such as when I got calls at 8 a.m. on a Sunday morning. Unfortunately, every time I got angry at somebody for calling my home phone number, I was hurting the company, because the person at the other end of the line genuinely thought that they were calling the place of business, rather than my house.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.224.95.38