You can write software components for thrills, your resume or for money. In
this article we explore the potential in each of the three pursuits. For
developers with an entrepreneurial streak we focus at length on how it is
possible to augment your income from a day job with top dollars through selling
software components. The most attractive thing about the business of selling
components is the low barrier to entry. However, to make money by selling
components, your business skills need to match your coding skills. Just because
you can write a good code or create a slick solution will not guarantee success.
For Thrills
Writing reusable components requires a skillset that is several notches
higher than that required for writing business applications. Most of us start
off by writing components for thrills. We identify a generic requirement that
lends itself to componentization, bear our coding skills on it to create a
component that addresses the requirement and upload it with source to sites and
lists that other developers frequent. In essence, we seek endorsement of our
programming skills by our peers. The fact that other developers download and use
our components lights our fire. The fact that we publish the component source
code for others to examine and emulate is a manifestation of the maturity of our
coding skills.
|
Weighty references on your resume
If you have written one or more components that others have found useful you
can capitalize on your effort by mentioning the fact on your resume. When
looking for new recruits, companies usually task their existing developers with
screening resumes. If a developer perusing your resume has heard about you as a
component developer or used any of your components you will get shortlisted for
the interview! When I landed my first job in the US, the senior developer who
screened my resume and interviewed me had not just bumped into my Delphi
Database Search component, he had used it extensively. As you can imagine, I
didn’t just land the job I actually enjoyed the food during my interview
lunch!
Putting a price tag
At the top of the ladder, you could be writing components for money. What is
most attractive about the business is the fact that the barrier to entry is
minimal. Having said that let me warn you that on account of the stiff
competition it is difficult terrain. There are literally thousands of developers
out there who feel they have what it takes to make components that sell. But
then being Indians we can beat them! This is how (we can do it).
What do I sell?
The most difficult part about creating software components is identifying
business requirements that can be componentized. The question that I am asked
most frequently is - How did you know what software components to create?
The business requirement that you chose to componentize needs to be generic,
fairly complex as well as relatively rare. The requirement needs to be complex
because as developers we tend to be fiercely proud of our coding abilities.
Consequently, we will resist buying what we can quickly create ourselves. Unless
a component represents at least 7-10 person days of effort, it is probably not
worth marketing. Usually the effort would need to be a lot higher.
The requirement needs to be generic since otherwise it will not lend itself
to componentization. The business requirement needs to be rare because otherwise
you would be a small fish swimming alongside sharks. If the market segment is
large you can bet that established software vendors with much greater resources
than you will be competing with each other to capture it.
Who is my customer?
A misconception about selling components is that you target developers.
Individual, developers will very rarely buy a component. An overwhelming
majority of the components are bought by businesses. The difference between
selling applications and components is that unlike in the case of the former,
with components you target businesses not directly but through their developers.
When do I sell?
Before you think of putting a price tag on your component you should be able
to answer the following questions in the affirmative.
- Is your component absolutely stable?
-
Does you component have an existing user base of several
hundred users? -
Is the component source well written, commented and
extensible?
Initial development
Having identified a business requirement, go ahead and code a component that
addresses it to the best of your ability. Once you are confident that you have a
complete and technically excellent solution upload it as a freeware on the
Internet! Not only should it be available as a free download but you must freely
distribute its source too.
The fact is, as a component developer you simply don’t have the resources
to invest in first gathering the business requirements and later testing your
component. Sticking to the freeware domain will enable your peers working with
businesses that your component targets, to provide valuable inputs as to how you
can expand or improve your component.
Upload your component to all the major component sites for your development
environment, as well as newsgroups and forums that your potential component
users frequent. It is not enough to upload your component, you need to be
visible on the newsgroups and forums too. Wherever possible, respond to queries
from developers and when you do, don’t omit to put a link to your component in
your signature block!
Be very responsive to user requests for changes and enhancements. You will be
better off working hard on the functionality that others seek rather than what
you consider cool. Evaluate user interest in your product and the type of users
who are interested in your product.
When you make a product and support available free of cost, it is easier for
you to ask questions from your component users. Always be curious to find out
how others are using your components. Sometimes you can be pleasantly surprised
by the way others use your components. Such information could enable you to hone
your marketing strategy.
Preparing a price tag
Keep your component in the freeware domain as long as you find yourself
making frequent changes and improvements to it. If and when you get a perception
of stability and sustained interest, move to the shareware domain.
Having made the decision to move your component to the shareware domain, the
first thing you need to do is develop a freely downloadable demonstration
version of your component. When doing so, it is not a good idea to restrict the
functionality of your component in any way, since that can constrain an
evaluation and put off the evaluator. Most businesses will not use a component
in their application unless they have both a license and the source code for it.
However, to be sure that your component is not misused you can display an ‘unregistered
version’ somewhere on it if it is a visual component.
It is important that your component be easy to install. Its defaults should
be such that on most occasions it will run out of the box.
Packaging
With components technical excellence usually weighs more than other business
considerations. Very often component developers use technical excellence as a
license for shoddy documentation and even poor support. This simply does not
hold. Despite a recommendation from their developers a management may not opt
for a product if its packaging or support arouse suspicion. So put in that
effort to create state-of-the-art help files that are well written. People pay
for something only when they believe they are getting the best possible deal.
And finally…
Selling components for money is a business. Like any other business this one
too requires investments other than just your skill and effort. So don’t
expect to make money from your component vending business without first spending
a significant amount of it!
Two essentials for the launch of your component business will dent your
pocket. First, you will need to get a domain name and a website. Together they
represent an annual expense in the region of $150 per year. Next, you will need
to spend money to direct traffic to your site. This is highly recommended.
Listing your component on a shareware site will get you some traffic but
probably not the type and volume that you seek. In all probability your
component will quickly get buried in the tens of components uploaded every day,
most of them of dubious value.
Fortunately, these days you can pay search engines, to direct traffic to your
component site. You can do this either directly or indirectly through pay per
click services like overture. I strongly recommend you pay to draw traffic to
your site directly.
Give it time
Getting established in a new business takes time and sustained effort.
Remember that as a component developer you operate in a small market segment. It
is unlikely that component sales will ever reach a volume where the revenue
becomes your primary source of income. One way to offset low sales volume can be
to increase the number of components that you are selling but then that is more
hard work. A better way of leveraging your component business is to seek
application development contracts based on your credentials as a skilled
software vendor. Once you are in the market place it is just a matter a time
before opportunities come you way. While you wait for them enjoy the thrill, and
money that you get from selling components.
Vijainder K Thakur
The author is a software consultant based in Atlanta.