Articles
How I do side projects
2023-10-066 minutes read
#business #work #product-design
Over the past years, I have been building and launching several of projects. Some have been successful, while some have failed. Many have asked about my approach, so I decided that it would be beneficial to share my learning and the personal system I use, from coming up with ideas to releasing the MVP.
This blog serves as an entry point and overview of how I do side projects. I plan to continuously update and write articles to elaborate on each topic later. So, feel free to check back when you start your next project!
0. Don't know what to build?
- Inhabit a problem-rich environment
- Most of my project ideas come from my present hobbies and my existing projects.
- The deeper you explore hobbies, the more likely you are to see problems. Similarly, the more valuable your projects become, the more problems you will encounter.
- How I find new hobby?
- Pick any topic you find interesting or curious, and set aside some time to explore it.
- It can be books, movies, podcasts, latest technologies, cool topics that your friends were talking yesterday, or whatever.
- If something along the way sounds interesting or fun, just go for it.
- Learn from the best in the field, or find a local community and engage in conversations.
- Get your hands dirty.
- Find good tutorials. Imagine, create, play, share, and reflect (repeat).
- Note: This is the process I usually find my new hobbies.
- Inspiration strikes when I find something I've learned that is 1. Mind-blowing, 2. Imaginable in terms of what I can do with it, and 3. Easy enough to take the first action.
- If my first action results in a win, it will serve as a great source of motivation and could easily evolve into one of my hobbies.
- Pick any topic you find interesting or curious, and set aside some time to explore it.
- Having another self closely observing what you're currently doing.
- Look for disappointment, something that makes you unhappy.
- Happiness = reality - expectations.
- Ask yourself, "How could this be better?", research the existing solution, adopt it, then repeat the question.
- Ask extreme questions to trigger new, better ideas.
- Look for disappointment, something that makes you unhappy.
- Use any note-taking tools to jot things down when new ideas pop up.
- Repeatedly check the list when you have a free time. It's better if you start exploring early before your motivation decreases.
1. Define Purpose
- Why am I doing this project?
- Am I building for myself?
- Define yourself: current behaviors/workflow, interests, etc. (so that you can design your project's experienced tailored for these kind of people)
- What do I want?
- Define reality and expectations, making it as clear as possible.
- What are you optimized for?
- Learning or exploration? building something useful? self-expression?
- Typically, my projects blend the above aspects, with one serving as the main focus and the others playing supporting roles.
- Am I building for myself?
- What your perfect world looks like?
- If you are a user, what's the perfect experience look like? list them down.
- What makes you excited?
- When deciding whether to do something, if you feel anything less than “Wow! That would be amazing! Absolutely! Hell yeah!” — then say no.
- Here are some example projects based on different project's purpose:
- Exploration: build your own X, Month to Master, cpu.land, ciechanow.ski
- Something useful: home-cooked software, Organic Ideas (any tools you build for yourself)
- Self-expression: Neal.fun, Full-body keyboard, Personal website
2. Build MVP
- How much resources do I have?
- List down resources and constraints.
- Imagine MVP
- MVP != poor quality, unpolished product
- MVP = minimum effort to make your users happy.
- Ask, "If you solve a problem for 1 person, what will the MVP look like?" then ask the same for 10 people, and 1,000 people.
- Do I need a sign-in page? Do I need to code? Can I manually solve the problem?
- Start building to solve a problem for 1 person first. If you do it well, build your MVP for 10 people and then a 1,000 people. (Get the feedback along to way)
- Tip: don't waste time trying to perfect the MVP design. It's better to start with the most obvious one and then adjust it along the way while you're building.
- Proof of concept (POC)
- List down the underlying things you need to prove to ensure that your MVP will work.
- In terms of usefulness, build a POC just to test whether it's something you will personally use. Ditch the project, if it's not.
- Can I build the MVP in one or two weeks?
- If it takes longer than that, cut down the scope or separate it into another project.
- Tackle one thing and do it insanely well.
- What should I do if things don't go as planned, and what's the next step if they do?
- It's better to have an exit plan before you start the project.
- For example, most of my projects are static sites that I can host for free. If my idea fails, I can simply abandon the project without any cost or need for maintenance.
- Write down a project timeline
- Ask, "What assets/resources would I accumulate at each stage?" and once obtained, how can I leverage them?
- Luck is what happens when preparation meets opportunity.
- Don't waste time thinking about the far future plan.
- Ask, "What assets/resources would I accumulate at each stage?" and once obtained, how can I leverage them?
- Implement the MVP
- 80 - 90% should be tools you're already familiar with, and 20% can be new tools you're interested in exploring.
- If you find interesting or better ideas along the way, take a note, explore and adjust the plan. Tinkering over planning.
- “You don’t get lucky if you plan everything.” - Joi Ito
3. Launch
- 80% of your complete picture is enough. Perfectionists rarely get anything done.
- Write the project's description
- Using simple language.
- Make it short.
- Concise explanations accelerate progress.
- Sell the benefits, not features.
- Write Call to Action
- Don't market if your users can't do anything about it, you'll lose momentum.
- How can I make users get access to value as fast as possible?
- Can users just visit your site and test it within seconds, without the need to sign up?
- Launch small but more often > one big launch
- Define launch success metrics. Setup analytics
- Get the feedback and improve the UX along the way.
- Launch big once you already have a polished product.
- Quality over quantity. Tailor your launch message for each community.
- If you're a user, what's the perfect place to discover about this project?
- Ask, "how can I make it through the filters?"
- Constantly asking: "What made me start the project in the first place?"
- Be aware of the sunk-cost fallacy; if it's logical, stop the project.
- Don't think about growth until your users love your product.
- Build (and learn) in public
- "Put yourself, and your work, out there every day, and you'll start meeting some amazing people." - Bobby Solomon