Saturday, April 26, 2014

Knowing All of Your Competition (For Good, For Bad)

Here on PEI, the IT industry is fortunate in that a lot of its business comes from 'off-Island'. It's the typical fairytale IT dream... you don't have to be where your clients are and as long as you have a decent internet connection you can be anywhere in the world. Or, to tweak the old adage, "On the internet, nobody knows you're an Islander".

People on the Island here that are able to have a clientele like that are living the dream, so to speak. The big city clients with their big city chequebooks, paying big city dollars to someone that gets to live in relative peace and quiet out of the way.

Now don't get me wrong... this is not just a PEI phenomenon. The point I want to make with this post is the same point I have made with different people at different times from all over the place. From PEI to New Zealand, there are people living and working this way, but I've found a number of them have a small blind spot.

Over the last few months or so, I've had a strikingly similar conversation with a number of these people. When I talk to them about what they do, they are more than happy to discuss where their clients are and what work they do. I tend to also ask them about the technology that they are working with, mainly because I'm nosey.

After finding out these sorts of things, I tend to ask: do you know anyone else around here (or 'there') that does similar work? It still surprises me, though, when I'm told "I don't know... all of our competitors are not here".

The reason for my surprise has a few facets, so let me explain.

Firstly, I'm asking about other companies that do similar work. I can see why that sounds like 'your competition', but really, it's not. If you're business is a Ruby based web app that tracks your dogs' visits to the dog park, why would you only consider other companies that do the same type of app to be 'doing similar work'? The fact that you're discounting the fifteen companies down the street that have Ruby web apps for tracking your cats' visits to the backyard means that you're not paying attention to the fact that they could pivot quite quickly and become your competition.

From that, what I consider to be 'similar work' generally means 'using the same technology' with a hint of 'in your problem space'. To me, knowing this is just as important as knowing who your competition is.

If you don't know who else in your area is using the same stack, then you don't realise the potential for being able to get help when you need it. If you're working with a Hadoop cluster and starting to bang your head on the wall, isn't it easier to drive 5 minutes and grab lunch with someone who's already been through that (or at least going through the same pain). Knowing these people is important as you want to be able to know who can help you (and who you can help).

Extending that somewhat, you may find that together you can gain some interesting 'purchasing power'. A company I know is using a random JS library for their front end application. All too late, they found out that another company was actually paying a large amount of cash to get on site training for the same library. Imagine if the first company knew about this ahead of time: maybe together they could have got a discount for additional training hours, or at least been able to schedule similar training the following week, knowing that the trainers were already here.

For me, those examples are the 'good' reasons you need to know your 'competition'.

The 'bad' reason comes from the fact that I'm referring to these other companies as 'competition', still. You see, especially when you're working in a small, out of the way place, these other companies are, at some point, probably going to try and hire someone out from under you. If you don't know which companies around you are using the same technologies as you, then you have no idea who might be trying to take away your human resources, right now.

Put differently, your company and products are just a really complex system for consuming inputs and producing outputs. Your obvious competitors are the ones that are trying to push their outputs instead of yours. However, never forget your inputs. If you don't have coders for input, you have no product for output. And just because your traditional competitors are not geographically near you doesn't mean that you can ignore those that use a similar technology as you do.

If you want to be surprised one day, ignore those people that are looking to hire your staffing pool (either current or future). As a bonus, if you know who these people are, you may just have a really great source of help, too...