by Doug Loss
I read over all the other advocacy howtos for Linux that I could find (I've listed them in the resource section at the end). They were almost all addressed to convincing end users (either business or personal) that Linux could meet their needs on a day-to-day basis. That's a very useful thing to do, but it wasn't what I was looking for. Only the Linux Advocacy Project came close to what I was looking for, and it didn't quite cover what I wanted. I wanted something that would help me approach organizations making software for other platforms and convince them to port their works to Linux. Since I couldn't find any howto concerning that, at the urging of a few others here at SEUL I decided to write one.
In this howto I'll cover how to approach software companies and what arguments may be most effective in convincing them to port their programs to Linux. I won't talk about trying to convince them to release their Linux ports under open source licenses. While that might be a good idea, I think these things should be done in small steps. Advocating a port to another OS is much more likely to meet with interest than advocating what the company may perceive as "giving away" product, or advocating a radical change in their basic development model.
First, you need to identify an area where Linux is deficient in programs. I wouldn't try to convince any company to port their web server to Linux. There are plenty of such programs available. I'd much rather use my time trying to convince companies to port games or kindergarten through 12th grade educational programs to Linux, as there's very little of those types available (none in the educational area, so far as I know).
Second, you need to identify companies that are most likely to be interested. I have no hard evidence of this, but I strongly suspect that your efforts will meet more success if you concentrate on second-tier companies rather than on market leaders in your chosen category. I doubt that Disney or Davidson and Co. would consider porting their educational programs nearly as quickly as say, Soleil Software or Ohio-Distinctive. Also, if a company provides its software for both Windows and Macintosh currently, it may be more likely to consider supporting yet another OS than one that is exclusive to the Windows or Mac world. If all the companies in your target category are Windows or Macintosh exclusive I'd try the Mac shops first, as a Linux port would give them a much greater market expansion (on a percentage basis) than it would a Windows-only company.
What you will be doing is known in the fund-raising business as "cold contacting." This means that your "target" company won't have known that you'll be contacting it, and won't have been primed to hear your message. A 1% response rate is considered normal. You should be able to do better than that.
In a sense all target companies will be slightly primed to hear about Linux due to the remarkable amount of publicity it's been getting of late. In that respect your contact won't be completely cold. That's good.
The first thing to do is to identify someone in the company to contact. It's always best (if possible) to identify an actual individual rather than a job title. Depending on the size of the company and its organizational structure, your best bet is the head of program development. If that isn't a possibility, try for the head of whatever technical section the company may have. If that isn't possible, read over whatever bios might be available in the "about the company" section of the company's web site (they almost all have something like this) and pick the person who seems most likely to be intrigued by Linux and to become an internal advocate for a Linux port. Finally, if none of the above things works try contacting the head of the company. Incidentally, it won't hurt to contact more than one person in the company if your bio research shows somebody other than the head of program development as the most likely person to be interested.
Your initial contact should probably be via email. First, email usually goes directly to the person addressed rather than being filtered through various layers of the organization as postal mail and telephone calls are. Second, with email everyone starts equal. Physical presentation and elocution don't enter into the contact, so the logic of the message may be more apparent.
The subject of your message should be understated. "Make Millions Easily!" will just get your message deleted as spam. Try something like "A good new market for your programs," or "An overlooked market for your software."
The first sentence in your message should probably be a conditional apology for sending the message to the wrong person if the person receiving it is the wrong person. The next sentence should request that the message be forwarded to the right person and that that person's email address be sent back to you for future contacts. This has a few effects. The apology establishes that you're not a know-it-all and that you are polite. The request reinforces the politeness and quietly lets it be known that this won't be a one-time contact. That's important. It's a lot easier to blow off a message if you don't think you'll ever hear from the writer again.
That brings up another point. If things work out right, you won't be making just a one-time contact with this company. You will be signing up to be an outside contact for them, a source of information about things Linux. As such, there are some guidelines to follow in all your contacts. Be polite. Be patient. Be truthful. Be helpful. Stay apart from internal politics.
Be polite means responding civilly to all messages, even if you consider them insulting or moronic. Remember, "A soft answer turneth away wrath." Besides, it's just possible that you may have misunderstood the message. Asking for a restatement of the message to clear up its meaning can't hurt.
Be patient means answering what you consider obvious questions calmly and clearly, and answering them as many times as necessary. Email isn't real-time; you can take a jog around to block to cool down before answering yet another, "But doesn't a Linux port mean we'd be expected to give our products away?" message.
Be truthful means answering each question to the best of your ability, and saying "I don't know" when that's the correct answer. However, "I don't know" is only the first part of that answer; "but I'll find out and get back to you" is the rest of it.
Be helpful means going beyond just answering the immediate question and trying to address the reasons the question was asked. For example, one company asked me how it could publicize the existence of a Linux port if it did one. I mentioned the standard places (comp.os.linux.announce, Linux Weekly News, Freshmeat, Slashdot, Linux Journal). Then I brought the question up in the seul-dev-apps mailing list. The discussion there eventually started the development of the lu-news system.
Stay apart from internal politics means keeping a little distance between yourself and your company contact. However friendly your exchanges are, your role shouldn't be one of confidante but one of outside expert and advocate. You won't force the company into supporting Linux. You can only make sure they know about the opportunity and help them find the best way to take advantage of it.
Okay, enough about what tone to adopt. What do you say to convince them that the Linux community is worth porting for? Here's what I did.
First, I explained as well as I could just who the Linux community is, and why Linux users would be a receptive group for my target company's products. I very carefully didn't exaggerate, and made sure that I explained when my figures were estimates rather than hard numbers. If SEUL's research questionnaire is a big success, we may be able to get the hard numbers we need for market demographics, but till then we have to do our best.
Next I explained why I thought the Linux market would be good for the company to enter.
Then I laid out the ways in which the company's current program line could be ported to Linux. I must say that I lean toward using Abacus Research & Development Inc. (ARDI) Executor technology as a "wrapper" for Macintosh binaries as the easiest and quickest way to do that, but WINE , the TWIN library, and possibly the McClone library are all possible tools to help move programs to Linux without full-blown ports. Incidentally, I cleared my letter with ARDI before I mentioned any action that their engineers might be able to take for the company. You would lose credibility if the target company acted on your recommendation, contacted someone like ARDI, and was essentially told, "We don't know what you're talking about."
Finally, I ended with a personal note on why I was trying to convince the company to port to Linux. Here's a copy of my standard letter; don't copy it word for word, but feel free to adapt its organization if you like:
Dear Sir or Madam:
If I've sent this to the wrong address in your organization, I apologize; could you please forward it to the appropriate person? Also, could you let me know who that appropriate person is so I can direct future communications to him or her? Thank you.
I know that [insert company name here] has fine educational software programs for both the Macintosh and Windows PCs. However, I'd like to speak on behalf of a computer community that has heretofore been overlooked by the entire educational software industry; the Linux community. I'd also like to call your attention to porting tools that can make moving Windows and especially Macintosh software to Linux nearly trivial.
Linux is the fastest-rising operating system in existence. Although it isn't possible to give exact numbers of Linux users (the operating system is freely downloadable from the internet), the best estimates put the numbers at 6-7 million worldwide. That's more than the worldwide total of OS/2 users and is near (if not more than) the number of Macintosh users. In addition, these numbers should probably be in some part subtracted from the Windows and Macintosh user figures, as almost all of the computers Linux is used on initially had Windows or MacOS installed.
Just who are these Linux users? They are primarily male, technically educated, and in their early twenties. The first two traits are more standard than the last; Linux users range from the teens to probably the mid-40s in age. (I'm 46, so I had to extend the range at least that far.) This is a prime demographic for the educational software market. These are people who generally have or will soon move into well-paying jobs in technical fields, and who are often just starting families. Linux users are usually not very patient with MacOS or Windows, and so tend not to see or to consider software offerings for those operating systems.
To the best of my knowledge, there are currently zero educational software programs available for Linux. While many Linux users will write their own programs if they can't find anything to fit their needs, that has so far not been the case with educational software. This may be because Linux only originated in 1991, and has only experienced explosive growth in the last 2-3 years. The market is completely open.
This has only recently been noticed by the Linux community. As more of us have young children, the awareness of the need for educational software for Linux is growing. I'm sure it will only be a matter of time till someone begins to address this need.
What is the easiest, most cost-effective way to enter this market? It's certainly not impossible to start from source code and rewrite the operating-system-specific routines to work with Linux. That's what many Macintosh ISVs did when they wanted to enter the Windows market. However, there are easier ways.
There are "wrapper" programs available for both Windows and Macintosh programs, which enable them to run on Linux without having to be rewritten extensively. For Windows, there is the TWIN library from Willows Software < http://www.willows.com>. I don't have any direct experience with TWIN, but the Willows website gets quite specific on what Windows routines move across cleanly and what ones need some touch up.
For Macintosh programs, Abacus Research & Development, Inc. (ARDI < http://www.ardi.com/>) has rewritten a substantial fraction of the Macintosh OS and toolbox routines, and makes this technology available in two different ways. Executor is available both as a Macintosh emulator for end-users and as a porting tool for Mac ISVs. Executor is available for Linux, DOS and Windows. A demo of Executor for Linux is included on the Red Hat 5.1 Linux distribution, the most popular commercial distribution. The engineers at ARDI are fluent in Macintosh and Linux and can evaluate how hard it would be to make a Linux version of your Macintosh software. In many cases it can be done without your needing to change a single line of code. A Linux version of your program created in this way can easily fit on the same CD-ROM as your Mac and Windows executables, thereby giving you a three-OS program on one SKU. The expenditure required to open up this potentially lucrative new market is relatively minor; certainly much lower than the cost of the ports many companies made in expanding from the Mac-only market into the Windows and Mac market.
Finally, a personal note. The reason I'm moved to write to you proposing that you enter the Linux educational software market is my 6-year-old son. I run Linux because, of all the operating system choices available, it best fills my needs and desires. If there were good educational software available for Linux, I'd snap it up. I know I'm not alone; I've heard from other parents every time I've mentioned the problem in various Linux forums. There's a market out here waiting to buy your product. Please don't disappoint us.
If you decide to take a turn at advocating commercial software ports to Linux, remember that in so doing you're not acting as merely one individual, but as a representative of our entire community. I know we're more honest than Microsoft; I like to think we're less self-satisfied than Apple; I hope we're more generous in helping other users in need than any of the other user communities. Show those qualities to the companies you contact--honesty, humility, and helpfulness--and you stand a good chance of being successful.
Here is the list of other advocacy documents I looked through before I decided to write this one. While they didn't cover the aspect of Linux advocacy I was looking for, they are well worth your time to read through. They have a lot of good advice on how to be an effective ambassador to the non-Linuxen out there.