You may not be frequently giving out an embarrassingly gushing smile and you might not write little love notes during your lunch break. But, there are ways to tell if you love your job.
Of course, no job is perfect -- even the best of relationships have their down days. We all have to do things we don’t like. I love working at HubSpot, it's the best job I've ever had (but, that's by design). But, even I have “off” days where I'm not spending all my time doing things I absolutely love.
So all of the following may not be the case all of the time. But when you love your job, many of the following should be the case much of the time:
1. You don’t talk about other people; you talk about the cool things other people are doing.
“I hear Michelle has really improved our customer happiness scores.” or “I’d love to know how Mike managed to rescue that sale.” “Sherry developed a new tool that's made our lives so much better.”
When you love your job you don’t gossip about the personal failings of others. You talk about their successes, because you’re happy for them – and because you’re happy with yourself.
2. You think, “I hope I get to…” instead of, “I hope I don’t have to…”
When you love your job it’s like peeling an onion. There are always more layers to discover and explore.
When you hate your job it’s also like peeling an onion – but all you discover are more tears.
3. You see your internal and external customers not as people to satisfy but simply as people.
They aren't numbers. You think of them as real people who have real needs.
And you gain a real sense of fulfillment and purpose from taking care of those needs.
4. You enjoy your time at work.
You don't have to put in time at work and then escape to life to be happy. You believe in enjoying life and enjoying work.
When you love your job, it’s a part of your life. You feel alive and joyful not just at home – but also at work.
5. You would recommend working at your company to your best friend…
In fact, you can't stop talking about how cool your company is and the awesome work you're doing even when you're away from work. Your friends and family are envious.
6. You enjoy attending meetings.
No, seriously, you enjoy meetings. Why? Because it’s fun to be at the center of thoughtful, challenging discussions that lead to decisions, initiatives, and changes – changes you get to be a part of.
7. You don’t think about surviving. You think about winning.
You don't worry much about losing your job. You're more worried about not achieving your potential. Not being as impactful as you can be.
8. You see your manager as a person you work with, not for.
You feel valued. You feel respected.
You feel trusted.
9. You don’t want to let your coworkers down.
Not because you’ll get in trouble or get a bad performance review, but because you admire them – and you want them to admire you.
10. You hardly ever look at the clock.
You’re too busy making things happen. When you do look at the clock, you often find that the time has flown.
11. You view success in terms of fulfillment and gratification – not just promotions and money.
Everyone wants to be promoted. Everyone wants to earn more.
You definitely feel that way too… but somewhere along the way your job has come to mean a lot more to you than just a paycheck. And if you left this job, even if for a lot higher salary… you would still miss it.
A lot.
12. You leave work with items on your to-do list you’re excited about tackling tomorrow.
Many people cross the “fun” tasks off their to-do lists within the first hour or two.
You often have cool stuff – new initiatives, side projects, hunches you want to confirm with data, people you want to talk to – left over when it’s time to go home.
13. You help without thinking.
You like seeing your colleagues succeed, so it’s second nature to help them out. You pitch in automatically.
And they do the same for you.
14. You can't imagine being somewhere else.
You're having too much fun. Learning too much.
How many of the above statements apply to you and your job?
If you said:
0-3: You may want to find a new job. Life is too short.
4-6: You don't hate your job... but you don't love it either. What can you do differently?
7-10: You really enjoy your job and the people you work with
11-14: You are deeply, madly in love with your job! (and your friends are definitely jealous!)
Article has
17 comments.
Click To Read/Write Comments
There’s a massive amount available on the interwebs on how to improve the odds for success in new ventures. But almost nothing concrete is available on the care and feeding of your investors. You can do all of the Lean Startup experimentation you want, but we’re here to tell you that one of the the easiest and most underrated skills that a startup CEO needs is knowing how to keep your investors updated, excited and engaged.
The reason is: The CEO is the investor's user interface into the business. It's how investors see what's going on, and in some minimal ways, interact with the business.
We polled several early stage investors (including ourselves) that have 30+ investments each under their belts, and asked them their advice for entrepreneurs on how best to communicate with them and update them on the business. Here are the results.
1) Write your investors consistently. probably every 1-2 months (if you're early stage), and every 2-3 months if you're a bit further along. If you have a regular advisory board or board of directors meetings, that's a good time to send out an update. This is preferable to phone calls, both for you and for them. If you’re smart, you’ll send this letter out, in more or less similar form, not only to your investors but also to mentors, advisors and staff. And if you do ever follow up with calls, they’ll be up to speed and more productive.
2) Keep it short. 2 pages, max. Your investors want to know what’s going on, but they don’t need to hear every detail.
3) Use a template. We like the TechStars one. Katie Rae and Reed Sturtevant of TechStars Boston teach their companies to communicate with mentors in a way such that each letter builds on the previous one. Typically, the letter gives both highlights and low-lights since the previous communication, sets some short term goals, and then reviews the progress—or lack thereof—on the goals set earlier. Just knowing that you will be producing a report card helps focus you on the important stuff and ensures that things don’t get forgotten. Check out the investor update template for a sample.
4) Remind them what you're doing (now). I know this is going to sound strange, but often your investors are not doing as good a job as they could keeping up with all your activities, news, tweets and pivots. Always include a one sentence description of what you're doing (now) just as a friendly reminder. A side benefit to this is that it forces you to write (and read) your one sentence description. This is one of the hardest tasks in startup-land.
5) Tell them the one or two strategic problems you are wrestling with. Got a few hard decisions? You’d be surprised how quickly an investor will respond. And odds are pretty good that they’ve seen this movie before and can help you come to a better decision. If it’s personnel-related, though, you may wish to be more circumspect.
6) Keep it honest, but don’t tell your secrets. Would you be comfortable if this email ended up in public, or in the hands of your competitors? If not, consider editing it down.
7) Always have 1-3 direct asks. Looking for some specific introductions? Ask. Need to source some key personnel? Ask. Want them to share some important news on their social media networks? Don’t be proud, don’t be shy, just ask. 90% of the time, the investor will probably not be able to help, but in the 10% of the time they can help, it's often pure gold.
8) Cast a wide net, but bcc. The more people you can keep up on your company, the more likely it is someone will be able to help you out, and the more you can leverage your network. But respect your investors’ privacy, and make sure you are not revealing any confidences in the letter. (I still screw this up—when in doubt, leave it out.) One idea would be to setup a simple mailing list so you're not trying to type in email addresses manually every time.
9) ARCHIVE all correspondence in a shared folder. Your investors will be grateful that they don’t have to be organized. This tip is so simple, yet almost no one does this. Your investors have more on their plate than just you. Make it easy on them by putting everything they need to see into one folder which they can reference. Send each letter by email (don’t make them have to hit links or print out attachments,) but include a link to the shared folder with the full archive. Inside, have all of your historic correspondence, and perhaps even your latest pitch deck, any financials you want them to see, etc. You might consider having two separate folders—one complete one, for the inner circle, and one that’s been redacted down for the broader crowd.
Startups fail for lots of reasons— but one of the most common one is that they run out of money. Informed investors are generally happier investors—and at a minimum more capable of helping. And, if you're out raising another round sometime, chances are, your angel investors are the one's that can help make intros. It's easier for them to do that if they hear from you more often than once every 12-18 months when you need some paperwork signed.
Remember, this exercise is as much for you as it is for them.
This entire process should take you less than an hour or two a month and it's worth it. Besides, if you do it right, you'll actually find that it helps you to write these updates -- and it's not a complete waste of time.
This article was a collaboration between Ty Danco and Dharmesh Shah. Ty is CEO/co-founder of BuysideFX and an angel investor/mentor (you should be reading his blog). Dharmesh is founder/CTO of HubSpot, runs OnStartups.com and is an angel investor in over 40 companies (you can follow him on twitter @dharmesh).
Article has
8 comments.
Click To Read/Write Comments
Entrepreneurs that are looking to get attention from bloggers and journalists will often pitch their businesses themselves or though a PR agency.
It's sad that most of those pitches fall flat and are likely to be completely ignored. A waste of time and money for everyone.
For example, here’s a pitch from a PR professional. I’ve changed it slightly to avoid embarrassing anyone:
“I’m working with a wonderful new business… The owners grew up together and decided to go into business… it’s a story I’m sure your readers will care a lot about!”
Uh, no. It's unlikely that people are going to care about this story.
Don’t get me wrong. I’m sure the entrepreneurs are great people, but many entrepreneurs can tell a tale of struggle and euphoria and heartbreak and someday, against all odds, turning their dreams into reality and making their business a success. While occasionally readers might be inspired or motivated, for the most part we’re just not that interested in other people’s stories. Unless those stories are particularly remarkable we're more apt to just keep living our own dreams and writing our own stories. So, the things we're interested in is not other people's stories, but information that helps us write our own.
So what should you do if you’re trying to spread the word about new products and services, landing new customers, bringing investors onboard… all the stuff you hire PR agencies to do for you or, more likely, try to do on your own?
If you’re looking for press, forget the formulaic, cookbook approach to crafting a winning media pitch. That approach may result in coverage in a few outlets… but not the ones you really want.
Quick rule of thumb: Any media outlet that will do a story based on a crappy pitch is a media outlet that will get you crappy exposure.
Let’s pretend you’re thinking about pitching me an article idea for OnStartups.com (which has a modestly sized, but awesome audience). You can apply the following to any media outlet or blog, though.
Here’s what to do and not to do:
Don’t tell me your story is unique.
No offense, but it really isn’t. There are thousands of Ramen noodle stories. There are thousands of 3 am “Eureka!” stories. There are thousands of maxed-out credit cards, relatives won’t return your calls, last-minute financing savior stories.
Your story is deservedly fascinating to you because you lived it (just as my story is fascinating to me), but to the average reader your story sounds a lot like every other entrepreneur’s story. Claiming your story is unique creates an expectation that, if not met, negatively impacts the rest of your pitch.
And if your story truly is unique, I’ll know. You won’t have to tell me.
Don’t tell me how much a little publicity will help you.
Never waste time by explaining how this could be a win-win relationship or, worse, by claiming you want to share your wisdom because you simply want to help others.
I know you want publicity, and I know why. I get it. I've been there. We’re cool.
Know what I’ve done recently.
It’s easy to think, “Hey, he recently wrote about choosing a co-founder, so I should pitch a story about how I help people find co-founders”
Um, probably not. If just wrote about co-founders. I’m probably good for a little bit on that topic. Never assume one article indicates an abiding fascination with a particular topic.
But do feel free to pitch if you aren’t a member of the choir I just preached to. Different points of view catch my attention; same thing, different day does not.
Know my interests.
You certainly don’t need to know I enjoy late-night walks on the beach. (Hey, who doesn’t?) But skim a few posts and you’ll know I have a soft spot for company culture, startup funding and startup marketing
So if you really want to get my attention, don’t use the tried-but-in-no-way-true “mention you really enjoyed something recent the writer wrote” approach.
Instead put your effort into finding an angle that may appeal to my interests. If you can’t be bothered to do that you’ll never get the publicity you want.
Forget a profile piece.
Straight profile pieces that tell the story of a business are boring. (At least I think so, which is why I don't post those)
The best articles let readers learn from your experience, your mistakes, and your knowledge. Always focus on benefiting readers: When you do, your company gets to bask in the reflected PR glow.
So,readers don’t want to know what you do; they want to know what you know. If you started a company, share five things you learned about landing financing. If you developed a product, share four mistakes you made early on. If you entered a new market, share three strategies you used to steal market share from competitors.
And while you may think the “5 steps to” or “4 ways to” approach is overdone, keep in mind readers love them… and even if I decide not to frame the story that way, developing mental bullet points ahead of time is a great way to organize your information (which helps me) and ensure you have great talking points (which definitely helps you.)
Realize that the more you feel you need to say… the less you really have to say.
Some people think bloggers are lazy and look for stories that write themselves. I can’t argue with the lazy part, but I really don’t want to read a 1,000-word pitch with a comprehensive overview of the topic and a list of semi-relevant statistics. The best products can be described in a few sentences, and so can the best pitches:
So now let’s get specific. Pretend you’re crafting your pitch:
Remember: forget what you want.
Many people think, “Wow, it would be awesome if OnStartups.com ran a story about our new product—think of the exposure! So many VCs would read it! We're looking for funding!"
Maybe so, but unless you focus on how readers can benefit from the story (learning about your new product isn’t a benefit to readers), that’s not going to happen.
Then, think about what I want.
I want to inform and occasionally – hopefully – entertain readers; the more you can help me accomplish that goal, the more interested I am in what you have to say.
Then craft your pitch with publicity as a secondary goal.
In the example above, the PR pro didn’t offer readers anything. His only focus was on getting publicity to benefit his clients.
Flip it around and focus solely on how you can benefit readers. When you do, your company will benefit by extension.
For example, if you want to spread the word about:
· New products or services: Share four lessons learned during the product development process; describe three ways you listened to customers and determined how to better meet their needs; explain the steps involved in manufacturing products overseas, especially including what you did wrong.
· Landing a major customer: Describe how you changed your sales process to allow you to compete with heavy hitters in your industry; share three stories about major sales that got away and what you learned from failing to reel them in; detail the steps you took to quickly ramp up capacity while ensuring current customers needs were still met.
· Bringing in key investors: Explain how you helped investors embrace your vision for the company; describe four key provisions that create the foundation for a solid partnership agreement; share the stories of three pitches to VCs that went horribly wrong and how those experiences helped you shape a winning pitch.
Sound like a lot of work? It is, but it’s worth it. When you offer to help people solve problems and learn from your mistakes, bloggers and writers will be a lot more interested.
More importantly, readers will be more interested in the news you want to share because first you helped them—and that gives them a great reason to be interested in your business.
Article has
3 comments.
Click To Read/Write Comments
One of the big no-no’s we’ve learnt about early on in Silicon Valley is to publicly share the pitchdeck you’ve used to raise money. At least, not before you’ve been acquired or failed or in any other way been removed from stage. That’s a real shame, we thought. Sharing the actual slidedeck we used (and one, that’s not 10 years old) is by far one of the most useful things for others to learn from. In fact, both Joel and I have privately shared the deck with fledging founders to help them with their fundraising. On top of that, our case study is hopefully uniquely insightful for lots of people. Here is why:
- Half a million is not a crazy amount: It’s therefore hopefully an example that helps the widest range of founders trying to raise money.
- Both Joel and myself are first-timers: We couldn’t just throw big names onto a slideshow and ride with it. We had to test and change the flow and deck a lot.
Ratio thinking
One of the most important elements, that we had to learn during our fundraising process was the concept of “Ratio thinking”. Jim Rohn, the famous motivational speaker, probably explained it best:
“If you do something often enough, you’ll get a ratio of results. Anyone can create this ratio.”
It sounded simple enough as a concept to us, but man, this was one of the toughest things to learn. Here is how Joel described it in
a recent article on ratio thinking:
“The law of averages really comes into play with raising investment. Overall, we probably attempted to get in contact with somewhere around 200 investors. Of those, we perhaps had meetings with about 50. In the end, we closed a $450k seed round from 18 investors. Perhaps the most important part of our success in closing that round was that Leo and I would sit down in coffee shops together and encourage each other to keep pushing forward, to send that next email asking for an intro or a meeting. In many ways, the law of averages is the perfect argument that persistence is a crucial trait of a founder.”
I believe that this is in fact one of the most valuable things to know up front. It requires a huge volume of work and meetings.
How to read this deck: It builds up to one key slide – Traction
If you go through the deck, you will quickly realize that the one key slide was the traction slide. We quickly realized that as first time founders, this was probably our only way to raise any money: By focusing everything on the traction slide. Here is how Joel describes this in his article on
raising money as a first-time founder:
“So my advice for first time founders who want to raise funding is almost always to put that thought aside until you have good traction. Instead, focus completely on traction. Focus on product/market fit. When you have good traction, it becomes much easier to raise funding.”
Avoid confusion: Our second most important slide – competition
Another thing we quickly realized when raising money was this. Although investors were very interested in talking to us, especially because of our early traction, talks then stalled. Why? The social media space seems very crowded. From the outside, it looks like there are dozens and dozens of apps all doing the same thing. On the inside, you however quickly realize that there really aren’t that many options.
The question was almost always timed at the exact moment in each meeting: “So, aren’t there lots of other apps doing the same?” And we explained to them about the TweetDecks and Seesmics and that Buffer is different and so forth. That never worked. So after lots of meetings, we realized that the competition question (in our case) created the most friction and eventually left people too confused and not interested any more. We took some time aside and made this slide as easy to understand as possible and explain Buffers positioning without creating all the friction:
The slidedeck
Without any further explanation, here it is:
A note on transparency
With Buffer, our goal is to take our ideas of transparency for our company to a whole new level. That’s why it was very important for us to make this slide deck public. This slide deck is far from perfect. As previously mentioned, it probably falls into the average category. But it was what at the end of the day helped us raise the funds to turn Buffer into the company it is today. So it’s hopefully a real-world case study that clearly shows what is important and what might not be so helpful for investors to know about. We want to continue publishing our ideas and thoughts about topics that get rarely talked about. Joel and I will be around to answer any further questions you might have on our fundraising process. Please post anything you have in mind in the comments below.
This is a guest post by Leo Widrich (@leowid), co-founder of Buffer. Note: I'm an angel investor in Buffer and my company HubSpot has a little bit of overlap in functionality in our Social Inbox product.
Article has
2 comments.
Click To Read/Write Comments
Remember your first business loan? Or, if you're like many entrepreneurs, you may have initially bootstrapped your startup by buying some stuff on your credit card. You were excited and apprehensive: Excited because now you had the cash to invest in your business, apprehensive because you had just taken on a debt you would have to repay.
But that was okay, because you were confident you could create more value than the interest you would pay. Even though you eventually have to pay off a financial debt, gaining access to the right resources now often marks the difference between success and failure.
That’s true for financial debt – but it’s almost never true for culture debt. 
Culture debt happens when a business takes a shortcut and hires an employee with, say, the “right” the skills or experience… but who doesn't fit the culture. Just one bad hire can create a wave of negativity that washes over every other employee, present and future – and as a result, your entire business.
Unfortunately the interest on culture debt is extremely high: In some cases you will never pay off the debt you incur, even when a culture misfit is let go or leaves.
Here are five all-too-common ways you can create culture debt that can keep your startup from achieving its potential:
1. You see the ivy and miss the poison
The star developer who writes great code… but who also resists taking any direction and refuses to help others… won't instantly turn over a new interpersonal leaf just because you hire him.
The skilled salesperson who in the short-term always seems to outperform her peers… but who also maneuvers and manipulates and builds kerosene-soaked bridges just waiting to go up in flames… won’t turn into a relationship building, long-term focused ambassador for your company just because you hire her.
The interview process is a little like a honeymoon. You see the best the candidate has to offer. If a prospective employee doesn't look like a great fit for your culture before he is hired, he definitely won’t be after he’s hired.
Never risk making a deal with the culture-fit devil. The soul of your company is at stake. Seriously.
2. You discard the attitude and play the skill card
Skills and experience are worthless when not put to use. Knowledge is useless when not shared with others.
The smaller your company the more likely you are to be an expert in your field, so transferring those skills to new employees is relatively easy. But you can't train enthusiasm, a solid work ethic, and great interpersonal skills – and those traits can matter a lot more than any skills a candidate brings.
According to this study only 11% of the new hires that failed in the first 18 months failed due to deficiencies in technical skills. The majority failed due to lack of motivation, an unwillingness to be coached, or problems with temperament and emotional intelligence.
Think of it this way: The candidate who lacks certain hard skills might be a cause for concern, but the candidate who lacks the beliefs and values you need is a giant culture debt red flag.
3. You try to sell a used car
It’s tempting to over-sell a candidate on your company, especially when you desperately need to fill an open position and you've been recruiting for seemingly forever.
Don’t sell too hard. Great candidates come prepared. They've done their homework. They already know whether your company is a good fit for them based on what they've read about you online. The really great recruits might have been stalking your company for many weeks or months -- seeing what the company feels like.
Describe the position, describe your company, answer every question, be candid and forthright, let your natural enthusiasm show through… and let the candidate make an informed decision. But, don’t oversell.
The right candidates recognize the right opportunities – and the right cultural fit. If you have to try too hard to convince someone, and the love is unidirectional, it's not setup for long-term success.
4. You mistake the rumblings for hunger
Nothing beats a formal, thorough, comprehensive hiring process… except, sometimes, a dose of intuition and gut feel.
At my company HubSpot (grew from 0-500 employees in 6 years) there are five key attributes we value:
· Humble. They’re modest despite being awesome. They’re self-aware and respectful.
· Effective. They get (stuff) done. They measurably move the needle and immeasurably add value.
· Adaptable. They’re constantly changing, life-long learners.
· Remarkable. They have a super-power that makes them stand out: Remarkably smart, remarkably creative, remarkably resourceful…
· Transparent. They’re open and honest with others – and with themselves.
In short, we look for people with H-E-A-R-T, because they help us create a company we love. So we always weigh our impressions against more qualitative considerations. You should too. Think of it this way: The more experience you have – the more lumps you’ve taken and hard knocks you’ve received and mistakes you’ve made – the more “educated” your “gut.” While you should never go on intuition alone, if you have a funny feeling about a candidate… see that as a sign you need to look more closely.
And look more closely.
For a detailed insider’s peek into how we think about culture at HubSpot, check out our Culture Code slides (embedded below for your convenience).
Bottom line: Define the intangibles you want in your employees and never compromise by hiring a candidate who lacks those qualities.
5. You decide to double down
There are two basic kinds of risk you can take on a potential employee.
First the worthwhile risks: Taking a shot on a candidate you feel has more potential than her previous employer let her show; taking a shot on a candidate who is missing a few skills but has attitude in abundance; taking a chance on a candidate you feel certain brings the enthusiasm, drive, and spirit your team desperately needs. Those are good chances to take.
Now the foolish risks: Taking a shot on a candidate with a history of performance issues that you hope will somehow develop a strong work ethic; taking a chance on the candidate who left his last two jobs because "my bosses were jerks;" taking a shot on the candidate who has no experience yet only wants to talk about how quickly and often she will be promoted.
Why do you rationalize taking foolish risks? You're desperate. Or you're lazy. Or you have "other issues to focus on." Or you figure your culture is strong enough to withstand the impact of one ill-fitting employee.
Don't take foolish risks. They almost always turn out badly. Occasionally take potentially worthwhile risks, because they can turn out to be your most inspired hires and, eventually, your best employees.
And never, ever take a chance that creates high-interest culture debt.
The cost to your organization is just too high. And, life is short.
A variation of this article was also posted as part of my participation in the LinkedIn Influencers program.
Article has
0 comments.
Click To Read/Write Comments
After the week we've had in Boston this week, I found it hard to focus on any overly heavy work this weekend.
So, instead, I created the slide deck below. This is unlike the prior deck I worked on (Culture Code), which had 150+ slides, and proved to be useful. This one is 14 slides, takes a minute to go through and is almost
completely without use.
But ye, it's fun. Hope you enjoy it.
(And, disclosure: This was not completely for amusement. There's a call-to-action at the end, and the deck is intended to collect some data and tips for an upcoming talk I'm giving).
Oh, and as you'll see from the deck, I'm not the best comedic writer in the world, so if you have a better caption for some of those slides, please leave them in the comments.
Thanks for indulging me every now and then. Now, back to real work.
Article has
0 comments.
Click To Read/Write Comments
After spending a significant portion of the last couple of years talking and collaborating with countless entrepreneurs (through FounderDating) a few clear themes have emerged around partnering with cofounders. We’ve noticed some valuable best practices…as well as some very common mistakes. In the hopes that we can save more entrepreneurs some time and heartache, here are three of the biggest mistakes:
1. Need
I actually don’t like to spend a lot of time convincing people they need a cofounder. There are enough people out there that either came to that conclusion right away, or felt the pain of not having one and realized it pretty quickly. Sooner or later, people will usually figure it out. For their sake, I hope that it’s sooner rather than later. But let me briefly to explain why the right cofounder is important (emphasis on “right”).
You don’t know what you don’t know
That’s always true, but in the case of starting a company or even a side project, you should assume that the body of knowledge you’re missing is vast. There is no way to make up for it all, but if your cofounder has complimentary skill sets, it will help shrink the missing body of knowledge. Chances are that it’s not only your role or the areas you know well that are tough to do and tougher to learn. It’s not a coincidence that, according to the Startup Genome Project, balanced teams with one technical founder and one business founder raise 30% more money, have 2.9x more user growth and are 19% less likely to scale prematurely than technical or business-heavy founding teams.
Your emotional partner
Beyond skill sets, starting a business is a test of your emotional will. Do you have any friends that are single parents? It’s not merely twice as hard, it’s exponentially harder than raising a child with a partner. Your cofounder is your partner – through every decision, every idea, each and every up and down of the emotional roller coaster. Only a cofounder will feel the high and lows like you do. Advisors and friends are great, but they aren’t nearly as emotionally invested as you are.
2. Approach
How do you approach someone about potentially being a cofounder? So many people start by thinking about an idea. I get that. It incites passion, you get excited, feel like there is something tangible to work on. But then you start thinking about a cofounder and pitching or hard selling someone on a specific idea. That [almost] never works. Chances are so good that your idea will change - either somewhat or completely - that Vegas wouldn’t even lay odds on it. So, let’s say you hard sell someone on the idea, they fall in love with it … and then the idea changes. Then what are you left with? Fall in love with the person, not the idea.
Even worse is pitching someone as though you’re offering a job that centers around your idea. The people you want to be your cofounder don’t just want to work on an idea, they want to be a part of something bigger. FounderDating ManagingDirector for Vegas and CTO/Cofounder of Wedgies, Jimmy Jacobson, sums it up perfectly:
“When I get someone pitching me an idea, I hear ‘I need someone to build my idea. I can't pay you in cash, so have some equity.’ That's not attractive to me. I have a LinkedIn account full of spam from recruiters, developer groups I belong to get spammed by people like this as well. This is why FounderDating exists. I don't want to work on a wine app. I want to work with awesome people, and if the idea we pick is a wine app, so be it.”
An idea is just that, AN idea. When the dust settles, it’s not likely to be THE idea, so don’t lead with it.
3. Timing
Which brings me to the final and probably most common mistake: When should you start thinking about a potential cofounder? The quick answer is ‘always.’ Huh? Yep, unless you’re in the throes of starting a new company full-time, you should always have a side project, something you’re curious about. It doesn’t have to be the next big thing. But it is the best way to start working with people you think could be cofounder material and figure out if a partnership might be feasible.
All too often I hear people say, “I’m not ready for a cofounder. I want to have the idea first.” At least 6-12 months before you quit your current full-time gig and “take the leap”, you should start talking to potential cofounders and working on side projects together. This gives you time to work with multiple people, and to walk away from relationships that aren’t clicking. It also affords the opportunity to learn so much about yourself - styles you like and don’t like, attributes you value and those you can do without.
When you wait until you’ve settled on an idea and even have a little bit of money committed (often conditional upon having a cofounder) you feel, well, more desperate. You’re much more likely to leap into the arms of the first person that agrees to work with you. Waiting until the end leads to bad decisions and relationships that really don’t work because, like it or not, you feel desperate. Searching for the right cofounder is a process and it’s vitally important, so start early.
Finding your partner should not be the last thing you do, it should be the first thing you do.
As an entrepreneur I’ve learned a lot from my own mistakes, but in this case you can learn a lot from the mistakes we’ve seen others make. Find the right cofounder is game changing – make sure you approach it like you would a partner and make it an early priority.
This was a guest post by Jessica Alter. Jessica is the Cofounder & CEO of FounderDating, the premier online network for entrepreneurs to connect, share and help one and other. Previously, Jessica led Business Development and was GM of Platforms at Bebo (Acquired by AOL). She is also a mentor at 500 Startups and Extreme Startups.
Article has
0 comments.
Click To Read/Write Comments
A couple of weeks ago, HubSpot shared our culture code deck (http://CultureCode.com) — a document that describes what we believe and how we work.
The presentation, despite being 150+ slides long and on a topic that doesn't involve celebrities, cat photos or currently trending topics has been remarkably well received. It has had over 340,000 views. It's one of the most viewed presentations on slideshare in the past year. I've received many, many emails and tweets with positive comments about the culture code deck (thanks!)
Deck is included below, for your convenience, in case you haven't seen it yet.
Now that the deck is out there and has garnered so much interest, I thought it might be valuable to dig into some of the core tenets of the HubSpot Culture Code and try to do an honest assessment of how well we live up to the tenets. Or, stated differently, how well do we "walk the talk"? In the deck itself, when a particular tenet was more aspirational than descriptive, we tried to call it out. (I think this candor is one of the reasons people like the deck). But the call-out doesn't always capture the degree to which we live up to the ideal, so we're double-clicking here.
So, here are the core tenets with a self-score on how well HubSpot lives up to the tenet. Of course, even this take is biased (I'm a founder, and all founders are naturally biased about their startups) and it's a qualitative judgment call. On my list of things to do is to see if we can make this more measurable. But, that's a topic for another day.
1. We are as maniacal about our metrics as our mission.
Score: 9.5/10
Lets break this one down a bit. First of all, we are very passionate about our mission to transform marketing and move the world towards more inbound and creating marketing people love. It's a noble vision, it's a big one — and we invest in it and mostly live up to it.
Mission score: 9/10: I dock us a point because we do have some outbound marketing in our mix of marketing spend. We're not pure inbound marketing. We spend some money on PPC, some telemarketing and some paid online channels. Not a lot — but enough to deduct a point.
Metrics score: 9.5/10: We really are maniacal about our metrics. We pore over data. We slice and dice things like customer cancellation data, SaaS economics metrics, employee happiness surveys, marketing channel data. I've talked to many, many startups and fast-growing companies. Of those, HubSpot is one of the most data-driven and metrics-obsessed companies I know.
2. We obsess over customers, not competitors and “Solve For The Customer”
Score: 8/10
The statement itself is mostly true (we spend 99% of our time worrying about customers and very little time worrying about competitors), but the underlying mantra of “Solve For The Customer” is not yet as true as we'd like it to be.
We get points for the way we have handled pricing and packaging over our 6+ year history. We have raised prices almost every year, and each time, we go out of our way to grandparent our existing customers and reward them for putting their belief in HubSpot. So, on this front, I think we do really well.
We deduct points because the overall experience of HubSpot is not as smooth as it could be. It's not customer-friendly enough. We sometimes make decisions that are for our self-interest or convenience rather than customer happiness. We're working on this.
We're getting better at having people call B.S. on decisions or directions that are not in the customers' interest. People will speak up with questions like “What's in it for the customer?” or “How is this solving for the customer?” or “Seriously?”. On the one hand, it feels good that people can be open and candid when they don't think we're living up to the SFTC (Solve For The Customer) credo. On the other hand, in an ideal world, these non-customer-happiness focused things wouldn't have to be called out, because we'd always be acting in the customers' interest. It would be natural and second-nature. But, we're a metrics-obsessed, goals-oriented, for-profit company — so it may take some work and practice to have SFTC be natural, 100% of the time. In the meantime, we'll continue to try and catch ourselves before we make decisions that don't make sense for the customer long-term.
3. We are radically and uncomfortable transparent.
Score: 9.5/10
We are super-duper, hyper transparent — and our transparency level has moved up over the years, not down. We share all sorts of crazy things with every employee. For example, one of the posts on our wiki goes into detail on every funding round we've done. Details include the What the valuation was, what the common strike price was, how much money was raised, how much dilution there was, etc.
We share just about everything. And, the things we don't share (like individual salaries), we're deliberate and clear about. Deducted half a point simply because nobody's perfect and we can always be better.
4. We give ourselves the autonomy to be awesome.
Score: 8/10
We're good, but not great in terms of giving ourselves autonomy. HubSpotters have a fair amount of freedom. You can run with an idea. Most things don't require permission. You can talk to anybody in the company, including the founders about whatever you want. We don't have formal policies and procedures for most things (our default policy on most things is “use good judgment”).
So, why the lower score? A few things: First, although we philosophically believe in the “work whenever, wherever” idea, this is not universally enjoyed to the same degree by every HubSpotter. We trust our team leaders to do what is right for their groups and use good judgment. We're also a bit conflicted because the data overwhelmingly shows that working together in the same office leads to more creativity and productivity. So, we understand the importance of co-location, but don't want to force it and take away freedom. For now, we've straddled the issue. Bit of a cop-out.
Our unlimited vacation policy has been a good thing (it's been in place for over 3 years). But, there were a couple of issues. First, some of us didn't really feel like they could take vacations without negatively impacting their work. Second, we had growing suspicion that on average people might be taking less vacation than they should. We didn't know if this was true, since we don't track vacation days — but we wanted to make certain that “unlimited vacation” didn't turn out to be “no vacation” for anyone at HubSpot. So, we made a tweak: Everyone has to take at least two weeks of vacation a year, or face ridicule by their peers. We've also tweaked some things to make it more likely that people do the right thing and take regular vacations.
5. We are unreasonably picky about our peers.
Score: 8.5/10
This is true. We are really, really picky about our peers. We're fortunate to have a lot of interest in the company, and for every open position we get many (often hundreds) of candidates. So, we can afford to be picky. It's actually harder to get a job at HubSpot than it is to get into MIT. Our acceptance rate is lower.
The reason for deducting a couple of points is related to the attributes we look for (Humble, Effective, Adaptable, Remarkable and Transparent). For the most part, HubSpotters manifest these attributes — we try to make sure of this during the recruitment and interviewing process. But, we don't always get it right. So, we get a negative point for that.
Also subtracting a half point because not only do we make hiring mistakes sometimes (despite our best efforts), we're not as good as we should be at calling people out when they do un-HubSpotty things. For example, we have being “Humble” as a core attribute (it's actually been an attribute from the beginning). But, not everyone acts in humble ways, and we often fail to call it out. Part of having a great culture is defending it.
6, We invest in individual mastery and market value.
Score: 8/10
Though we've always believed in investing in our people and wanting to “build not just a company we're proud of, but people we're proud of”, this hasn't been explicit in our culture code until recently. So, we have some work to do here.
First, we're going to take a hard look at where our “discretionary culture spend” (aka “employee happiness expenses”) — which, incidentally is over a million dollars a year. We want to shift our budget to things that help increase mastery and market value. Things like education and leadership training. Yes, we enjoy parties and celebrations too (and those are important), but all things being equal, we want to invest these dollars (in our people), not spend them.
But until then, we still get an 8 on this front. We can do much more.
7. We defy conventional “wisdom” as it's often unwise.
Score: 8.5/10
This culture attribute goes towards how much we question the status quo and do things differently. We're actually pretty good at this. Good, but not great. We get points for things like not having offices and executive perks. Our radical transparency and openness defies conventional wisdom. We're one of the few private companies that publicly shares its key financial data (like revenues) every year.
8. We speak the truth and face the facts.
Score: 9/10
We have a very strong culture of facing the facts and reality. Nobody is allowed to walk around with rose-color glasses on. We don't brush problems under the rug. We don't hide from issues. If anything, we can be faulted for being too critical sometimes. We also do a great job of speaking the truth and being candid about the problems we see in the organization. This happens in meetings, in hallways, over email and on the wiki. When problems show up (as they do regularly), we are usually quick to react.
9. We believe in work+life, not work vs. life
Score: 8/10
This one is a bit squishy and hard to measure. Generally, we do a really good job of work-life fit. Mostly flexible hours, unlimited vacation, centrally located and relatively easily accessible office. All of those things help. Things that fall into this bucket that we're not great at is diversity — particularly gender balance and getting more women into leadership roles. We're “leaning in” on this, and hope to get much, much better at this over the next few months. Stay tuned.
10. We are a perpetual work in progress.
Score: 9.0/10
This one's a bit of a gimme (note to self: We need to replace this tenet with something that's more substantive and less platitudinal).
We don't sit on our laurels. We celebrate victories big and small — but celebrations are short-lived. Though we are pleased with our modest success so far, we recognize that there is still much work to be done. We're constantly trying to improve how we run the busines and ourselves.
Article has
4 comments.
Click To Read/Write Comments
The following is a guest post by Alan Wells, co-founder & product designer at Glyder. [Disclosure: I'm an angel investor in the company. -Dharmesh]
It has been widely reported that at there will be least 1,000 orphan startups this year - companies that raised a seed round last year and will fail to raise follow on financing. The popular opinion in the tech press is that most of these 1,000 orphan companies will die due to lack of capital. As a founder, it's hard not to let this influence your thinking - with all the talk of failing fast, acqui-hires, and overnight success stories, it's easy to believe that your only options are to find a soft landing or shut down and try again with something else. And compared to sticking it out, walking away is most certainly the easier path (although it might make you a punk).
But I believe that in those 1,000 orphan startups, there are great companies - companies that can still put a dent in the universe, companies that can break through if the founders stick to it. Ben Horowitz says that all great CEOs have one thing in common: they don't quit, and at Startup School last year, this theme played out over and over again. Almost every founder that spoke went through a trough of sorrow that lasted 18-24 months before things really started to click for their companies.
Maybe it’s coincidental that the trough of sorrow is usually just a bit longer than the runway you have after an average-sized seed round, but I’m beginning to believe that great companies are often the product of these trying circumstances. Unfortunately people don’t like to talk about what’s not going right with their companies, and there’s not much discussion going on around what founders are doing to successfully navigate these waters.
I’m the founder of a startup that recently decided to double down and do our best to beat the series A crunch, and in the interest of focusing on the road instead of the wall, I wanted to share some of the things I’m learning as we find a way forward.
Acknowledging Your Reality
Founders are optimistic people, so it's easy for us to believe that if we just add this one thing to our product, hit that one key metric, or sign that one partnership deal, investors will come banging on our door begging to give us money. However, if you know things aren't going well or you are already having trouble raising your next round, what your startup needs more than anything is a lucid founder that can realistically assess the situation and identify a path forward.
Doing an honest appraisal of the things that were and weren’t working in our business was an important moment for our decision to press forward. Inside the head of a founder, things can seem great one minute and terrible the next, so getting outside perspective can be valuable as a check to your instincts and emotions. Meeting with advisors and existing investors also helped us get some third party perspective about trends in the market and issues we’re facing.
Understanding Why You're Not Fundable
As a startup founder, you're working in a four dimensional problem space: team, product, market, and timing. Hopes and dreams are often enough to raise money at the seed stage, but in my experience, you need more than that for your next round: you need to convince investors that you're the right team building the right product for the right market at the right time.
If you've been fundraising for three months and haven't gotten a check yet, something is probably wrong in one or more of these areas. Understanding what's wrong is critical to figuring out your path forward, and investors that pass can be the best source for understanding what the missing pieces are.
Until recently, I don’t think I quite appreciated the complexity of getting all this right at the same time, especially when you throw in the added complexity of trying to match up with the various investment theses and historical biases of top tier firms. As Ben Horowitz said, “this is not checkers; this is mutherfuckin’ chess.” Getting useful information isn't always easy - most investors seem to be worried about offending founders and prefer high level statements like "not enough traction" over candid feedback about the holes they see in your business.
I want to thank a few folks that were candid and helpful to us in this way - Ashu Garg (Foundation Capital), Thomas Korte (AngelPad) and James Currier were among the the people that gave us really insightful, critical feedback.
The Founding Team Gut Check
With some honest datapoints on the investor perspective of your business, you have the information you and your co-founders need to have a gut check conversation about the state of your business. You'll likely find your product, market, team or timing are in conflict with what investors see as likely to be a homerun, and you need to decide how to respond to that mismatch.
In our case the problem seems to be mainly around market - we're targeting very small businesses, a fragmented market where there is no historical precedent for big winners being built within the timeline that venture investors need for their 10x returns. We're well aware of the historical challenges in serving this market, but we believe that due to a number of new trends, big winners will emerge in this space in the next 3-5 years. Very few investors agree with us.
Our focus on very small business is one of the founding principles of our company, and we believe deeply in the potential that lies in serving this market. Our conviction in serving this market increased when we launched Glyder and started seeing the positive user response to the product. Because of this conviction, we decided that we would rather continue focusing on this market than switch to a different target market, even if that means we're not fundable in the short term.
Having an open and candid conversation with our team about the challenges to our company was a great chance to gauge everyone's commitment to the business. Building our business without more capital will be difficult, but when everyone voiced renewed desire to keep going forward, it helped me as the CEO get excited about figuring out how to do it.
Moving Forward & Changing Tactics
Paul Graham likes to tell founders that "the surest route to success is to be the cockroaches of the corporate world." The analogy works particularly well for orphan startups, because without additional capital, you must be resilient, resourceful and self-sufficient as quickly as possible. Here are some of the changes we’ve made as we continue building our business.
Incentivizing Existing Investors to Stay Involved and Excited
Before we started trying to raise a new round, we gave our existing investors the opportunity to put more money into the company on fairly favorable terms. The cap on this new note was lower than the cap that we had previously raised money on - although our business was much further along, the funding environment had changed as well, and we wanted to make the decision to put additional capital in easy for our existing investors.
We also went back and amended the documents for all investors who had put money in on the higher cap and gave them the lower cap instead. This is unusual, not legally required, and meant that we were giving up additional dilution.
Why would we voluntarily increase dilution? Our investor group includes friends & family, angels, and the great team at 500 Startups. Our relationships with most of them started long before this company, and we hope they will extend far into the future. These relationships motivate us to keep building the business - they trusted us with their hard earned dollars, and although they all know the risks of betting on our startup, we want to show them results. When it comes to a decision like the one we made with the cap change, the cost in dilution was well worth the goodwill it generated among our investors. It also demonstrated our commitment to acting with integrity even when things aren't going according to plan.
Re-evaluating the Product Roadmap
As we heard the skepticism from potential investors while trying to raise more capital, product priorities were the first thing to change for us. We no longer have the luxury to focus on user growth over monetization, so our entire product roadmap shifted to focus on revenue. Our app, once offered for free (to maximize signups) is now a paid download. We don't have the luxury of supporting users that aren't willing to pay for what we make.
Lowering Burn Rate
In addition to shifting product priorities to revenue, we also made dramatic reductions in burn rate so we could reach profitability faster. This meant letting several team members go - by far the hardest decision in this entire process - and asking remaining team members to take a pay cut (we softened the blow with this by giving additional equity). The changes in product and burn rate have put us on a path to reach cash flow positive before we run out of capital.
Preparing For Battle
In addition to the tactical changes in our business, the process we’ve gone through in the past three months has mentally and emotionally prepared our team for the road ahead. We know who we are and what we’re working toward, we’re aware of and very comfortable with the contrarian stance we’re taking, and we believe the long term opportunity is well worth the short term sacrifices we are making. As they say on Friday Night Lights, “clear eyes, full hearts, can't lose.”
I think
Andrew Chen had it right when he said, "there’s always another move." If you’re the founder of a startup staring headfirst at the Series A Crunch and you can find the will to keep going, your job is to find that next move and make it happen. I hope to see more discussion on how companies are sticking with it and navigating the trough of sorrow. If you're in the midst of this process and need someone to bounce ideas off, drop me a note at
@alanwells.
Article has
0 comments.
Click To Read/Write Comments
aka: Screw you Joel Spolsky, We're Rewriting It From Scratch!
This is a guest post by Dan Milstein (@danmil), co-founder of Hut 8 Labs.
Disclosure: Joel Spolsky is a friend and I'm an investor in his company, Stack Exchange (which powers the awesome Stack Overflow) -Dharmesh
So, you know Joel Spolsky's essay Things You Should Never Do, Part I? In which he urgently recommends that, no matter what, please god listen to me, don't rewrite your product from scratch? And lists a bunch of dramatic failures when companies have tried to do so?
First off, he's totally right. Developers tend to spectacularly underestimate the effort involved in such a rewrite (more on that below), and spectacularly overestimate the value generated (more on that below, as well).
But sometimes, on certain rare occasions, you're going to be justified in rewriting a major part of your product (you'll notice I've shifted to saying you're merely rewriting a part, instead of the whole product. Please do that. If you really are committed to just rewriting the entire thing from scratch, I don't know what to tell you).
If you're considering launching a major rewrite, or find yourself as the tech lead on such a project in flight, or are merely toiling in the trenches of such a project, hoping against hope that it will someday end... this post is for you.
Hello, My Name is Dan, and I've Done Some Rewrites
A few years back, I joined a rapidly growing startup named HubSpot, where I ended up working for a good solid while (which was a marvelous experience, btw -- you should all have Yoav Shapira as a boss at some point). In my first year there, I was one of the tech leads on a small team that rewrote the Marketing Analytics system (one of the key features of the HubSpot product), totally from scratch. We rewrote the back end (moving from storing raw hit data in SQLServer to processing hits with Hadoop and storing aggregate reports in MySQL); we rewrote the front end (moving from C#/ASP.Net to Java/Tomcat); we got into the guts of a dozen applications which had come to rely on that store of every-hit-ever, and found a way to make them work with the data that was now available. (Note: HubSpot is now primarily powered by MySQL/Hadoop/HBase. Check out the HubSpot dev blog).
It took a loooong time. Much, much longer than we expected.
But it generated a ton of value for HubSpot. Very Important People were, ultimately, very happy about that project. After it wrapped up, 'Analytics 2.0', as it was known, somehow went from 'that project that was dragging on forever', to 'that major rewrite that worked out really well'.
Then, after the Analytics Rewrite wrapped up, in my role as 5 Whys Facilitator, I led the post-mortem on another ambitious rewrite which hadn't fared quite so well. I'll call it The Unhappy Rewrite.
From all that, some fairly clear lessons emerged.
First, I'm going to talk about why these projects are so tricky. Then I'll pass on some of those hard-won lessons on how to survive.
Prepare Yourself For This Project To Never Fucking End
The first, absolutely critical thing to understand about launching a major rewrite is that it's going to take insanely longer than you expect. Even when you try to discount for the usual developer optimism. Here's why:
- Migrating the data sucks beyond all belief
I'm assuming your existing system has a bunch of valuable data locked up in it (if it doesn't, congrats, but I just never, ever run into this situation). You think, we're going to set up a new db structure (or move it all to some NoSQL store, or whatever), and we'll, I dunno, write some scripts to copy the data over, no problem.
Problem 1: there's this endless series of weird crap encoded in the data in surprising ways. E.g. "The use_conf field is 1 if we should use the auto-generated configs... but only if the spec_version field is greater than 3. Oh, and for a few months, there was this bug, and use_conf was left blank. It's almost always safe to assume it should be 1 when it's blank. Except for customers who bought the Express product, then we should treat it as 2". You have to migrate all your data over, checksum the living hell out of it, display it back to your users, and then figure out why it's not what they expect. You end up poring over commit histories, email exchanges with developers who have long since left the company, and line after line of cryptic legacy code. (In prep for writing this, when I mentioned this problem to developers, every single time they cut me off to eagerly explain some specific, awful experience they've had on this front -- it's really that bad)
Problem 2: But, wait, it gets worse: because you have a lot of data, it often takes days to migrate it all. So, as you struggle to figure out each of the above weird, persnickety issues with converting the data over, you end up waiting for days to see if your fixes work. And then to find the next issue and start over again. I have vivid, painful memories of watching my friend Stephen (a prototypical Smart Young Engineer), who was a tech lead on the Unhappy Rewrite, working, like, hour 70 of an 80 hour week, babysitting a slow-moving data export/import as it failed over and over and over again. I really can't communicate how long this takes.
- It's brutally hard to reduce scope
With a greenfield (non-rewrite) project, there is always (always) a severe reduction in scope as you get closer to launch. You start off, expecting to do A, B, C & D, but when you launch, you do part of A. But, often, people are thrilled. (And, crucially, they forget that they had once considered all the other imagined features as absolutely necessary)
With a rewrite, that fails. People are really unhappy if you tell them: hey, we rewrote your favorite part of the product, the code is a lot cleaner now, but we took away half the functionality.
You'll end up spending this awful series of months implementing all these odd edge cases that you didn't realize even existed. And backfilling support for features that you've been told no one uses any more, but you find out at the last minute some Important Person or Customer does. And, and, and...
- There turn out to be these other system that use "your" data
You always think: oh, yeah, there are these four screens, I see how to serve those from the new system. But then it turns out that a half-dozen cron jobs read data directly from "your" db. And there's an initialization step for new customers where something is stored in that db and read back later. And some other screen makes a side call to obtain a count of your data. Etc, etc. Basically, you try turning off the old system briefly, and a flurry of bug reports show up on your desk, for features written a long time ago, by people who have left the company, but which customers still depend on. This takes forever all over again to fix.
Okay, I'm Sufficiently Scared Now, What Should I Do?
You you have to totally own the business value.
First off, before you start, you must define the business value of this rewrite. I mean, you should always understand the big picture value of what you do (see: Rands Test). But with rewrites, it's often the tech lead, or the developers in general, who are pushing for the rewrite -- and then it's absolutely critical that you understand the value. Because you're going to discover unexpected problems, and have to make compromises, and the whole thing is going to drag on forever. And if, at the end of all that, the Important People who sign your checks don't see much value, it's not going to be a happy day for you.
One thing: be very, very careful if the primary business value is some (possibly disguised) version of "The new system will be much easier for developers to work on." I'm not saying that's not a nice bit of value, but if that's your only or main value... you're going to be trying to explain to your CEO in six months why nothing seems to have gotten done in development in the last half year.
The key to fixing the "developers will cry less" thing is to identify, specifically, what the current, crappy system is holding you back from doing. E.g. are you not able to pass a security audit? Does the website routinely fall over in a way that customers notice? Is there some sexy new feature you just can't add because the system is too hard to work with? Identifying that kind of specific problem both means you're talking about something observable by the rest of the business, and also that you're in a position to make smart tradeoffs when things blow up (as they will).
As an example, for our big Analytics rewrite, the developers involved sat down with Dan Dunn, the (truly excellent) product guy on our team, and worked out a list of business-visible wins we hoped to achieve. In rough priority order, those were:
-
Cut cost of storing each hit by an order of magnitude
-
Create new reports that weren't possible in the old system
-
Serve all reports faster
-
Serve near-real-time (instead of cached daily) reports
And you should know: that first one loomed really, really large. HubSpot was growing very quickly, and storing all that hit data as individual rows in SQLServer had all sorts of extra costs. The experts on Windows ops were constantly trying to get new SQLServer clusters set up ahead of demand (which was risky and complex and ended up touching a lot of the rest of the codebase). Sales people were told to not sell to prospects with really high traffic, because if they installed our tracking code, it might knock over those key databases (and that restriction injected friction into the sales process). Etc, etc.
Solving the "no more hits in SQLServer" problem is the Hard kind for a rewrite -- you only get the value when every single trace of the old system is gone. The other ones, lower down the list, those you'd see some value as individual reports were moved over. That's a crucial distinction to understand. If at all possible, you want to make sure that you're not only solving that kind of Hard Problem -- find some wins on the way.
For the Unhappy Rewrite, the biz value wasn't perfectly clear. And, thus, as often happens in that case, everyone assumed that, in the bright, shiny world of the New System, all their own personal pet peeves would be addressed. The new system would be faster! It would scale better! The front end would be beautiful and clever and new! It would bring our customers coffee in bed and read them the paper.
As the developers involved slogged through all the unexpected issues which arose, and had to keep pushing out their release date, they gradually realized how disappointed everyone was going to be when they saw the actual results (because all the awesome, dreamed-of stuff had gotten thrown overboard to try to get the damn thing out the door). This a crappy, crappy place to be -- stressed because people are hounding you to get something long-overdue finished, and equally stressed because you know that thing is a mess.
Okay, so how do you avoid getting trapped in this particular hell?
Worship at the Altar of Incrementalism
Over my career, I've come to place a really strong value on figuring out how to break big changes into small, safe, value-generating pieces. It's a sort of meta-design -- designing the process of gradual, safe change.
Kent Beck calls this Succession, and describes it as:
"Design changes are usually most efficiently implemented as a series of safe steps. Succession is the art of taking a single conceptual change, breaking it into safe steps, and then finding an order for those steps that optimizes safety, feedback, and efficiency."
I love that he calls it an "art" -- that feels exactly right to me. It doesn't happen by accident. You have to consciously work at it, talk out alternatives with your team, get some sort of product owner or manager involved to make sure the early value you're surfacing matters to customers. It's a creative act.
And now, let me say, in an angry Old Testament prophet voice: Beware the false incrementalism!
False incrementalism is breaking a large change up into a set of small steps, but where none of those steps generate any value on their own. E.g. you first write an entire new back end (but don't hook it up to anything), and then write an entire new front end (but don't launch it, because the back end doesn't have the legacy data yet), and then migrate all the legacy data. It's only after all of those steps are finished that you have anything of any value at all.
Fortunately, there's a very simple test to determine if you're falling prey to the False Incrementalism: if after each increment, an Important Person were to ask your team to drop the project right at that moment, would the business have seen some value? That is the gold standard.
Going back to my running example: our existing analytics system supported a few thousand customers, and served something like a half dozen key reports. We made an early decision to: a) rewrite all the existing reports before writing new ones, and b) rewrite each report completely, push it through to production, migrate any existing data for that report, and switch all our customers over. And only then move on to the next report.
Here's how that completely saved us: 3 months into a rewrite which we had estimated would take 3-5 months, we had completely converted a single report. Because we had focused on getting all the way through to production, and on migrating all the old data, we had been forced to face up to how complex the overall process was going to be. We sat down, and produced a new estimate: it would take more like 8 months to finish everything up, and get fully off SQLServer.
At this point, Dan Dunn, who is a Truly Excellent Product Guy because he is unafraid to face a hard tradeoff, said, "I'd like to shift our priorities -- I want to build the Sexy New Reports now, and not wait until we're fully off SQLServer." We said, "Even if it makes the overall rewrite take longer, and we won't get off SQLServer this year, and we'll have to build that one new cluster we were hoping to avoid having to set up?" And he said "Yes." And we said, "Okay, then."
That's the kind of choice you want to offer the rest of your larger team. An economic tradeoff where they can chose between options of what they see when. You really, really don't want to say: we don't have anything yet, we're not sure when we will, your only choices are to keep waiting, or to cancel this project and kiss your sunk costs goodbye.
Side note: Dan made 100% the right call (see: Excellent). The Sexy New Reports were a huge, runaway hit. Getting them out sooner than later made a big economic impact on the business. Which was good, because the project dragged on past the one year mark before we could finally kill off SQLServer and fully retire the old system.
For you product dev flow geeks out there, one interesting piece of value we generated early was simply a better understanding of how long the project was going to take. I believe that is what Beck means by "feedback". It's real value to the business. If we hadn't pushed a single report all the way through, we would likely have had, 3-4 months in, a whole bunch of data (for all reports) in some partially built new system, and no better understanding of the full challenge of cutting even one report over. You can see the value the feedback gave us--it let Dan make a much better economic choice. I will make my once-per-blog-post pitch that you should go read Donald Reinertsen's Principles of Product Development Flow to learn more about how reducing uncertainty generates value for a business.
For the Unhappy Rewrite, they didn't work out a careful plan for this kind of incremental delivery. Some Totally Awesome Things would happen/be possible when they finished. But they kept on not finishing, and not finishing, and then discovering more ways that the various pieces they were building didn't quite fit together. In the Post-Mortem, someone summarized it as: "We somehow turned this into a Waterfall project, without ever meaning to."
But, I Have to Cut Over All at Once, Because the Data is Always Changing
One of the reasons people bail on incrementalism is that they realize that, to make it work, there's going to be an extended period where every update to a piece of data has to go to both systems (old and new). And that's going to be a major pain in the ass to engineer. People will think (and even say out loud), "We can't do that, it'll add a month to the project to insert a dual-write layer. It wil slow us down too much."
Here's what I'm going to say: always insert that dual-write layer. Always. It's a minor, generally somewhat fixed cost that buys you an incredible amount of insurance. It allows you, as we did above, to gradually switch over from one system to another. It allows you to back out at any time if you discover major problems with the way the data was migrated (which you will, over and over again). It means your migration of data can take a week, and that's not a problem, because you don't have to freeze writes to both systems during that time. And, as a bonus, it surfaces a bunch of those weird situations where "other" systems are writing directly to your old database.
Again, I'll quote Kent Beck, writing about how they do this at Facebook:
"We frequently migrate large amounts of data from one data store to another, to improve performance or reliability. These migrations are an example of succession, because there is no safe way to wave a wand and migrate the data in an instant. The succession we use is:
Convert data fetching and mutating to a DataType, an abstraction that hides where the data is stored.
Modify the DataType to begin writing the data to the new store as well as the old store.
Bulk migrate existing data.
Modify the DataType to read from both stores, checking that the same data is fetched and logging any differences.
When the results match closely enough, return data from the new store and eliminate the old store.
You could theoretically do this faster as a single step, but it would never work. There is just too much hidden coupling in our system. Something would go wrong with one of the steps, leading to a potentially disastrous situation of lost or corrupted data."
Abandoning the Project Should Always Be on the Table
If a 3-month rewrite is economically rational, but a 13-month one is a giant loss, you'll generate a lot value by realizing which of those two you're actually facing. Unfortunately, the longer you solider on, the harder it is for people to avoid the Fallacy of Sunk Costs. The solution: if you have any uncertainty about how long it's going to take, sequence your work to reduce that uncertainty right away, and give people some "finished" thing that will let them walk away. One month in, you can still say: we've decided to only rewrite the front end. Or: we're just going to insert an API layer for now. Or, even: this turned out to be a bad idea, we're walking away. Six months in, with no end in sight, that's incredibly hard to do (even if it's still the right choice, economically).
Some Specific Tactics
Shrink Ray FTW
This is an excellent idea, courtesy of Kellan Elliot-McCrea, CTO of Etsy. He describes it as follows:
"We have a pattern we call shrink ray. It's a graph of how much the old system is still in place. Most of these run as cron jobs that grep the codebase for a key signature. Sometimes usage is from wire monitoring of a component. Sometimes there are leaderboards. There is always a party when it goes to zero. A big party.
Gives a good sense of progress and scope, especially as the project is rolling, and a good historical record of how long this shit takes. '''
I've just started using Shrink Ray on a rewrite I'm tackling right now, and I will say: it's fairly awesome. Not only does it give you the wins above, but, it also forces you to have an early discussion about what you are shrinking, and who in the business cares. If you make the right graph, Important People will be excited to see it moving down. This is crazy valuable.
Engineer The Living Hell Out Of Your Migration Scripts
It's very easy to think of the code that moves data from the old system to the new as a collection of one-off scripts. You write them quickly, don't comment them too carefully, don't write unit tests, etc. All of which are generally valid tradeoffs for code which you're only going to run once.
But, see above, you're going to run your migrations over and over to get them right. Plus, you're converting and summing up and copying over data, so you really, really want some unit tests to find any errors you can early on (because "data" is, to a first approximation, "a bunch of opaque numbers which don't mean anything to you, but which people will be super pissed off about if they're wrong"). And this thing is going to happen, where someone will accidentally hit ctrl-c, and kill your 36 hour migration at hour 34. Thus, taking the extra time to make the entire process strongly idempotent will pay off over and over (by strongly idempotent, I mean, e.g. you can restart after a failed partial run and it will pick up most of the existing work).
Basically, treat your migration code as a first class citizen. It will save you a lot of time in the long run.
If Your Data Doesn't Look Weird, You're Not Looking Hard Enough
What's best is if you can get yourself to think about the problem of building confidence in your data as a real, exciting engineering challenge. Put one of your very best devs to work attacking both the old and the new data, writing tools to analyze it all, discover interesting invariants and checksums.
A good rule of thumb for migrating and checksumming data: until you've found a half-dozen bizarre inconsistencies in the old data, you're not done. For the Analytics Rewrite, we created a page on our internal wiki called "Data Infelicities". It got to be really, really long.
With Great Incrementalism Comes Great Power
I want to wrap up by flipping this all around -- if you learn to approach your rewrites with this kind of ferocious, incremental discipline, you can tackle incredibly hard problems without fear. Which is a tremendous capability to offer your business. You can gradually rewrite that unbelievably horky system that the whole company depends on. You can move huge chunks of data to new data stores. You can pick up messy, half-functional open source projects and gradually build new products around them.
It's a great feeling.
---
What's your take? Care to share any lessons learned from an epic rewrite?
Article has
1 comments.
Click To Read/Write Comments