Ways Founders Sabotage Themselves
techcrunch.com
techcrunch.com
I've read this same advice in one form or another many times. This is all well-known stuff and "clients" still aren't learning as far as I can tell. I don't think they'll ever learn because proper software engineering practice is counterintuitive and the attitude of management will not lend itself to these practices.
Instead of talking about the problems, I think we need to arm engineers with techniques for defending proper software engineering practices. Lean and Agile methodologies have helped considerably, but I think more work is needed to truly ease many of these frustrations. I'll let you know once I've figured it out...
Especially the premature scaling combined with technical debts is a very common pattern. Companies tend to use the latest technology but also ignoring every common pattern of sustainable software engineering (e.g. tests, code style). Usually the involved developers are quite new to the technology and will make a lot of mistakes. Some will learn from their own mistakes over time and fix it, some will never learn and continue providing a negative value to a team.
I've seen this anti-pattern in various web-related companies and startups. The technology never was the primary reason of the failure but people problems (lack of skills, lack of proper management, lack of social skills — both of the developers and the business owners) was the #1 reason.
I've seen this with Perl, PHP, Java, Ruby, JavaScript/Node and all different types of NoSQL DBs when people use them "for the wrong thing" or didn't understand what's the trade-off.
Looks like even today everyone is believing in new and true silver bullets for each technical venture instead of combining the best practices with as little trade-offs as possible.
1. Start with our product that has nothing to do with social networking
2. Spoon in some "social" and "sharing", and mix.
3. ROCKETSHIP VIRAL GROWTH OMFG!
...and when you don't get to step three, just keep adding MORE SOCIAL!
Force people to log in using Facebook! Put share buttons everywhere! Harvest the user's address book and spam it! Harvest their Facebook friends! Add Twitter! Add Google+!
What's worse is when you're resource constrained and you stop working on the core features of your product: the features that actually bring real users to your product to.
Backstory: somebody on Quora asked about common startup misconceptions: http://www.quora.com/Startups/What-are-common-misconceptions...
Off the top of my head I named a bunch and it turned out to be a popular post. Somebody said, "Hey, that's a good outline for a book!" I thought, "Hm, let's give that a try."
So I could get feedback, I put together three sample chapters and a landing page:
http://williampietri.com/book/
Now I'm trying to decide: If I do the (substantial) work of writing it, will enough people read it to make it worthwhile? (Worthwhile is defined here in terms of impact. I'm sure it won't be as profitable as doing something technical, but there's an audience of first-time entrepreneurs I'd like to help.)
In particular, I'm wondering:
* Will new entrepreneurs bother to buy and read a book about problems?
* Will people who deal with entrepreneurs find a book like this handy enough that they'll make new entrepreneurs buy and read it?
If I do the book, I'll do it through some medium like Leanpub so I can put out drafts to many people and get feedback. And after 18 months or so, I'll put the posts up on a blog so people can comment forever. But the nice thing about a book is that it's done; I don't want to be forever updating the material.
The how-to website would be cool. There's a lot of info out there that isn't well captured.
If you're excited to jump in on a related effort, there's the Lean Startup Circle wiki: http://leanstartup.pbworks.com/w/page/15765221/FrontPage
Sean Murphy in particular has done a ton of great work on that.
This is where many teams drop the ball. They start building their app/service with persistence technology that really can't make it to web scale. Their plan is to "build a team to solve the big-data challenge when we hit that level of scale".
Many of these shops that decide to worry about big-data challenges later on do end up solving the problem in time so from the outside they look like a success. What you're not seeing is how the founder's equity gets eroded as he is forced to borrow money in order to build out the team to rearchitect the app in order to deal with the scale. Many VCs want for us to accept this as a normal part of building apps because it ensures that they get a major piece of the pie. It doesn't have to be this way though, we can start thinking about data access patterns in the large from the very beginning.
People pass it on for its own sake... and if that problem comes up in conversation, "oh I heard about this thing for that".
So basically don't worry about how to shard your DB to hundreds of instances and split loads across EC2s on different continents on day 1