Phil Wright : Component Factory

Thursday, June 30, 2005

microISV, Internet Marketing

Marketing Course Evaluation

The second day of the marketing course covered several areas including: the creation of a good press release; how to get free PR; establishing joint ventures; and Internet marketing.

All of the material was of a high standard and well thought out and I really enjoyed the whole course. Much of the useful information was given with case studies from the presenter's actual clients along with little stories and small details that really showed in depth how an interesting idea can be worked out in a real life business.

As with most areas of business, and indeed life in general, most of the good advice is actually just well thought out common sense. This is not a get-rich-quick style scheme and you left the course with a marketing plan for your business covering actions to take over the next few months.

I doubt that anything presented was actually completely new to the world of marketing but when you're starting out from ground zero, as I am, it was a great way to learn how to create a proper marketing plan and a systematic approach. No more random ideas that you try out, instead you're deliberately dedicating time to a proper plan.

Here is a link to his website Chris Cardell and I suggest you sign up to his newsletter that will give you some free tips for the first few weeks. Of course, he uses all this own tips and advice in marketing his own website!

Too Good to be True

If an advertising outlet, such as a trade magazine, contacted you and offered the oppourtunity to reach a group of people interested in your product, would you be interested? They also provide a guarantee so you only pay if the people actually express an interest in your offering. Of course you would think this is great. In reality it never happens, you try getting MSDN magazine to guarantee a response to your advert!

But just imagine if you could get that kind of deal. No more spending a lump sum on a magazine advert with no idea if it really does get to the people you are interested in. No idea if they actually show an interest by visiting your website. That is the difference between pay-per-click advertising and traditional trade magazine adverts.


So the first strategy for Internet marketing is to ensure that you direct your target audience to your website using pay-per-click on Google. Of course, using the advice from the previous marketing post you would start very small and carefully. You would start by using a small daily budget and keep split testing your advert.

Split Testing

You should always have two versions of your advert on Google that differ by only one small detail. For example, your first advert is in traditional English format and your second is identical except you use capital letters at the start of each word. Even such a small detail can make a big difference to the click through rate.

After a few days you compare the click through rates of both adverts and then throw away the worst performer. Then you create another new advert and vary it from your best advert so far by just one factor. By constantly varying just one small detail you are constantly trying to improve the click through rate.

This is important because how high up your advert appears is dependant not just on how much your willing to spend on the advert but also the number of click throughs. About 50% of the ranking is determined by the click through rate and so pushing this up higher will save money and improve the number of visitors to your site.

Email Marketing

You should make a strong effort to get the email address of every visitor to your website. Not because you want to spam them, because we all know how annoying that is, but because it is much harder to get a completely new customer than communicate and sell to an existing one.

If you offer a demo version of your product get the visitors email and send them a link to download it, rather than just giving the link straight away. Then you can follow up in the future. After a few days you can ask the potential customer for their feedback.

At the very least this is useful in finding out what features are missing or putting off the visitors from buying. That is great information for helping you to improve your product. Asking existing customers what they think of the product is less useful because it obviously already meets their needs, otherwise they would not have bought it! But getting feedback from those that almost bought the product is of fantastic value and almost impossible to get from any other means.

Of course you can also use the emails to send them special offers in the future so they do not miss out on new products you release or temporary price reductions. I would also suggest that you ensure it is easy for them to unsubscribe and never give their email to any other organisation. You're trying to establish a good quality relationship with them.

If you do not have a demo or trial download then think about creating some useful information to give away for free. Give them a report or set of articles that has value to them and would entice them to supply an email address for them to be delivered. The key point is you have to give them something of real value in return for them being willing to let you communicate with them. The more value you can supply then the more likely they are to take you seriously and be interested in reading your other emails.


Before the course I had already heard of software to handle lists of subscribers. Just the sort of software needed to automate the process as described above. But I did not realise how easy it was to setup an auto responder for email marketing.

For example, your website visitor is interested in your product and would like to download the demo to test it out. So they enter their email address and press the Submit button. Their email address is automatically added to an email list and they immediately get a auto response email with instructions on how to download the demo.

The clever part is that the auto responder is set up to automatically send a follow up email to them after a certain number of days. So you configure the list to send a second email two days latter asking them to fill in a simple online feedback form to let you know what they think of the trial product.

Then after another two days you could send them a free article that describes more advanced features that they would then be able to make use of, now they are more familiar with the software. Finally you might then send a last email 10 days after the original download and offer them a 10% discount if they buy in the next week.

This sequence of emails and the delay between them is set up by you and then just works without any intervention. If you have 1000 requests for the download each month can you imagine the work involved in doing that manually? Crazy. But with an auto responder costing maybe $100 to buy it all happens completely automatically.

Automation, The microISV Friend

The technology behind an auto responder is of course trivial but it is the fact you can automate the process that is so useful to us microISV businesses. Working on your own or maybe just in your spare time you have to automate absolutely everything that you can. Time is the one thing we do not have much off. (As well as money or enough customers!)

It does not get much better than the following in terms of marketing...

Let pay-per-click gather new visitors
Let your website gain their interest
Let the download page gather the email address
Let the auto responder communicate with the visitor
Let a third party handle the ecommerce sale

You sit at your computer and write the code and the automated system handles the majority of the heavy lifting. Of course you need to spend some time each week keeping an eye on the system and tweaking it to gain the best results.

Too Good to be True

Just think, one night you will be fast asleep and someone on the opposite side of the world will travel through the entire automated system and buy your software. Now imagine you had told someone 10 or 15 years ago about this scenario. Add into the mix that you have almost no budget to spend and you only had to sit in your study, what would they say? They would say it was too good to be true.

Now tell me the Internet is not amazing!

Tuesday, June 28, 2005

microISV, Marketing - The 5 Rules

The Two Sides of a MicroISV

To be a successful microISV we need to achieve two things. First of all we need to be good at innovation. If we cannot come up with a great idea and write the code to make it happen then we do not have a product to sell.

Creating an average product in a crowded marketplace is not a great recipe for sales. So we need to innovate in some way. It doesn't have to be the next killer application like VisiCalc but it has to be a compelling solution to a problem that people have.

I think this half of the microISV equation comes quite easily to most developers. We love to write code and we always think we can do it better than anyone else. Plus we are always full of ideas of some cool product we would love to create. So usually the innovation side is where we get started.

The second half of success is marketing. That forgotten half that most of us don't even think about until the product is already fully written. This includes me, the first product I wrote had no marketing strategy for at least the first 18 months of being sold!

Learn, Learn, Learn

I was thinking about this issue a few weeks ago and wondering how to handle marketing for the components I will be creating over the coming months. Then it struck me that I should solve the problem in the same way I would a technical problem.

If I need a new skill, such as learning a computer language, then I go on a training course. Why should learning a new skill like marketing being any different? So that is exactly what I have organized. Today I went on the first day of a two day marketing course that has a particular focus on Internet marketing.

Rather than hog this information to myself I will post about the interesting points covered relevant to our situation. There is far too much detail to write up everything from the first day in one go, but we can start with the overview of the successful marketing process. (His claim, not mine!)

The Five Golden Rules

1. Purpose of your business
2. The three ways to grow your business
3. Create multiple pillars of marketing
4. Test and measure
5. Calculate your customers true value

Lets have a look in more details at each area in turn.

1. Purpose of your business

You probably think that the purpose of any business is to make money for the shareholders and especially so if your one of the shareholders yourself! But there is actually only one purpose that all really successful businesses have. Namely the desire to add value to the lives of their customers.

In fact not just a desire to add value but an absolute passion for it. You need to have the mindset of wanting to create incredible value for your customers and then the profits will take care of themselves.

2. The three ways to grow your business

There are only three ways to grow your business. You can increase the number of customers. You could increase the average spend from each customer and last of all you can increase the frequency that each customer buys from you.

In fact you should be trying to increase all three at the same time. If you can increase your number of customers by 10%, and the average spend of customers by 10% and finally the buying frequency by 10% then your overall revenue goes up by an impressive 33%. Each individual 10% increase does not seem impossible to achieve but it is the cumulative effect that can make a really big difference.

3. Create multiple pillars of marketing

Most businesses rely on just one or maybe two different pillars of marketing. They use just advertising or maybe just direct mail to achieve sales. Instead you should ensure that you deliberately create and use multiple marketing pillars.

So investigate advertising, direct mail, telephone sales, referrals, pay per click, email, PR and joint ventures. Have a deliberate policy of trying out new marketing methods on a regular basis to reach more potential customers.

4. Test and measure

The vast majority of advertising and indeed marketing is a waste of money. In order to avoid wasting money you have to ensure that you can test and measure every aspect of your marketing.

If you place an advert on a website, then ensure you can measure the number of visitors this brings to your site. Even more important, make sure you can measure the number of sales this generates. Everything from each advert to each email campaign must be measurable.

Only then can you decide if the cost justified the resultant sales, and it also allows comparisons. You try one advert with a particular headline and you make 5 sales from it. Next month you do exactly the same but with a different headline and see what sales that generates. This way you can refine and improve the effectiveness of your marketing and constantly try out new ideas to find what does and does not work.

5. Calculate your customers true value

This calculation is integral to helping with step 4. You need to work out how much each new customer is worth in revenue to your business. So for example, an average customer buys three products from you over a period of three years and that equates to $600 in revenue.

Using this figure you can calculate if a marketing approach is worthwhile. If an advert on a website generates 3 new customers then you know that the value to you (on average) is $600 per customer or $1800 overall. But if the cost of the advert itself was only $1000 then you know it is worth doing again and again.

This total value of a customer is important and not just the initial revenue they create. Your new customer might only make a single purchase in the first month and so only be worth an initial $200 to you. Multiply that by 3 new customers and it looks like your $1000 advert is only returning $600 in revenue. But from analysis of your customer buying patterns you know that over the full three years that the average customers stays with you it will actually pay off.

Without knowing the true value of your average customer you cannot make intelligent decisions about what will and will not pay for itself in terms of your marketing spend.


This is really just a simple overview and does not provide the interesting stories and case studies that were the real heart of the presentation today. For me the really interesting points were 2, 4 and 5.

Make sure you can measure, or at least roughly estimate, the value of each new customer. From that you can carefully test new marketing ideas and measure the effectiveness. Try each new idea on small scale and only when you know it is working do you then scale it up to achieve the big effect.

Thursday, June 23, 2005

microISV, Supporting Images

Adding Image Support

At the end of the last post I was about to add support for showing images over the border and background areas of the Group control. The Group control is our first control under development and is deliberately simple in order to allow the development of the basic framework code.

I only managed to get the image support finished today which is a little longer than I anticipated. Not because the changes were that difficult but the heatwave here in England has made if difficult to get motivated in the evenings. After a day slogging away at an office without air conditioning you feel pretty wacked out by the time you get home. And of course, the only time I have to work on Component Factory is my evenings and weekends.

Image Styles

In the following picture you have two instances of the Group control where an image has been specified for the background appearance. The left instance has specified an image style of Tile, hence the picture of a business man is repeated over the background area. The second instance has the same image but a style of Stretch and so the image is stretched to fit whatever the background space happens to be.

Of course, you can also do the simple stuff you would expect like place the image in the middle of the background area or the top left or the bottom right and so forth. The first of the pictures below shows the businessman this time placed in the center.

Of more interest is the second picture where the image is tiled over the background but this time using the TileXY style setting. This means that each time the image is repeated over the X or Y axis it is flipped. Strange though this sounds it is actually very useful for tiling images you want to appear as smooth wallpapers.

Alpha Channels

You can use exactly the same features on the border instead of the background, or even apply one image for the border and another for the background. The two pictures below have deliberately large borders so you can more easily see what is happening.

Another point worth remembering is that using PNG files means you can have an alpha transparency key allowing the image to overlay but still show the color behind it.

If you look at the second of the two pictures below you will see that the background and the border have been defined with gradient color ranges. Then on top of these colors we are then applying images that come from PNG files. So the mobile phone and post-it note pictures are allowing the gradient colors to show through where they are defined as transparent.

Next Step

You can imagine that with some experimentation it should be possible to use the color gradient capability and image overlay to achieve a wide varity of look and feels.

My next step is to spend a little time creating a proper Professional palette instead of my simple test implementation. This one needs to give the same look and feel as the Microsoft Office 2003 applications. So it needs to use the same blue, green or silver set of colors depending on the windows theme chosen.

This is important as the majority of business customers will want to create applications that have the same style of appearance as Microsoft standard application like Outlook, Excel and Word.

Monday, June 20, 2005

microISV, First Code

First Code

After spending so long dealing with domain names and logos I've been itching to get my hands dirty and actually start coding. So it's been a relief to spend the last week getting stuck in and I've created a shed load of code. (For non-techies I will point out that shed load is the technical term for quite alot)

Basic Design Outline

I now have a collection of simple base classes and the framework code that makes it all hang together. The basic design is very simple. My control has a Palette, Renderer and View. The Palette acts as a source for providing colors and fonts to the Renderer that knows how to actually draw in a particular style. The View is a hierarchy of visual elements that know how to position and size themselves and then call onto the Renderer when they need drawing. In the future I will be adding a Controller that knows how to handle user interaction such as mouse and keyboard handling.

The advantage of splitting these areas into their own implementations is that we can then vary them against each other. We could select a different Palette to shift from the standard system color to an alternative fixed color scheme. A different Renderer could be created that draws in a completely different style. These different areas can be independently varied and overridden by the developer as needed.

The Group Control

The first control I have created is the about the simplest I could think of that would actually be useful in the future, the Group control. This control is capable of drawing a border and background in the control client area and then positioning any child controls inside the border. Pretty simple stuff. Think of it as a GroupBox but without the ability to even draw a text header!

For the border you can define the width as well as how rounded the corners should be. Here is a picture of the control with solid colors defined, the first instance with no rounding on the corners and the second with a setting of 11 pixels.

As well as solid colors you can also define a gradient color effect so that the border and/or background merges from one color to another. There are a variety of different merge settings but here is a picture of the simplest.

In practice you would place one or more controls inside the group and use the Group control to provide a consistent border and background with the rest of your application. Here are three simple examples I created in the designer within a couple of minutes.

Obviously this control is not very exciting but it did allow me to create the framework around it and be able to debug quickly and easily. In fact I quickly did a scan of the code with a line counter just out of interest.

Line Count

The framework classes consist of 6867 lines of code and the Group control itself a mere 254 lines. This is a pretty impressive number of lines written in one week, until you realise it is really just counting carriage returns. So that is the total number of lines and many of those are white space, comments and file headers.

Next feature?

My next step is to allow the display of images over the border and/or background instead of just colors. This would then allow the developer to drop the Group control onto a design surface and just use properties to define either solid colors, gradient color effects or images.

Is there anything else that you think should be standard that the developer can alter with properties on the border or background?

Friday, June 17, 2005

.NET2, Creating a GroupBox

Traditional GroupBox

The first control we need to create for our Navigator project is very similar to the traditional GroupBox that comes with the framework. Just like that control we need ours to draw a border around the control area and allow any contained controls to be positioned inside that border.

Here we can see the traditional GroupBox control with a single Button positioned inside it.

Positioning child controls

One of the great features introduced by version 1 of the framework is the Dock property. If the developer decides to assign DockStyle.Fill to the button then it will automatically size to fill the available area, like this.

This is useful because whenever the GroupBox is resized the Button willl automatically be resized to fill the available space. Unfortunately in version 1 of the framework there is no property that can be modified to inform the control to layout child controls within a particular area. So I was expecting to have to write a fair amount of code to get around this seemingly simple requirement.

I was going to get around the problem by creating a child Panel in the correct area and then letting the user design onto that panel instance. That way any Dock property settings they use would be effective against the panel and not the whole custom control.

.NET 2 Comes to the rescue

Luckily for us it seems the Microsoft developers realized this difficulty and have introduced a new property called DisplayRectangle in version 2 of the framework. This property returns the rectangle that should be used to layout the child controls within the control.

So all we need to do is override this virtual public property. There is one small complication that needs to be remembered though. Another new property introduced in version 2 of the framework is called Padding. This defines how far to inset the child controls when they are layed out. We need to make sure that our override honors this property.

So we end up with some code like the following in order to provide a 10 pixel border on all except the top edge that is given 20 pixels.

public override Rectangle DisplayRectangle
// Grab the total client size
Size s = ClientSize;

// Find the control defined padding
Padding p = Padding;

// Return the display rectangle
return new Padding(p.Left + 10,
p.Top + 20,
s.Width - p.Horizontal - 20,
s.Height - p.Vertical - 30);

This is one of things I love about the .NET framework, I often find that when I want to solve a problem the designer have already package up a nice simple solution for me!

Wednesday, June 15, 2005

.NET2, Transparent controls

Technical posts start with .NET2

As I have now started coding I intend to feedback any useful technical discoveries as I go along. Hopefully this will help others save a little time in their own projects. You will have noticed the name of the post has .NET2 at the beginning instead of the usual microISV. If your not interested in C# and .NET 2.0 then I guess you would skip these posts.

Rounded corners need to be transparent

Today I came across a tricky problem. I need my control to draw a rounded border inside the edge of the control. This is easy enough to draw, but it does mean that I end up with a small area outside of the border in the wrong color.

Imagine I have a Form with a gradient effect background and then I draw my control. The area outside of the rounded corner is not going to be drawn correctly. It will be the solid BackColor of the control and not the gradient effect of the parent Form.

The obvious solution, and so what I tried first, was to set the BackColor of the control to be Color.Transparent. To make this work you also need to set the control style to be ControlStyles.SupportsTransparentBackColor in the control constructor.

This I duly did and hay presto, it works like a treat. Problem solved, so I move onto another task and think no more about it.

Child controls inherit BackColor

As my control acts like a container, in the same way as a GroupBox does, I was testing it by placing a couple of Button controls inside it. You can probably guess what happened. The Button controls inherit the BackColor from my control and so they now have a transparent background.

This is definitely not a good thing and it looks truly horrific.

So now I am stuck because I need the BackColor to be transparent to let the parent background show through. But I cannot set the BackColor to be transparent because it will be inherited by child controls.

There are only two possible solutions that I can think of. If I assign transparent to the BackColor then I need to detect any child control added and force its BackColor to be a value from the parent of my own control. This sounds a bit tricky to make sure it works in all circumstances.

The alternative is to leave the BackColor property alone but modify my painting routine so it paints as if the property was defined as transparent. This sounds like a much better solution because it localizes the fix in my own code.

So how do we manage to paint the transparent areas?


This is where the brilliant Reflector tool written by Lutz Roeder comes in handy. If you have never used it then I suggest you download and install it straight away. It allows you to browse through any assembly, including the framework ones, and decompile the IL code to see how it works.

After snooping around for about 10 minutes I manage to find the code that does the drawing of the background when the background is defined as transparent. Looking at this code it is actually very simple to create my own version that is called from my OnPaint override.

Let me save you the trouble of doing this yourself. Call the following routine to draw the parent over the control when the OnPaint event is overridden.

private void PaintParentBackground(PaintEventArgs e)
if (Parent != null)
Rectangle rect = new Rectangle(Left, Top,
Width, Height);

e.Graphics.TranslateTransform(-rect.X, -rect.Y);

using (PaintEventArgs pea =
new PaintEventArgs(e.Graphics, rect))
InvokePaintBackground(Parent, pea);
InvokePaint(Parent, pea);
e.Graphics.TranslateTransform(rect.X, rect.Y);

Victory is mine!

So there you have it. The OnPaint override calls the above routine so that the entire control is initially painted with the appearance of the parent. Then I continue as normal and draw my rounded border, or any other shape I fancy, and the areas I decide not to paint look correct.

Monday, June 13, 2005

microISV, The Product Concept

Building the Foundation

As already mentioned in a post right back at the start of the blog, I already have a pretty clear idea of what the first three product components will be. Our first component is actually quite simple in concept and so don't expect it to blow your socks off!

Although simple it is an essential building block needed for the second and third components that will be built on top of it. So it provides the foundation for the rest of the component suite. Not just as a reusable component but also by providing helper classes and base implementations that can be reused later on.

Classic Controls

After working with several different user interface libraries you being to notice that there are several custom controls that obviously are conceptually related. Yet, to my surprise, they have never been built from the same base class or using the same fundamental building blocks. This makes it difficult to interoperate between them.

Think about the classic TabControl. This allows the user to navigate around a set of pages in a random manner. They can click from page to page by using the appropriate tab header. Now think about the classic Wizard dialog. Again the the user can navigate around a set of pages, but this time in a linear fashion. Another more recent control is the Outlook bar from Microsoft Outlook 2003. Here you can select pages at random by using the large square buttons at the bottom of the control.

Really these are all just controls that allow the user to define a set of display pages and then provide different user interfaces for moving between them. So our first component is going to be called the Navigator and do just that, give a variety of user interface mechanisms to move around pages.

The Navigator

Having a component capable of providing many navigation interfaces has several key advantages. With other libraries you might create a TabControl with a set of TabPage instances. But if user feedback indicates you need to change over to a Wizard you cannot just copy across the TabPage instances. The chances are your Wizard component has a completely different set of classes and you need to go to some effort to copy across your designs.

Although not a huge effort it does still take time to learn about the new component and copy across the controls for each page. With our navigator they just change the mode property and hay presto, it changes over. Better yet they can use the traditional TabControl style appearance when designing, making it easy to randomly move around, and then switch it to Wizard operation when finished.

So our first unique selling point for the component is the provision of multiple modes or user interaction. We provide all your page navigation needs in one handy control that is a piece of cake to learn. You learn how one control works instead of having to understand several.

Separating the Layers

Our second unique selling point is going to come from the architecture of the control. Instead of encapsulating all the drawing inside the control we are going to separate out the functionality into different layers.

Palette Layer - Provides the colors and font for drawing.
Rendering Layer - Draws using a palette in a particular style.
View Layer - Handles the layout of visual elements.
Controller Layer - Responds to events and initiates actions.
Model Layer - Manages the collection of pages.

This is really just an extension of the traditional Model-View-Controller design pattern where the View is split into three separate layers. This makes it easy for us to change over the palette layer to give a different appearance without having to alter the renderer at all.

Before I get stuck into too much of the actual coding, any feedback on the idea would be appreciated. But remember that although the Navigator will be sold as a stand alone product in its own right, it is mainly intended as the building block for other more value added components later on. So don't be too harsh!

Thursday, June 09, 2005

microISV, .NET2 vs Avalon

Logo Decision

First of all thanks for leaving comments on the last post about the final set of logos. At the last count the score was 5 for the first cartoon logo and 6 for the second corporate version. I was already leaning towards the second logo anyway but the feedback really confirms my initial preference. So I'm going to use the second logo.

Technology Decision

My first major technical decision is the choice of technology for developing my C# visual components. We need to look into the future and ensure that anything written is not going to be out of date before it is even released. The current released development versions are .NET 1.1 for the Framework and VS.NET 2003 for the IDE.

Visual Studio .NET 2005 and .NET 2.0

Looking ahead the next big change is the release of Visual Studio 2005 and .NET 2.0 on the 7th November 2005. I already have the Beta 2 release of this and have been playing around with it recently. Although a little shaky it is just about stable enough to develop against.

Avalon and Longhorn

Further out is the new Avalon user interface framework that was originally slated to be released with Longhorn. For those not familiar with Avalon its a fundamentally new framework for developing user interfaces in the managed code environment.

Whereas Windows.Forms is based on GDI+ the Avalon framework uses DirectX. There are early releases of Avalon being made in order for developers to play around with it. However these are very much development releases and each update contains fundamental changes to part of the design.

A full stable release of this technology cannot be expected until the release of Longhorn, which is scheduled for the end of 2006.

Comparing the two options

If we develop for .NET 2.0 then we can start development straight away and know that few, if any, changes will be needed when the full release is made. Another advantage is that we only have to wait 5 months until its released and so we can sell components from then onwards. On the negative side the product will have a lifespan limited by the time it takes for Avalon to really take off.

If instead we go for Avalon then we don't have a proper development environment and have to learn this new technology from scratch. That also means we have to wait some time before a commercial market emerges for these components. On the plus side it would mean we can get involved right from the onset of the new technology, and stay at the leading edge of the system as well as enjoying a longer lifetime for any software developed.

The final decision

As a code monkey I am tempted by the idea of getting into Avalon, if only for the excitement of getting into something new and interesting. But from a business point of view I believe the correct decision is to go with .NET 2.0, at least for the time being.

A would rather go with the more certain opportunity even if it has a shorter potential lifetime, than try and go for something way off in the future that is currently vapourware. Plus the release of .NET 2.0 is about the right time frame for writing a first release of a product and having the website and e-commerce ready.

So, time to create a new VS.NET 2005 Beta 2 solution and get cracking!

Tuesday, June 07, 2005

microISV, Final Logo

At the end of the last post we gave two of the designers the chance to refine the concepts I selected in order to approach a final design. Both came back with very good changes and so here they are.

They do not look quite as good here as they are in practice because they have been shrunk and reduced in quality in order to post as small files for the blog. Here is the first finished logo.

Candidate B - $125 From Romania

This has actually come out much better than I was expecting. I think the factory itself looks very clear and the smoke gives it a nice added extra. The 3D appearance and the use of gradient colors is clear and distinctive, creating a memorable image.

Our other designer can up with the following final work.

Candidate C - $199 From Argentina

Again I like the use of the gradient effect and I also like the way the left and right edges slant inwards slightly. Although some may think the use of 0's and 1's to make up the smoke is cheesy, I love that effect. Maybe I am just a cheesy sort of person!

Both provided the finished artwork in several formats. The usual BMP and GIF but also the original vector files as well. This is really important and I would urge anyone else getting graphics created to ensure they have the design in the original format.

That way you can always tweak it and provide it to other designers in the future. When you need to create that first print advert, you will be glad you have the vector format to pass over to a designer.

So which one should I go with? At the moment I prefer the second design and you can see that logo placed on the domain home page, as well as a smaller white version on the heading of the blog itself. But there is still plenty of time before I need the website itself creating and so I can still change my mind.

I suspect I prefer the second one because it feels a safer choice and a little more formal and corporate like. I doubt anyone will hate the second one, although few will love it either. But the first is likely to evoke a stronger reaction either in favour or against.

This is where the blog readers have the chance to steer me in the right direction. If the vast majority of people prefer the first then I am willing to switch over to that one instead.

So, what do you say? First or second?

Friday, June 03, 2005

microISV, Logo Round 1

The Logo Brief

My brief to the designers was to create a logo with two parts. First of all it needs to have the Component Factory name in a modern but professional font style. Second, and more important, is the creation of an image to go with the text.

It has to be an image that when seen without the text is still instantly recognizable. One look at the image should be enough to know the company. Remember that a logo is not just a pretty picture but the foundation of an identity that the user will associate with you for a long time.

I also want the image to have a professional but stylish feel. A difficult balance to achieve, but as the company is going to sell components based largely on the quality of presentation this is essential. If you visit a company that is selling visual components and the logo and website are of a poor quality, why would you even bother to check out the components themselves?

So lets see what each designer came up with as a first set of concepts...

Candidate A - $75 from India

I was very disappointed with this initial set of ideas. They all appear very flat, boring and frankly very amateurish. I would say that none of these are of a professional standard and even with some direction I doubt they could be progressed into anything worthwhile.

This was the first reply received and I became very worried that the idea of working with three cheap designers was going to back fire.

Candidate B - $125 from Romania

Phew, this is more like it. Not fantastic but certainly they had more potential to be worked with. A little disappointed that my brief about the picture being instantly recognized was not really been worked into the image. But I like the 3D effect of the boxes even if they are not obviously factory related.

Candidate C - $199 from Argentina

Aha, the best has been left to last. I am really pleased that they have been creative and come up with a variety of quite different ideas. The text on the first picture is really nice and I like the contrast in colors for the two words that place the emphasis on the word factory. Plus it looks quite modern without becoming so arty farty that it would date quickly.

Ding Ding, Round 2

It only took about 10 minutes to sit down with the concepts and decide on the next stage. Candidate A needed to be dropped entirely because I could see no way forward with that work. Still, that's only $75 wasted.

The feedback for Candidate B was to take the image of the 3D box but work it into a more realistic factory. I want to create an association in my market place of the image of a factory and my company.

Candidate C was instructed to work on the 3D folder logo and to try and add a smokestack. Also I like the clever use of 0's and 1's in the third picture as the way of drawing the smoke.

So far nothing is obviously grabbing my attention as the definite way to go forward but it is still early days in the design process. Lets see what they can do in the next round.

Thursday, June 02, 2005

microISV, My logo beauty parade

I love the process of getting a logo created!

In fact not just a logo but getting any professional graphics created by a designer is such fun. You give them a brief of what you want and then sit back and wait with anticipation for the email alert to ping.

This is how it must feel to be a judge at a beauty parade; you wallow in the power of choosing based on shallow aesthetic criteria. Is this how it feels to be a woman shopping? I don't care about the V8 engine or turbo lag; I want the shiny red one!

But how to go about it?

There has never been a better or cheaper time to get professional graphics created. In the bad old days you had to either pay a fortune to a graphics design company or know a friend of a friend that was a professional designer. Not any more. With the internet reaching all over the world you can access the zillions of talented arties. (If a programmer is techie then surely an artist is an artie?).

A couple of months ago I came across a great internet site called This is a kind of meeting place for matching up project requirements to skilled professionals. Along with experts in technical areas such as internet programming skills, it also covers graphic design of logos, web templates and much more. This seemed the perfect place to find a great logo.

So I went ahead and posted details about the task and sat back to see if anyone would ask to get involved. Well it didn't take 24 hours and I had 25 experts providing quotes for the job. These ranged from as low as $50, from individuals in far off countries, up to $1500 from design agencies in the developed world.

One of the great features of the site is that you can browse the portfolio of previous work from each applicant. Being a diligent type of fellow I did exactly that for all 25 quotes. To my surprise the quality of the applicants work was not directly proportional to the price they quoted. Some of those quoting only $50/$200 were of an excellent standard and it is surprising how average the work of some $1500 agencies were.

I decided to offer the work to not one but three applicants. Looking at the cheap end of the quotes that also had good portfolios I appointed the following...

Candidate A - $75 from India
Candidate B - $125 from Romania
Candidate C - $199 from Argentina

So the total cost will be $399 but with three different sources I expect to definitely achieve the look and feel I want. This is still much cheaper than the $800 I paid to get a logo done in the past. I like the idea of having plenty of different ideas at the start of the process. With a logo that will be with me for many years to come we need to ensure its a good one.

I will show the initial ideas that each candidate came up with in the next post.