Advertisment

Writing Great Components

author-image
DQI Bureau
New Update

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.

Advertisment

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.

Some

Component Factors to Keep in Mind
Upload

your component as a freeware on the Internet
Become

visible on the newsgroups and forums for feedback
Be

responsive to user requests for changes and enhancements
Stay in

the freeware domain as long as you are enhancing your product
After

attaining sustainability shift to the shareware domain
Create

a freely downloadable demonstration version of your component
Do not

restrict the functionality of your component in any way
To

prevent misuse use an unregistered version
Your

component should be easy to install
Technical

excellence should not be used as a license for shoddy documentation

and poor support
‘free’

is the norm not the exception given the numerous choices available

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!

Advertisment

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.

Advertisment

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.

Advertisment
  • 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.

Advertisment

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.

Advertisment

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.

Advertisment

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.

Advertisment