How to go from idea to production
Tags: productivity, programming, webdev, startup
Published: 2021-08-19 15:15:32

**So you've got an amazing idea?** Thank you so much. You are doing a great job. Having an awesome idea is one thing and developing that idea into a valuable solution is another thing.

The journey of building your idea from scratch up to production starts from a clear understanding of the idea itself. After that, you have to figure out where the idea fits into reality. This implies you need to visualize your idea as a solution that should provide value to people.

In this post I'll share with you proven advice, tips and best practices, that will help you migrate your idea from ideas-land to production.

**The beginning**
Your awesome idea should have context. It's almost impossible to evaluate an idea that has no context. In reality, people will be ready to buy a solution not an idea. Finding context for your idea is like finding the proof that your idea will be useful.

So get your ideas-board ready for some work. You need to do some assessment to help you gain an in-depth understanding of your idea. If you don't have a board of any sort, it's okay. You can use your notebook or writing pad, it doesn't matter.

At this stage, your mission is to fully understand your idea and relate it to a valuable solution. How do you even do that? It's not quite easy to do. But finding some answers to certain questions will help.

Answers these questions thoroughly.

1. Is there a problem to be solved?
2. Will your idea be the best solution to that problem?
3. How best will you make your idea/solution available to people?
4. Will you be working on your idea/solution even in the future?
5. What tools will you need to implement your idea/solution?

Found good answers to the above questions? If so, then it's time to begin the actual development stage. Welcome aboard! But before proceeding we need a really good plan. This plan will keep us focused through out the development stage, focus is key.

**The plan**
1. Creating the documentation
2. Understanding the data you need and it's demands
3. Choosing the tools, tech stack, and more...
4. Writing some code
5. Testing, and then debugging
6. Finally, launching to production
7. What next?

Let us execute.

**Creating the documentation**
Your idea's documentation doesn't have to be some fancy document of any sort. Figure out the features that your application will have. Figure out how those features will be useful to the user. Figure out how each feature will be developed. Figure out all the requirements needed by the application, example data. Write all of that stuff down.

These don't need to be formal documents, It's just a way to elaborate your idea or solution in concrete detail. These documents will guide you through out your entire project.

**Understanding the data you need and it's demands**
Data is paramount through out the life cycle of any product. Data influences all the decisions that you'll make during development and when in production. Proper planning for data will help you make better decisions, faster.

How do you plan for the data? Good question. First and foremost, you need to know the types of data required by your application. Different applications make use of various types of data for instance; text, audio, images, and more.

After clearly noting the data types to be used, you need to figure out if any transformations will be made to the data. Transformations are helpful to turn the data that you receive from users, into entities that can be used by your application. A good example is image transformations like compression.

**Choosing the tools, tech stack, and more...**
The data and all transformations it requires, will both determine your development tools (By development tools I mean the tech stack mainly). As an example, the tools required to build a social network may not be the same as those required by a payments app.

Development tools are so abundant. In fact most are free and opensource. Some come as libraries while others come as complete frameworks. Some of these great tools include React Js, Vue Js, Angular, Next Js, Nuxt Js, Express Js, Rails, and more.

Your choice matters. You are free to choose any of those tools for development. But the best advice is to think of the demands of your application's data first. The demands of your application's data should guide your choice of tools to use.

**Writing some code**
Coding is where your idea is turned into a real world application. At this level, data still has a huge influence on your choices. By choices, I'm talking about deciding on things like data structures, utility tools, coding style, and more.

Most of the choices you'd have to make, are made for you by the framework or library you'll use. As much as this is an advantage, more complicated scenarios usually arise. I'm talking about cases where your application's requirements push you to the limits of the library or framework code.

You still have to consider the demands of your application's data when writing code. Consider form building as a real world example; some applications may require data to be collected dynamically, therefore you would be required to design dynamic forms. Other applications may require you to build very secure forms, like payment applications. And other cases...

**Testing, and then debugging**
Testing comes first here. As a matter of fact, tests should be written side by side with the code that is to be tested. If you don't write tests for your code, then how will you be sure that it's working as expected?

Writing tests is the most absolute way to verify that the code will work as expected. You'll also avoid unnecessary bugs if you write tests.

Even when all tests have passed, you still have to hunt for some bugs in your code. Debugging is like weeding, but for code. Proper debugging will make your application ready to be seen by the world.

Debugging doesn't have to be a fancy chore. You can start with simple tools such as the Firefox dev tools (In case of Javascript). And later advance according to the size and needs of your application. 

**Finally, launching to production**
If you reach this level, you deserve a coffee. So many people struggle to make it here. Some people start off projects and never complete them. I guess it's because of procrastination. Who knows?

But for your case my friend; Going through all the above levels until this point, means that your application is more than ready for the real world.

Wondering where to take your awesome application to show it to the world? Don't worry. I have some interesting suggestions for you.

[Netlify](https://www.netlify.com)
[Heroku](https://www.heroku.com)
[Google firebase](https://firebase.google.com)
[Amazon Web Services ](https://aws.amazon.com)

**What next?**
Once you're running your application in production, it's not the end. There's a new adventure awaiting. While in production, most of your decisions will start to base on feedback from the users of your application.

So the next work you've got is to listen carefully to what the users say. Adjust your application's features according to their feedback. Respect their suggestions and insights. That will make your application grow.

**Conclusion**
That all you need to go from idea to production. If you think I left out some important information, please share it with me in the comments below.

If you wish us to be friends, am on twitter @bk_973 

Thank you so much for your precious time.