The Genesis (Part 1)
“I have an idea!”
I find joy bringing ideas to life… But unless it solves a real problem.
At some point of your journey you may want to materialize an idea to address a problem and who knows as it could be the next billion dollar idea. Wouldn’t it be great to be able to create a solution when the opportunity arises?
As an engineer, ultimately I believe one should have the ability to build a product end-to-end with the patience to iterate on it countless times until conditions are met.
I would like to share my simple techniques and disciplines which have helped me hurdle the challenges in the early phases when starting an idea.
At this stage what only matters:
- The problem (what is the problem and what solution can i build)
- Validating assumptions (getting feedback)
- Code less (careful not to over engineer)
As the beholder of the idea, building a minimum viable product (MVP) is crucial to validate your business idea and get traction from potential customers. So building an MVP with less code is all about keeping things simple. The plan is to create the most basic version of your product that can be launched to test the market and gather feedback.
In this stage the product development process is riddled with trial and error, and overengineering can force you to return to the drawing board. So, it’s important to choose a backend framework that’s optimized for MVP development and supports rapid development.
RoR has never failed me since 2011 (3.1 back then). Until this day I still use RoR to catch up on ideas. It has enabled me to build useful web applications in 1 month. Here are some of the features that make that possible:
- Convention over configuration – Naming conventions in RoR make it easier to write code without constantly defining how things work. Thus, saving time.
- Generators and templates – Gives engineers easy access to quality, boilerplate code. DRY (Don’t Repeat Yourself) principle encourages developers to reuse existing code.
- Built-in testing framework – Allows engineers to quickly write automated tests (I usually skip this on this phase)
Some of the default ruby gems i use i can’t live without with every MVP:
- Devise – Devise is a flexible authentication solution for Rails based on Warden.
- Rails Admin – RailsAdmin is a Rails engine that provides an easy-to-use interface for managing your data.
- Haml – Abstraction markup language.
- Bootstrap – Responsive and mobile-first framework.
- Friendly Id – Pretty URLs.
“Build fast, test fast, fail fast, learn fast, repeat. SHIP THAT SH*T!”