sean cassidy : Meditations Redux

Two years ago, I wrote a post called "Meditations". I had just read Meditations by Marcus Aurelius and was inspired to create a short log of everything I had learned at my last job. I noticed that writing down what I learned as I learned it made it stick. I would read over the list every so often to remind myself not to make the same mistakes.

The company I helped start, DefenseStorm, just celebrated its second year, acquired loads more customers, changed its name, and we're just about to announce another round of fundraising. I have learned more in the past two years than I thought possible. Many of the lessons were not about technology, as I expected, but instead were about people. That surprised me, but in retrospect, it seems obvious. Companies are functions of who they are.

I'm posting the lessons I've learned because I think they might be useful to others. They're broken into seven sections:

If you like this, let me know.

Engineering

Pick one risky component

One aspect of your technology should be bleeding edge and risky so that you're using the best-in-class software to build your business. But everything else should be as boring as possible. If you start mixing new frameworks with new languages and fancy new database software, you're in for trouble.

Simple, simple, simple

Do whatever it takes to keep systems simple. Avoid complications unless required. Designs should be reviewed by the whole team to make sure this is watched. Ask: "Could it be simpler?"

It's not done until it's monitored

Monitoring is an essential part of application development. It should not be released to production without monitoring and alerting.

Central log management is the new unit testing

Logs should be searchable and alertable. You should monitor each log level, each server, each service, each environment independently and combined and alert on anomalies.

Homogeneity scales

While it's not as much fun for engineers, picking one language/tool set allows engineers to move between projects quickly and easily, and speeds up the new hire training.

Break down tasks

Yeah, it's not fun, but do it anyway. Break big tasks into releasable pieces and then work on them as a team. Avoid silos.

Estimates are important

Yes, sometimes they're more guesswork than you'd like, but stick to them and try to get better. Don't be swayed by "It's done when it's done." Instead, cut features and deliver an MVP. Iterate and collect feedback.

Process over gut feelings

It is important to have a repeatable, easy software release process. If you instead test software that feels risky, you will be hit by bugs on seemingly low risk releases. Your gut is often wrong.

Culture is important

You can have bugs in your culture. You can fix them.

Deadlines

You can either have a calendar deadline and cut requirements to meet it, or push back the ship date to keep the requirements intact. You can't have both.

Set targets, not deadlines

Deadlines imply that bad things will happen if you don't hit them. Instead, set targets and get everyone on board with them. If you miss the target, do a retrospective on what could have gone better.

It's just bits

Don't say "we can't do that." You can, it's just hard or annoying.

Operations is important

You have ops even if you think you don't. Heroku is fine for some companies, but it's still operations. Making devs and ops the same team is a good move.

Product

Start at a mockup

Communicating product ideas in the abstract is difficult and time consuming. Make a mockup first and then start talking about it.

Think beyond the technical details

You focus on the details, but miss the big picture. Use cases are important.

Themes

Sometimes product roadmap can feel like chaos management. Plan out the themes in detail for the next two quarters, and then in light detail for one or two more. Use the themes whenever you feel lost or conflicted, but not as a crutch.

Demo often

You should do demos as much as you can. Go off script. Every time that you feel less-than-confident or embarrassed is an improvement that should go on the roadmap to be fixed. The goal is to build something that you're proud to demo.

Hone your explanations

You tend to explain things well to technical audiences, but you need to keep practicing conveying large swaths of informations to non-technical people who are busy. If you could tell people only one thing about this new feature, what would it be?

Delegate

Let other people drive certain features. Give them authority explicitly. Tell them you want their vision to shine through, and let them do it.

Sell

You need to sell your product ideas. Know your audience. Do not brainstorm in large, unprepared groups, as you tend to do sometimes. Think before you speak.

The Little Things

Organization is the product manager's secret weapon. Don't forget about all the little bugs that pile up.

Feedback

Get feedback on use cases and requirements early and often. However, don't design features by committee.

Feedback requires a response

You can't ask for opinions and then do nothing with them. You either have to say that you won't do it, or do it. Never tell someone that you will include a feature if that's not true.

Don't get offended

Product feedback is just about the most useful thing anyone can give you. If they don't like it, don't take offense. Improve your product.

People

Don't be dismissive

You sound dismissive. You don't mean to be, but you are. Go out of your way to watch for people's feelings.

Honesty

You're better off explaining why someone's idea isn't good than trying to placate them and lying to them. It might be hard in the short term, but it's easier than the alternative.

Talk more

Your biggest failure to date was because you didn't talk often enough with one of your coworkers. Don't repeat that mistake.

Pressure is a choice

People will try to pressure you, but that is their failing, not yours. Pressuring others is rarely helpful. Choose not to be pressured, and you won't be.

Trust your gut with hiring

Hemming and hawing is rarely productive. If you're not convinced by a candidate, don't hire them.

Don't worry about negative people

Some people are just negative. They don't care about you. You can't make everyone like you. Spend time and energy elsewhere.

Understand before dismissing

You have to deal with people you don't like. Why are they acting the way they are? Listen to them and try to understand them. You can help make them productive. You will both benefit.

Give positive feedback

You tend to focus on the negative feedback because it's actionable. Your team needs to hear about the positive feedback too. Encouragement is important.

Interact

It doesn't matter if your "process" means that you put stickies on a board or if you use a spreadsheet. You should be talking to the people that matter. This personal touch makes people feel like they're valued and important, which, of course, they are.

Build a team you're proud of

Every time you talk to investors, prospects, customers, your parents, your friends, your colleagues, anyone, you should want to brag about your team. They're the smartest, the hardest working, the fastest, the most agile, or however you would describe them. You should be proud.

Don't tweet that

Twitter has a larger reach than you think. Negativity will get back to you. Hating looks bad on you.

Forget about it

Don't obsess when you make a mistake. Move on. But write it down here first.

Deal with it

You have to understand where your colleagues are coming from, even if they refuse to understand your point of view. Be better.

Stress

Your stress creeps up on you. You don't even notice it. Take some time and slow down. How are you feeling?

Time

How to spend your time is a complicated decision. Try to take each day one hour at a time, each week one day at a time, and each month one week at a time.

Reach out

Reconnect with your old colleagues more. Call up old friends. You're not that busy.

Network more

It's okay to dislike networking, but it's good for you and the business. Slog through it.

Write more

It's therapeutic and fun. You don't do it enough.

Listen

Actually listen to people when they talk. Sometimes, that's all they need.

Business

Choose a vertical

Many startups want to make solutions that fit everyone or every business because the potential market size is so large. Make your products generic but make your marketing and sales specific, at least at first.

Test your vertical

Have clear goals for the vertical you've chosen. If they aren't met, adjust. Do not keep moving the goal posts.

Listen to your vision

Feedback from customers is to fill in the details about your product, not to drive the vision. Vision should come from your experience, your understanding of the market, and what you want to see.

Continually check your assumptions

Is our product for laypeople or technical users? How customizable should it be? How should we talk about our product? What you've done in the past is not always what you should do in the future. Reevaluate and adjust. Don't be afraid to change.

Try to ignore the competition

It's not always possible or practical to ignore everything about your competitors, but don't fret about what they're doing too much. Focus on your customers and your prospects.

Innovation

Not all innovation needs to be technical. You can innovate on pricing, by how you talk about your product, and how you portray your business. Think out side of tech more.

Differentiation is critical

No matter how many competitors your have, you have to differentiate yourself. What's unique about your product? Better and easier-to-use isn't good enough.

Marketing

Marketing is important

You need someone in charge of your company's public face. You don't have enough time to do it yourself, you don't. Hire someone for it.

You're not marketing if you're not targeting

There's really no such thing as general purpose marketing. The best marketing targets and segments.

Conferences aren't worth it if you're not speaking

Speaking is a great way to position yourself and your company in your industry. Unless you are learning a lot from a conference, it's not worth it to go if you're not speaking. Hustling at conferences is too difficult to be worthwhile.

Avoid marketing-speak

Nothing turns prospects off faster than marketing babble. Speak and write plainly.

Tooling matters

There are some great marketing tools nowadays. The privacy implications of some of them are worrisome, but they are extremely useful.

Sales

It's not what you say, it's how you say it

People remember how you speak. Ask how a salesperson is doing, the answer is always the same. They're doing great. And they'll make you believe it.

Energy

Good salespeople are very excited. They bring momentum and energy to every room they walk into.

Find unspoken objections

Even if a prospect doesn't mention something (like that they would prefer a month-to-month deal to a multi-year deal), you can lose the deal because of it. Find what they haven't mentioned and test your sales assumptions.

Don't raise objections yourself

Unless a piece of information is vital for them to know, don't bring it up. You don't know how they'll react to superfluous information.

Sell to Sales

Salespeople live on confidence. They need to know that the product they're selling is the best. Don't lead with all the problems that still exist. Talk about how it's great and will improve constantly.

Selling starts at "No."

Once a prospective customer tells you that they won't buy, that's when the selling starts. Don't give up.

Sales objections are part of the job

Get a list of them and have talking points for each one. Don't argue, but instead show them that there is more than one right answer.

When hiring, look for the light bulb

You're not great at hiring salespeople, but there's one thing you can look for: when they really understand what you've told them. Skip salespeople that don't get it. They won't be good at listening to customers, either.

Selling face-to-face is way more effective than over the phone

Especially early on, it's worth the cost. Go meet your prospects, shake their hand, and build a relationship.

Check your ego

Do not get offended by prospects. Don't take it personally.

Salespeople need leadership

More so than any other group of people at your company, they need to have a leader to follow. They need a well-defined path and to see that you're making progress on it.

Get their feedback

You will offend people if you don't ask for their opinion on important matters.

Investors

What matters most is the narrative

How good your slide deck looks, your demo, even the customers you have aren't as important as showing investors the path to a successful company.

Beware of the question "How big is the market?"

There are two types of market sizes for early stage companies: the total addressable market and the target market. Founders assume that if they conflate these two and present the larger number as an answer to this question, the investors will be so impressed by how big that number is that they'll invest. The total addressable market for most good early stage startups will be almost completely unknown, so the number given is likely to be off by at least an order of magnitude. Instead, say that while you think the total addressable market is quite large, the target market is $X/year and you can hit this market easily because of your sales channels, marketing, and so on.

Casual meetings and dinners aren't

Investors are constantly evaluating, even if they aren't fully conscious of it. Their opinion of you and your company can change faster than you think. You need to be on your game. Don't drink too much around them. Your office should be ready to show.

Don't hedge

Investors aren't interested in nuance. Don't tell them about all your doubts. Don't hedge against your own success.

Don't talk to them like customers

Don't make the mistake of telling investors the same exact things as customers. They might assume the wrong things. Do explain what resonates with customers and why.

Remember that VCs always use video conferencing

So put some nice clothes on for meetings.

Make a product for your users, not your investors

While investors have good ideas, they don't know your business like you do. Don't be afraid to stand up to them when it's important.

Don't talk down to them

Most investors will surprise you with how technical they are. Never assume they're unaware of some popular tech. Like everyone else, they appreciate it when you acknowledge their intelligence.

Articles

  1. Genius Blocker
  2. LostPass
  3. Privilege
  4. Your Own Verifiable Hardware RNG with bladeRF SDR
  5. We, the Weapons
  6. The Practice Startup
  7. Code as Risk
  8. Sherlock Holmes Debugging
  9. Plural gTLDs are evil
  10. Your Interface is what Matters
  11. Write in the Margins
  12. Meditations
  13. Better Java
  14. When names outlive their usefulness
  15. Diagnosis of the OpenSSL Heartbleed Bug
  16. The Intuition Trap
  17. Ambition
  18. The Story of the GnuTLS Bug
  19. Wrong Solutions
  20. Host an infodump session
  21. So, you want to crypto
  22. Hackers and Engineering School
  23. Strings are untyped
  24. Don't Pipe to your Shell
  25. How to Organize Your Brain with Bookmark Tags
  26. You are not a 10x Developer
  27. Windows ruins everything
  28. Don't Give Up and Die
  29. On Being Nice
  30. Bus Factors and Walk Score
  31. Wiggle the mouse to fix the test
  32. A Difficult Bug
  33. The Origins of the Diluvian Network
  34. Zipf your variable names
  35. H.264 and VP8, compared
  36. On Accepting Interview Question Answers
  37. Rate Limiting per User
  38. Write your own Data Structures