Planning a programming project/product
by trobo · 46 things on Twos
- This is the way how I usually make a rough plan for a new programming project. This could always be expanded but it's a good starting point to put some thought into things before starting to implement features right away.
Please keep in mind that I am just a hobbyist programmer and not a professional, so this is just what works for me.
- 🤔 Project idea/description
- 1-2 sentences briefly explaining the project
- e.g. This imaginary project is a simple Discord bot to automate the moderation of a server using AI to detect suspicious users.
- What is the goal of this project?
- Making a business you want to grow or is it just a side project for learning purposes only?
- 📝 Requirements
- The purpose of this part is to write down ALL features you see as potential requirements
- Think about things you'd expect your product to do, but also what a business might expect and most importantly what the end user would expect
- This can always be expanded but take a good amount of time for this and try really fleshing out your idea as much as possible so you are sure about what you want to do
- 🎯 Implementation stages
- After figuring out your requirements, you can now prioritize them by organizing them into different stages
- Stage 1 (MVP)
- The MVP (minimum viable product) is the stage which you want to achieve first. In this stage your project includes only the most essential features to showcase your app's idea and attract your first users.
- Here it's important that you don't go overboard with implementing details and gimmicks, but also maintain a high enough quality so the User Experience is still good enough to have a few users stick around or to allow general interest building up.
- Examples:
- Base bot setup m
- Set up bot in Discord developer dashboard s
- It logs in to the Discord API s
- It can send a message s
- Adding a rough time estimate to the end of your todos can also be a good idea,
- s = small task, takes a few hours max to complete
- m = medium task
- b = big task
- Stage 2
- In this stage the prioritization of features could work by the principle of "low effort & high impact"
- Build out things which are easy to implement but generate big wins.
- The goal in the end is to either attract more users (if growing your product is your goal) or implementing the most technically impressive/challenging features if learning is your goal for this project
- Adjust your tasks here based on your project goal and find a good ratio between technically impressive and usefulness for users accordingly
- 🔨 Tech stack/technologies used
- After figuring out all of the things you want to implement, it is now time to think about what you will use to implement your project.
- Depending on your project goal you set at the beginning, there are several questions you can ask yourself to determine your choice:
- Do I want something robust (enterprise-level) or rather something bleeding-edge?
- Is this project something that needs to run/be maintained for years to come or will I drop it after 1-2 years?
- Do I need fast iterations to move fast or do I want to go slow and steady?
- After thinking about these questions (and maybe some more), you can determine if you can build things with a tech stack you're already familiar with or need to learn something new.
- Sections you could add here:
- 🛠️ Project architecture
- Other sections you could add to this template:
- Collaboration plan (if you're working in a team; who implements what?)
- Use cases (how can my project be used in the end?)
- What things to highlight in technical documentation or a product pitch
- Hopefully this template is useful to you. Happy Twosday! ✌️
/ᐢ⑅ᐢ\ ♡ ₊˚
꒰ ˶• ༝ •˶꒱ ♡‧₊˚ ♡
./づ~ :¨·.·¨: ₊˚
`·..·‘ ₊˚ ♡