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.
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.
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.
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.
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.
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.
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?
Let other people drive certain features. Give them authority explicitly. Tell them you want their vision to shine through, and let them do it.
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.
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.
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.
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.
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.
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.
Your stress creeps up on you. You don't even notice it. Take some time and slow down. How are you feeling?
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.
Reconnect with your old colleagues more. Call up old friends. You're not that busy.
It's okay to dislike networking, but it's good for you and the business. Slog through it.
It's therapeutic and fun. You don't do it enough.
Actually listen to people when they talk. Sometimes, that's all they need.
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.
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 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.
Nothing turns prospects off faster than marketing babble. Speak and write plainly.
There are some great marketing tools nowadays. The privacy implications of some of them are worrisome, but they are extremely useful.
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.
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.
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.
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.