Category Archives: Management

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.


Avoid email bankruptcy

Email is useful but can be evil if you let it manage you.  Friends and colleagues often tell me that they are overrun by email, missing important communications and failing to execute.  I’ve even seen people declare email bankruptcy where they’ve lost control and stop trying to “keep up”.  My inbox has exactly one message in it as I write this post.emailInbox  I get plenty of email – Google lets me know that I have approximately 10G / year.  Below are some of the ways that I avoid email bankruptcy and have a reasonable relationship with email.

I read email 2 times per day, one time first thing in the morning and one time at the end of the day for a total of 1 hour per day.  Email is for asynchronous communications – in other words, things that can wait until the reader gets a chance to read it on their schedule; it is not 911.  There are plenty of better tools for simple, quick back and forth communications – txt, twitter, Skype, etc…  It isn’t my problem if folks don’t understand what email is for and how to use it.  But it becomes my problem if I train folks that I’m on email all the time and I will reply back in 1 minute.

When I do read email, I avoid the practice of skimming with an intent to spend more time on it later.  I think that it is important to understand context as well as message content, a re-read forces you to re-invest in both.

I don’t use email as my task list.  Currently, I’m using Producteev as my task list – works across all devices and does all the good stuff that I like – tag, schedule, subtask, share, assign to others, follow, note, etc.  So, when I’m reading email that includes something that I think I need to attend to, I create a task in my task list with everything that I need from the email – attachments, dates and other important information – and archive the email.  I literally do not need the email any more.

I don’t sort email.  I use to sort email, but two things dawned on me.  First, I had to come up with a fixed and static organization to sort message into.  I tried sorting by sender, by topic, by importance, etc…  As things changed for me over time, I was constantly adjusting and re-sorting.  It also occurred to me that I was spending time on preparing for a search that may never come.  At about the time that I cut over from Outlook to just using native Gmail, I started just archiving – no use of tags to simulate folders.  If and when I need to find something, I just use the built in search.  Admittedly, ever once in a blue moon, I have to spend some time in the advanced search criteria trying to remember approximately when a message occurred, looking for attachments, guessing at words that may have been included in the message.  But I always find what I am looking for and I’m totally confident that if I added up all the time that I spend on actual searches, it is far, far less than the cost of sort and resorting.

I make extensive use of Gmail filters and automation.  If you spam me, I mark the message as spam and Gmail does a decent job of not showing me any more messages from you.  If you spam me again, referring to the earlier spam that you sent me, I mark the message as spam and I call you a name.  I’m an active “un-subscriber” – meaning, I do not just let some service continuously send updates that I’m not interested in – I just cut the cord.  Finally, I make extensive use of filters to bypass my inbox and go directly to archive when email is routine status updates and system type message that are good to have as references but I don’t need to waste time reading or managing messages about all systems being healthy.

I use Boomerang to help me follow up on communications that might otherwise go into a blackhole.  I don’t need to create a task to follow up with so-and-so when I send an email asking someone to do something.  In most cases, my team automatically knows to follow up with me, but Boomerang helps me remember without having to keep the message in my inbox as my reminder system.

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.

Laser Focus

A few years ago, I asked an experienced, technically-savvy friend to look at the product that we were building and objectivefocusly let me know his thoughts.  He quickly pointed out that while he was initially impressed with the array of features and power, after about an hour of use his head exploded.  He went on to point out that one of the great things about Twitter was that it basically does one simple thing with broad, mass appeal; a very difficult accomplishment derived directly from a clear strategy and laser focus.  Alternatively, lack of strategy and poor discipline often leads to building the kitchen sink in hopes that you hit on the one simple thing.  Ouch, the truth hurts sometimes.

Another guy once said: “That’s been one of my mantras – focus and simplicity.  Simple can be harder than complex: You need to work hard to get your thinking clean to make it simple.  But it’s worth it in the end because once you get there, you can move mountains.” – Steve Jobs.

Trying to do everything at once probably means that nothing will be done well, it is contrary to the fail-fast approach, it is counterproductive to being a nimble startup and it is nearly impossible to craft a message that will make your offering stand out.  Can you think of a single super successful company – Walmart, Apple, Google – that launched with a broad focus?  It’s great to dream big, but your startup needs a laser focus in the beginning to get market and investor attention. 

Here are the common sense reasons why a laser focus is more likely to lead to startup business success:

Lead the market with innovation first.  Market leadership isn’t a one-time event, continuous innovation is critical and time consuming.  Your competitors will innovate and blow right past you if you fail to invest significant amounts of energy over the long term.  It is easy to believe that pushing more products and features is innovation but it will dilute your focus, attention and depth of your expertise which is a sure fire formula for losing your market leadership position.

Time to market is critical.  Broad strategies within a resource limited startup environment takes too much time to build the supporting processes and products.  Seems obvious, but lack of strategy, fear of picking the wrong path, unwillingness to start small and build often lead to lack of focus.  Meantime, small focused nimble competitors will appear, cross the chasm and seize your business opportunities while you are off whale hunting.

Time to market’s cousin, be nimble.  Pick your cliche – fail fast, pivot, dodge and weave.  Don’t build a business in a lab.  Get into the marketplace quickly with the minimally valuable, high quality product, learn and go fast from there.  If you bring a big, do everything product to the market you will be crushed by its weight and cost.

Quality does matter.  I did not say quickly bring a total piece of garbage to the market and expect customers to use it enough to care to let you know what you need to do next.  The more you try to do in parallel, the harder it is to maintain quality.  There is a very old adage – time, quality, cost – pick two.  I pick time and quality.  Without focus, it will be expensive.  Startups can not afford expensive – so stay focused to keep your cost under control.  The dot com days of raising tons of money and spend like a crack monkey are way over.

Personal bandwidth is limited.  When a business doesn’t have focus, it quickly become complex – the team loses track of priorities, becomes tired and tends to lose motivation followed by giving up.  Laser focus is easier to manage, communicate and is more likely to result in quality results quickly.

Finally, focus on exploiting strengths and achieving success rather than resolving weaknesses and avoiding problems.  Conversely, focusing on the wrong things will result in a downward business spiral.  When applied appropriately, focus will result in rewards exceeding your expectations.  Most customers are only looking for one thing at a time.  After you saturate the market with your focused offering, then you will have the time and resources to broaden your offering.  Don’t give up your grand vision, since no investor will buy a one trick pony, but also don’t try to be everything for everyone on day one.

Business transparency should be part of your culture and strategy


With all the recent news on government data collection, information flow, etc… I’ve been thinking about the issues of business transparency.  All too often, when risks are the primary focus of management’s attention, I suspect that many executives feel that the best policy is to simply lock everything down.  I also suspect that most policies are developed in response to issues, in a piecemeal manner rather than as part of a planned culture and strategy.  While I don’t think that a business should be excessively transparent, there are significant benefit to holistically evaluating the cost/benefit of systematically investing in transparent practices in several areas:

  1. Strategy communications to generate PR and support
  2. R&D and Product Roadmap to support a market place
  3. Sales and Marketing communication to demonstrate leadership through success
  4. Anonymized customer data to articulate trends
  5. Customer satisfaction information to facilitate community, build consensus and drive improvements
  6. Personnel information to highlight activity, leadership and achievement
  7. Crisis management to enable organized response

In today’s information age, a company can gain some competitive advantages by creating goodwill and trust which can shape brand, reputation, engagement, collaboration and empower a company’s role in an industry.   In addition, a track record of transparency and trust is an incredibly helpful platform during crisis rather than sudden, isolated, responsive openness.  Few companies systematically manage their business transparency and they leave value on the table and are not well prepared for when the information age shines a spotlight on them.

Innovate quickly

Yikes, a very long time has passed since my last post, I guess this is what happens when you start a company. Nearly every train ride I think, I should write something because I enjoyed doing this last year. It also got me thinking about time and why I haven’t been doing this other than the most obvious reason – too busy. Why too busy? To the point… the importance of speed in business.

About 12 years ago, I was co-founder of a brand new startup – pre-money, 15 slides and a chair at a local VC office. In 1999, we were funded with $4M and off to the whiteboards to figure out some details of what to build. In about 9 months or so, we had our first software product and I was busy leading a Professional Service team in an effort to customize and integrate enterprise software at customer sites – different days for sure. Our Engineering team was about 15 people and built software using the waterfall discipline after writing design documentation in word, conducting cross functional design reviews and laying out a series of risk based interim milestones. They were perhaps the best Engineering teams I’ve ever worked with – they built rock solid, well thought out, very stable stuff and always right on schedule. Very early in the company, I felt the pressure to go quickly. Not just because I’m impatient, but because I understood the importance of speed to our business. I was actually infamously quoted as asking for “Crappier code quicker” which was counter-intuitive coming from the Services guy and political correctness has never been my strong suit, so my opinion on over engineering was very thinly failed by this comment. The Agile discipline architects produced a more eloquent approach to what I was attempting to facilitate.

In any case, I’ve learned many lessons, gains significant experience and transitioned to leading my own Engineering teams – mostly Agile based and all Software as a Service in the cloud, thankfully. So now I’ve been reflecting back on my keen interest in speed and why. It got me thinking about the old cliche – “Quality, Time and Cost – pick two”. In 1999, I was definitely looking to swing the pendulum away from quality in favor of speed. Today, I still believe that speed is the highest priority of these three. Speed is a super important advantage in so many environments. In the sports world, there are tons of examples like a speedy base stealer yielding more runs, but maybe just as importantly the second order benefits that are forced on a competitor under time pressure. A competitor under pressure is forced to act quickly, with much less think time will make more mistakes and change from their most advantageous strategy. A speedy football defense gains many types of competitive advantages by forcing the quarterback to think quickly and make mistakes. In the cool new startup circles, speed is the key ingredient of the popular “Fail Fast” rally cry. There is no doubt that the speedy first mover advantage is a killer advantage – I could rattle off a hundred companies that are fueled primarily by speed to market – see Groupon for a spectacular example. Sure, there are some counter examples, like Google, but the scales are definitely tipped towards the speedy lot.

So what exactly gives in the closed equation of Quality, Time and Cost. In my experience, cost is almost always fixed in practice – ye’ old budget, so argue as you may but you got what you got. Does this mean that Quality is low man on the totem pole – am I back to crappier code quicker. Actually, no. Features turn out to be the governor, in my opinion, which brings me to exactly why Agile is the discipline that allows a business to launch with a minimally valuable feature set , learn and innovate quickly.