"I Did a Bad Job"
blog.ashmokhberi.com
blog.ashmokhberi.com
I just wanted to mention that a lot of things that you did bad, look so only in hindsight. Not that they are not bad, in the sense that you could have done better, but the very same things that now look bad could be construed to be actually 'good' had your startup gone right. Even the startups which do end up successfull do not become so by doing everything right.
For example:
1. Your co-founder was not committed due to mortgage or family, however he was a great tech guy. And there is a chance that hte startup might have done better, without him spending as much time, in which case you would have duly thanked his technical chops which contributed to startup success.
2. If you would have been stricter with the goals your co-founder might have bailed early. Had the startup done better, being less strict could have been construed as a good management decision which helped accomodate your co-founders competing personal commitments.
3. Similarly for setting a deadline - sometimes things just take longer, and your startup might have turned over a good leaf by just trying hard enough. There is really no easy way to know when you have to stop.
Essentially, the point that I am trying to make is that it is extremely hard to figure out what is the real reason for failure, and most such analysis misses the woods for the trees.
However, being able to distinguish correlation from causation is extremely critical as it is the basis on which startups should pivot (or shut down).
That's why I disagree that the choice of co-founder was bad because of these reasons. I think this is a overgeneralization.
Then you state you should manage development better and set better expectations. Well I think this is the main reason in the failure.
Did your co-founder knew exactly what you espected?
The rest of the time is spent on working for your startup. When I was co-owner of a isv our main income in the beginning was consultancy for clients. In addition we developed our product and used the spare money to hire additional developers. The consultancy work made sure we had a minimal paycheck at the end of the month which would pay our mortage and the bills.
Maybe this model is not sustainable anymore with being quick to the market and bead competitors on speed. But it worked in that period of time.
For all its benefits, the conventional wisdom of HN that one should pay off their mortgage prior to a startup may often be a mistake. A mortgage is leverage, and the cash used to pay ahead twenty years would be better used for a longer runway - $100,000 will cover many months of mortgage payments. What would most startups do for $100,000 worth of seed money?
Likewise, if a family keeps someone from going all-in to the startup that's only an issue when the other founders believe that going all in is a point of pride. In this case however, it's not that your cofounder wasn't going all in, it was that he wasn't even anteing up.
Kudos for being able to look at your own project this ruthless and to try to distill the lessons. If you succeed in never repeating any of the mistakes please tell me how.
As for the write-up: you did a good job.
Many software projects are, as I like to refer to them, "generalist projects." A good developer can make significant progress and success with these kinds of projects. However, there are some projects that I feel very hesitant about when someone without domain experience is brought on the project. These kinds of projects include, as a brain dump: machine learning, OS/low level systems development, cryptography, distributed systems in challenging environments, and reliability engineering.
I'm not saying a non-expert can't succeed in these areas, just that it makes me antsy.
When you run a script in Coda, say, first instinct is to look for functional problems, and usually there will be some, so you'll change stuff. But additionally there will be these tiny spelling errors, and failing to fix them right away leads to all sorts of trouble.
How do most folk deal with this? Just get 'better' at not making small mistakes?
You also generally get better at testing and at diagnosis.
It does get better.
I learned to program before IDEs and I still use Emacs as my primary editor for almost everything. I find the Visual Studio "IntelliSense" type behaviors in most IDEs annoying in the extreme. But I can see how if that's what you started with, you'd come to find it useful.
Can't expect every editor to have the same features, but some sort of 'smart' plugin would that monitored your words and picked up things that were 'probably a mistake' would be useful. Then you could run the plugin every so often. A spelling mistake can be practically invisible because of the way your brain processes things.
Yeah, this is exactly what happens when you do a lot of programming. Apparently, writing code isn't like writing natural language, where some people are terrible spellers and just can't get better. I know lots of programmers who are terrible spellers, some who can't spell a word twice the same way to save their lives, and in code they are as good at getting function and variable names right as anyone else. (FWIW, I observe this working in statically checked, compiled languages. Bad spellers don't seem to go through more "fix typo, compile, fix typo, compile" cycles than good spellers. It might be different when you don't have the compiler's immediate feedback pricking you to make fewer mistakes.)
The only problem is when people create class, function, and variable names that contain misspellings. Then your brain has to fight with itself, leading to repeated errors.
Thanks for pointing it out. :)
Thanks for an insightful article.
You can mail me at, me[at] ashmokhberi [dot] com
Thanks very much in advance.
I think one of the most important skills to have in business and entrepreneurial pursuits is realizing when things aren't going great. You develop the tendency in life to whitewash things, to always think in the positive.
But this isn't always necessarily good. I read a fascinating piece which said that depressed, pessimistic people were actually more accurate in their analysis of some things than happy optimists.
Being able to think/accept that you have room to improve is a good thing. It's when the real improvement/learning takes place.
"Our servers are over capacity and certain pages may be temporarily unavailable. We're incredibly sorry for the inconvenience."
But eventually I prevailed. The product is now successful and all the learnings is only going to shorten the path to success for my new product (mockuptiger)
I like to enjoy the journey more than the destination and think financial gain is just a side effect. ofcourse you need mile posts to know that your are going somewhere and these financial gains are excellent mile posts.
So enjoy,live and learn - repeat :)