Creating an MVP (minimum viable product) is hard. At Don’t Panic Labs, we have helped many companies stand up that crucial first version of their products. And in my time here, I have learned quite a bit from interacting with startups. This Top Ten list is a culmination of much of what I’ve picked up throughout the years.
#10 – You must enjoy learning
Building new software often requires using new tools. If you don’t like learning how to use new tools and technology, it is going to be a bumpy road.
#9 – There is no free lunch, all products require effort
Regardless of the marketing hype provided by tool vendors, writing good software involves effort. Often a lot of effort. Probably the best way to reduce the effort is to reduce rework. To get to that point, it’s usually best to narrow in on requirements before writing code, and then use high-quality practices (e.g., software design, code reviews, automated tests) to help reduce bugs.
#8 – Being a developer is becoming harder, not easier
Being a software developer in a startup world is difficult. It is fun, but it can be frustrating/stressful/exhausting. The number of things a developer must know to be successful continues to grow. Continually working on side projects is a useful way to stay in touch as tools and processes change.
#7 – New technology never makes development faster, it’s actually slower at first
This seems counter-intuitive to the marketing hype. New technology is released. New technology holds the promise to make it easier to accomplish some task. But before you can effectively leverage new technology, you must learn how to use it. And you often don’t really learn a new technology until you ship the software that uses it.
#6 – Everyone at some point wonders, “Why didn’t I become a plumber?”
The startup world is tough on developers, and everyone at some point will wonder, why didn’t I become X instead. These thoughts are natural, but you must push through them.
#5 – Process and tools matter, great people matter more
In the startup community, we often like to focus on inanimate objects or concepts. When you get down to it, we are relying on people. People are what really matter. Don’t lose sight of that.
#4 – Estimating is hard for everyone
We build a lot of software V1s here at Don’t Panic Labs. So that means we do a lot of estimates, and even these estimates are hard to do.
#3 – You will never regret a unit test
Unit tests are not the silver bullet for quality. But as a development practice, they are really useful as you attempt to keep software development projects on the tracks. Rarely will you look back and ask, “Why did I write that unit test?” Also, spending time designing your software in advance falls under the same headline. You won’t regret it.
#2 – Software keeps changing
If the software is being used, it will change. You can’t fear change; you must embrace it. Change is why you need to design your software to encapsulate change. Changes shouldn’t require you to throw your software away and start completely over.
#1- Next Level 6410: the best t-shirt available
What else can I say? They’re soft, they fit well, and the price is right.