Archive for the ‘MicroISV’ Category

How does a micro-ISV outfit manage the outsourcing of small tasks? By using micro-Outsourcing of course!

Regular readers will know that Component Factory is just a one man and his dog sized outfit (actually I don’t even have a dog). We are the canonical example of a micro-ISV, the term coined by Eric Sink a couple of years ago to describe a single person company that develops Microsoft based software.

In fact since he invented the term there has been a whole community of developers emerge under this tag. Many reside on the The Business of Software forum run by Joel Spolsky. You can even get a book that explains the process of going from regular developer to micro-ISV company called Micro-ISV: From Vision to Reality. So if you’re thinking of making the jump yourself I would highly recommend you get the book and hang around with others in the same situation on the forum.

Of course, being a one man outfit is just a stepping towards the megacorp status and NASDAQ listing that is our destiny. But until that day arrives I need to find an effective way of outsourcing tasks that are outside my expertise. In fact not just for tasks that need alternative skills but also for tasks that would otherwise take up a great deal of my time. The most valuable commodity a micro-ISV has is time. I only have a limited number of hours available per week and I need to get maximum value from them. So if I need a new website design I want a professional graphic designer to work on it, or if I need a Unix server setup then I want someone with those skills. Trying to do it myself is either beyond my ability or will take too long to get up to speed.

So how do you outsource small tasks? If you want to outsource a major chunk of work you can hire a contractor to work with you, but this only works if you have several months of work to offer. Not many full time contractors want to take on a 2 day or 2 week project. So you need micro-Outsourcing and I found a great service recently called oDesk that offers such a service.

Like many such sites you can specify a project and wait for providers to put themselves forward and quote for the work. But unlike most sites they are not bidding a fixed price for the work but instead they are quoting their hourly rate. This is much more realistic in my opinion. Once you have interviewed and accepted a provider you then work with them on the task and they get paid according to the number of hours they work on the project.

But for me the killer feature with oDesk is that the provider has to run some software that periodically takes a snapshot of their screen. So when your account says they have spent five hours on the project you can see screen shots of the work they were doing for that entire time. So you can be assured they really did the work they say they did. As my provider is designing a new website for me it means I can see all the different ideas they work on as they go through the design process. I can email the provider and say I loved the idea they did initially but am less keen on the one later that they actually emailed to me. This combination of being able to contract small tasks and be assured on the work performed is ideal.

They seem to have a wide range of providers ranging from web designers to PHP programmers. I can imagine over time assembling a useful set of providers used for a few hours work from time to time. Ideal for a micro-ISV.

I’ve had several emails from bloggers asking why Crownwood have teamed up with us to give away $399 of software for a mere mention on a .NET development blog. What’s in it for them?

Actually this is a very simple piece of marketing what would usually be called product placement. So how does it work?

The vast majority of sales for component software are made to companies and not individual developers. There maybe the odd sale to a lone hobbyist from time to time but basically it is businesses that buy component libraries and especially the multi-developer licences that generate the big bucks.

The vast majority of blogs about .NET are written by individual developers. How many of those bloggers would have bought a copy had they not been given one? The answer will be close to zero because either they would never have paid for the software at all or they would have already bought it anyway (or the company they work for would have bought it).

So the actual lost revenue to Crownwood is virtually, and might actually be, zero. Remember that the cost of giving away a $399 copy of software to someone that would never have paid for it anyway is actually $0. There is no CD to burn or postage to pay. The cost of letting someone download an installation file is essentially zero.

So in return for almost zero cost they get their company and product name in front of hundreds and probably thousands of .NET developers. And if they get really lucky maybe someone like Scoble will put a mention on his blog and suddenly they have 10 times the normal traffic to check out their website. How much would you normally pay for that kind of marketing?

It’s just simple product placement. If your a Radio DJ you get heaps of free stuff sent to you. Why? Because the company in question is just hoping you mention their product once on a popular radion station. I think more of this will happen in the future for popular bloggers.

I don’t mean that in the literal sense, of course. But I have been taking the advice of Joel Spolsky and Eric Sink, by using Krypton within an internal application I have written.

This is the first post in over a week because I have been knocking up an application to manage customers and serial keys. Rather than try to find and buy an off the self solution I thought it would be easier to just create exactly what I need myself. Like most programmers I prefer the feely of complete control that comes from writing it to do exactly what I need myself.

It can import sales information directly from an SWREG report or connect to directly to Microsoft Outlook and scan for the sale notification emails. As well as updating the sales database it will generate any required outgoing emails.

So if an order for a 4 Navigator licence arrives it will automatically generate and send out the three additional serial keys (the first one is sent directly by SWREG at the time the order is completed). It has all the usual features you would expect in order to make life easier, the ability to search based on order numbers, email addresses etc.

I can leave it running overnight or over a weekend when I am away and know that the additional emails are being generated. This gives me a high degree of automation, I have Outlook and my internal application up and running at startup and know that my database and emails are taking care of themselves.

This is really important as a small ISV, make sure you automate just about anything you can. That way your not spending time on daily manual tasks and instead can concentrate on the important stuff, like adding features!

The only feature missing that I need is the ability to send reminders at the end of the 12 month subscription period, but I can leave that until closer to the anniversary of the first sale!

So why am I explaining this straight forward application that is no use to anyone else? Well I used Krypton to build the user interface in order to ensure that it really does work as expected in a real world scenario.

During the process I found the ‘anchor not working for controls inside KryptonGroup/KryptonHeaderGroup’ bug. It also gives me more of an insight into the pain points in developing a typical client application.

Now back to the real business of fixing the list of bugs reported for the 2.0 release. As some are quite critical it might be worth issuing a new release that just contains the bug fixes but without any new functionality.

My last day of working for another company expired last Tuesday. So what have I been doing for the first three days of independence? Well actually not what you might have expected.

You might think I was busy writing code or perhaps maybe a project plan for the next few months. Nope, actually I have been spending 8 hours per day learning to touch type.

Like most programmers my typing speed is pretty good considering I bash away without any systematic approach. But over the years it has really annoyed me having to keep looking down at the keyboard all the time. Not to mention the high percentage of mistakes that I make.

Learning to touch type is not that hard but it does require a few days of solid training before you can start using the method all the time. Plus I expect I will be coding at less than a quarter the normal speed for the first week. It might take a few weeks to get back up to the old typing output.

This drop off in output is not something most employers would be very happy about, but one of the advantages of working for yourself is the lack of a boss to worry about. Once those frustrating first few weeks are out of the way the improved top speed and productivity will last a lifetime.

If your thinking of the same idea then I can recommend the little package I am using that only cost $19.95 Typing Master.

I need to take a rest now, it has taken me 30 minutes of sweat inducing effort to touch type this post!

No formulation of market strategy would be complete without factoring in the coming tidal wave that is WPF or Windows Presentation Framework to use its full name. Although still a year away from release it will become the next generation platform for user interface development on .NET and Windows.

Market Disruption

WPF does not represent an evolution of the existing technology used to develop user interfaces but instead a revolution. Moving from .NET 1.1 Windows Forms to .NET 2.0 Windows Forms represents an evolution and a welcome one at that. But WPF is a completely different way of developing with a learning curve that brings everyone back down to the same starting point.

This completely disrupts the market for .NET user interface components. You cannot just upgrade your existing component code and add a couple of new features to keep it up-to-date. If you want to develop controls for WPF then you are starting from ground zero.

The clock is ticking on the revenues that your existing Window Forms components will generate. This is hardly surprising as all technology is superseded at some point but until WPF was revealed we did not know when it would happen. But now we can look ahead and predict very easily what will happen.

I think I am safe in saying that in 10 years time everyone doing .NET windows development will be using WPF. In fact we can move the prediction ahead and say that in 5 years I think it will be true also. So how much nearer can we predict? How about in 3 years time or even just 2 years?

I do not know the exact release date for WPF but I think it will be about the end of this year. The exact timing does not really matter that much when looking at the market over the next few years, a month or quarter either way is no big deal.

Once the technology is released I think it will take at least a year before companies starting a new project decide to use it as the front end technology of choice. Some bleeding edge developers will jump into using it straight away but most managers are cautious about a new technology.

So we are one year away from its release. Two years from now it will be getting a good percentage of new projects using it and in three years it will be adopted as a matter of course. Therefore any revenue you have for Windows Forms components is going to start declining one year from now. Two years from now the revenue is going to be a significantly down and declining rapidly. In three years you will need to be selling WPF components or starting to look for another job.

Look back at what has happened to the market for ActiveX/COM components. Although some are still sold to those still using VC++ the sales are minor compared to the money spent on .NET components. If anything the transition to WPF components will be even faster because the transition from Win32/VC++ to .NET was a greater leap than that from Windows Forms to WPF. After all, WPF is still using .NET.

The Levelling Effect

Whenever there is a big change in a market it also represents a big opportunity. Take as an example the component suite market. Take the position of Developer Express as compared to the market leader of Infragistics.

The first disadvantage for Developer Express is only having half the number of developers of the market leader and so they are constrained by resources. Man for man they need to be twice as effective in order to maintain the same development pace as the Infragistics team. A second disadvantage is that Infragistics already have many more components than Developer Express does. If Developer Express wants to appear as an equal player in the market they need the same breadth of components and so need to catch up. They need to sprint with only half the staff to catch up.

Now let’s press the market reset button by introducing WPF. Disadvantage number two has completely disappeared because both companies are starting from a clean slate. The problem of fewer resources is certainly not insurmountable. A smaller team that is highly motivated and talented can outstrip the productivity of a much larger team.

If I was Developer Express and my ambition was to compete with Infragistics as a suite vendor then I would put all my existing .NET and VCL components into maintenance mode. All my best developers would be spending their time mastering WPF and ensuring that the team can develop and release components at the same tempo as Infragistics.

So my advice to Developer Express, ComponentOne, Syncfusion, and any other vendor looking to play ball with Infragistics is to master WPF as soon as possible. Make sure that when WPF is released your out of the traps like a whippet because if they get ahead of you, its game over until the next technology reset.

First Mover Advantage

For a full description of first mover advantage you can use this link to wikipedia. If you think back to the days of the dot com bubble you will probably remember that many of the companies based their entire business model on first mover advantage. They viewed the internet like a land grab, the first company to offer a particular service was just bound to dominate and make most of the money.

Looking back it is obvious this approach is far from fool proof. Amazon was not the first book seller online and depending on which account you read was either the 3rd or the 7th. Either way it was certainly not the first. Google was hardly the first search engine but look at it now.

If you’re a high street retailer then having the very best location on the street is a great first mover advantage. No rival can do much about that. So if there are scarce resources then being a first mover can be a big advantage. But resources on the internet are almost limitless. Anyone can register a domain name and the cost of hosting a moderate server farm is not that great. You can always hire some smart developers and have a spiffy looking website up in no time.

The only real advantage you gain with respect to the internet is in markets that have a network effect. This is best described with an example. In the UK there is a website called www.friendsreunited.co.uk that allows people to find old school friends and find out what they have been up to. Now there is really only room for one website to do this as no one wants to logon to several different sites. So once they had a core group of users then everyone else just migrates to that one location.

So will first mover advantage apply to the WPF market? I think the answer is both yes and no. If you are an established number one player in your category then I think it makes sense to be the first to market. Try and ensure that no one has a reason to switch over to an alternative supplier.

Let’s consider the position of our favourite example Infragistics. They have a dominant position and substantial revenues from subscription renewals. Their priority must be to ensure that do not give any of their customers an excuse to switch over to someone else. So they must be quickly into the market and establish themselves again as the provider of the broadest range of components.

Hence my previous belief that the best chance for the other suite vendors is to quickly get into the market and use the levelling effect described above to try and attack that dominant position. I would use the same advice to any dominant player in the more specialised categories. So SoftwareFX and Dundas in the charting category should quickly move to maintain their positions as leaders in that area.

What about the rest of the vendors that are either minor players in their market or just starting out like me? In that case I would suggest they consider using the second mover advantage instead.

Second Mover Advantage

For a description of second mover advantage use this link, again from wikipedia. This is not a term that most people will have come across but is actually a very good strategy for many technology based companies.

Until now we have suggested that Developer Express et al try to quickly establish themselves in the WPF market to counter Infragistics. But what if they feel they just cannot manage it on the scale required. Instead they could deliberately not enter the market and wait to see what Infragistics does with the first release of their own offering.

By examining the Infragistics components they can learn all about the architecture and design decisions that Infragistics have taken and improve upon this with their own set of ideas and innovations. So although they are behind in terms of time to market they have a superior product that has leveraged the research and development effort of the leading competitor.

This approach is particularly appealing if you are just starting out or are a small player in a market you want to attack. You can leapfrog the capabilities of your competition. Now in theory you would expect the other company to respond by improving their own product and so begin a feature lead arms war.

What is interesting about Infragistics is that they do not tend to make big investments in improving their existing products. Oh, they do tweak and add the occasional feature but they will not completely rewrite a major component. If you came out tomorrow with a fundamentally better grid control that they could not match without redesigning the whole of their own grid, it is unlikely they would respond.

Final Strategy

I expect the WPF market for .NET user interface components to develop in the following way.

Infragistics will be keen to retain all their existing subscribers and defend their dominant market position by releasing as early as possible to the market and develop a broad set of components. Don’t let any of those subscription holders defect!

Other suite vendors will take one of two strategies. I expect most to release early in the hope of matching Infragistics component for component in an effort to increase their market share. Others, if they have the financial resources, will wait and leverage the research and development of the early releasers in order to leapfrog and bring superior technical solutions to the market later.

In the specialist categories I would expect the market leaders to also release early for the same reasons that Infragistics will do in the suite market. The smaller players will probably split between the two approaches but many will not even have thought about strategy.

Component Factory is going to take the second mover approach and deliberately wait for others to release products before designing the architecture of our own. Obviously I will be learning WPF and thinking about lots of ideas of how to create some compelling components. But the final design for them will wait until I can learn from and take advantage of the ideas others have come up with.

So what will I do for the next year or so until the time comes for serious WPF development? That time will be spent between mastering WPF and developing good old .NET2 Windows Forms controls. Although WPF is the next big wave there is still life in the old Windows Forms dog yet.