Category Archives: Startup

Outsource Unicorn

If I tell you that you can purchase a brand new iPhone for $5, what do you think?  Yet if I tell you that you can hire an outsourced developer for $10 / hour, somehow we set aside our dad’s advice that “nothing is free” and “you get what you pay for”.

Over the years, dozens of companies have asked me to join their company to help them “clean up their technology organization which they have unsuccessfully outsourced”.

Tell me if you’ve heard any of these before?

  • You should outsource that projects because engineering resources overseas cost about $10 / hour.
  • Our engineering team is buried for the next 12 months, just outsource that project.
  • That project is a one time project, don’t hire full time resources, just outsource it.
  • We outsourced all our engineering 3 years ago, it isn’t really working and now we need someone to come help us clean up.
  • You can hire a few outsourced resources to augment your core engineering team.

So while I believe that you may know of someone who has successfully outsourced a project, there are some real challenges to getting it to work well.  I’ve learned quite a few lessons along the way – here are some of these learnings.

As you know, communications is always a critical factor in any business – outsourced or not.  Communications in an outsourced relationship, especially offshore, is a very big challenge that is most often completely underestimated.  Not only are there usually language challenges, even if the outsourced team speaks english, but there are time challenges.  You should be prepared to manage workday offsets, sometimes by as much as 12 hours.  Outsourced companies will tell you that their resources will use technology to help communicate efficiently – Skype and Hangouts work poorly in many global scenarios – delay, echo, drops, etc…  Using Wikis, Basecamp, Slack, ticketing systems and email just like you probably use with your core team is helpful, but is not a great substitute.  Outsourced companies will also tell you that they will assign an on-shore resource that will manage the offshore team as a solution to communication and timeshifted work hours.  This approach helps, but again it is not great and at best it will add lots of cost.  It adds the cost of this onshore resource, but it also adds the cost of inefficiency in having a relay system in place.

In addition to communication, there is a very large issue of resource stability over time.  For whatever reason – maybe because they pay their resources poorly, outsource companies don’t seem to retain resources for more than a month or two.  The costs of changing resources is very high, as usual.  You will pay for the lost productivity of having to bring in a new resource and bring that resource up to speed.  Also, if the onshore manager, communication relay that I mention above happens to be the person who leaves your team then the impact is enormous.  Finally, keep in mind that if you reduce your demand for resources, of course the outsource company will move the resources and so starting another phase or even supporting your existing product will become very, very expensive – so manage your demand wisely or the supply will go away.

In my opinion, there is a big difference between engineers and coders.  Coders, simply implement – write lines of instructions to tell a computer what to do.  Understanding a problem and designing an approach to solving the problem using computer instructions is a totally different animal.  Designing an end-to-end platform that involved many, complicated interactions requires even more experience, education and skill – engineering is very, very different than coding.  I have yet to work with an outsource company that employs engineers and never an architect.  The results that I have routinely seen is giant pile of code, mostly undocumented and never, ever efficient.  By this, I mean there is never any use of modern object oriented constructs such as inheritance, if a routine is needed elsewhere – the code is copied and pasted elsewhere.  So when you have a bug, you probably have that bug in 10 places.  To make matters even worse, I’m just describing simple procedural routines.  I never, ever see good use of more advanced engineering concepts – for example, multi-threading or distributed processing.  All of this leads to a maintenance nightmare.  Sometimes you can lower the impact of this by hiring a full time employee as your architect, but even this is not foolproof.

The above are very serious landmines that are not easy to circumnavigate – you are not going to write an iron clad contract and secure a fixed bid contract to avoid all of this.  And while you may conclude that you should never use outsourced development, that is not really my mission here – you can use it, but it will be far more expensive than advertised and you will need to invest significantly in avoiding issues that will turn your project into a big problem.


What this CTO does.

The role of a CTO is a topic that inspires many to ask so many questions.  What is the difference between a CTO and a VP of Engineering?  What to look for in a startup CTO?  There are literally hundreds of posts on the topic and deep comments threads explaining various experiences in various scenarios.  I think that is exactly the take away; the specific scenario matters.  The specifics being important and not unique to the CTO role.  A good sales leader in one business doesn’t necessarily work in all the other businesses.

My experience as a CTO has been in the area of building native cloud based, highly scalable platforms from the ground up.  The platforms have been built to process massive amounts of data, high transaction volumes and large numbers of concurrent users or device interactions.  When I say from the ground up, I mean that I run around with powerpoint slides and wireframes describing the business before a line of code is written.  The first goal is alway to sanity check the business idea.  The idea always changes, often in big ways (aka. the infamous “pivot”) – so it most likely is a total waste of time and money to write code to aid in describing the business value.  I’ve raised at least $20M with PPT and zero code.  Yet, I’m literally contacted two times a week by folks that want help or advice in writing prototype code so they can raise money.  What?  You might be talking with the wrong folks if they need a prototype or maybe you are not explaining your idea clearly.

Unfortunately, I don’t get to write code these days.  I’ve read all the comments about if the CTO doesn’t write code then go get someone else.  That advice is total baloney.  What is much more likely to be true is that an architect or lead developer is needed for that particular business and you should not being describing the role as CTO.

So what do I do as a CTO?  Thinking back over the past companies that I’ve been a CTO, I spend a lot of time translating business ideas to a platform concept or dear I say, vision.  I also spend time researching available technology to support the future platform architecture – I refuse to build things that already exist, I want to concentrate on building the new, non-existent stuff as quickly as possible.  I also spend time reverse translating platform capabilities to business use cases – in other words, how does the technology support solving the important business problem – in the end, that is the entire point.

I’m deeply involved in contract negotiations, especially in relationships that involve critical technology partners.  There are many important aspects of technology partnerships that will cto-areas-of-responsibilitymake or break the value of your platform as an asset and in turn, maybe even your entire business model.  For example, data rights and protection of intellectual property are critical.  Similarly, I spend a lot of time in helping sales and business development understand customer use cases and mapping it to our platform, or in identifying creative ways to fill gaps or in recognizing a general pattern that needs to be built into our platform.

I’ve been part of businesses that have raised hundreds of millions of dollars and have sold several of these businesses.  I spend a lot of time in the due diligence process – explaining our platform inside and out, describing our discipline and investments, forecasting future ideas and in general supporting the idea that we have a technology asset that is truly worth something and supports our business idea.

I’m responsible for recognizing intellectual property and doing something about it.  Notice that I’m not just leaving it as, filing a patent.  That is because filing a patent is just one small thing that you do to protect your IP; quite honestly, probably not the most important.  I believe that if you have something that is true IP, that you need to get it to market quickly and run with it as fast as possible because that is what makes it really defendable and it often is the key business differentiator that every business wants to include in their pitch.

I spend a good amount of time identifying and understanding emerging technology and trends.  I look for opportunities to use or integrate in support of solving problems or filling gaps; I’m also interested in potential threats or disruptors.

Finally, just beyond the first couple of weeks and months, there is a ton of team work investments and operational stuff that I need to make and this grows with the size of the business.  Having bought and sold a few business, I understand how companies evaluate a technology based business and what value is assigned upon acquisition but also how companies forecast future investment requirements.  In other words, buying a great technology idea running in my basement with no documentation run by cowboys is far less valuable than a well documented platform, running in a fault tolerant architecture cared for by a top-notch team of professionals with verifiable workflows.  Building that isn’t free, but well worth paying those investment taxes along the way.

See no code, sadly for me – but then, I’m not the lead developer or architect or even the engineering manager.

 


Beyond the MVP

One of the most important product management concepts is getting to market sooner rather than later with the Minimally Valuable Product (MVP) and iterating or pivoting as you gather feedback and learn, especially if you are building new, innovative products.  This is simply the 80/20 rule applied to product management.  Ignoring this concept and you risk over investing before you truly understand market requirements and you are very unlikely to get a return on your time and money.

MinimumViableProductBut what happens after you’ve validated that your MVP is on-track and valuable?  How do you decide how much of the remaining 20% improvement is worth your time and money?  Information is the missing ingredient and often it doesn’t exist when you’re building something new.  The Imitation Game movie is about how Alan Turing crack the enigma code by building what many folks believe is the first computer.  The key was reducing the breadth of the problem, reducing it again and finally searching for a pattern to build into your product.  You can always expand the scope later.

How do you get the non-existent information?  In years past, the only way to get non-existent data is to gather the information yourself – often this is slow and very expensive.  All the map product guys employ many people to drive around and gather information on roads and buildings.  Startups never have the resources that Google has so alternatively today, crowdsourcing is an outstanding method and alternative to gathering your own data.  For example, Waze designed a product that encouraged their users to provide feedback and they crowdsourced information that would have cost many millions of dollars.

Finally, when you’re in the trenches of reducing the problem scope and searching for patterns, be on the lookout for technology game changers – i.e. internet, mobile, cloud, etc. – that change assumption and unlock new pathways.


You know why I’m here

Just some blogging fun here…

In the world’s biggest noise factory, the SuperBowl, Marshawn Lynch continues to straight arm the circus performers as he responds to every question with “You know why I’m here”. He defies the NFL’s mandates, wearing his unapproved beast mode gear while trending on twitter. Genius media stunt or pampered starred athlete who is breaking his contract? Marshawn Lynch
Meanwhile, “All-Pro Stanford Graduate”, Richard Sherman attempts to redirect the mob to more important matters. Mission accomplished, I’m entertained by the entertainment (and remember, sports entertainment is the NFL’s business) and I will survive without the philosophical gems laid down by NFL players.

I will admit that I like the phase “You know why I’m here”; it got me thinking. Not about checking the box, conforming to the rules, avoiding the penalty – but about strongly believing in something and sticking to it. Cutting through the noise, facing adversity and staying on a mission is difficult and when you take this path, you’ll stand out which will make it even more difficult. I see many examples of following the pack, getting into a routine, doing the comfortable stuff – all ok, not bad. You definitely need to take care of some basics, but remembering why you are here and pushing is super important.

Full disclosure, I’m a Patriots fan.  Patriots 30, Hawks 20.

Go Patriots!

Now I have to go find a t-shirt with this quote.


Startup Timing

David Fisher once wrote “What often characterizes visionaries is their lack of vision. It’s a popular idea that people of genius see farther and clearer than other people, but perhaps the truth is actually the opposite. Visionaries often don’t notice the enormous and obvious impediments to realizing their technological dreams – roadblocks apparent to more practical people”.

Have you ever read The AltaVista Search Revolution?  Is there any argument that AltaVista’s search engine was a spectacular idea ahead of the market that Google later seized?

I am asked all the time for “What’s the one simple thing that makes a successful startup”.   I’ve written and tweeted about about passion, laser focus, speed, agility, leadership but to be clear there is no formula for startup success; Statistically, startup success is a rare and exceptional event.  Entrepreneurs are rightfully focused first on innovative ideas, but the genius is seeing the market timing and having the discipline to be ready for it.

greed-fear-marketWhen entrepreneurs are in the early stages of vetting their ideas, they are typically very focused on solving a problem that people with money very much want solved; In other words, do you need to use this and how much will you pay for it?  Often the pitch deck’s market slides describes broad, existing markets.  But pattern recognition using broad historic inspection and patterns are nearly useless for predicting rare future events.  Often sufficient conditions are just emerging and predicting scale is nearly impossible.  We all know that technology will be mobile, location-based, social and fully personalized – lots of successful startups will be built along the way, but when?

Again, the genius is seeing the market timing *and* having the discipline to be ready for it.  This means, manage your resources accordingly.  The basics are emerging trends usually take longer than the enthusiastic entrepreneur expects, so keep that burn low, lengthen the runway, work hard/smart and be patient.   If you’re entering a market that is already trending, you should ramp aggressively.

Finally, sometimes random, unexpected and uncontrollable events make significant changes to market conditions.  Sometimes these events are favorable, some will say “lucky” and sometimes these are catastrophic – for example, the events of 911 crushed the financial markets and nailed the dot-com coffin closed.

More than once, I’ve found myself significantly out in front of the market, then the real challenges and tough decisions take place.