This advice is more about how to prepare for a start. If you want your project to be on point and efficiently developed, there is much you should do before you begin an actual implementation. I usually separate this preparation into three phases.
1. Setting your goals
- Who will be your main user
- What need should your project answer to
- Who will be your client (a person making your project profitable)
- How will your product answer to your client needs
- What is your competition
- How will you differentiate from a competition
- What is your available budget
- What are your time constraints
It’s a very good practice to write down all those business requirements. It’s even better to do a market research to make sure your project meets those goals.
Once you have your main goals, you should create a general specification. This specification can take multiple different forms, some of which I present below. You can choose one, or any combination that works best for your project.
You can define key roles in the system, and afterwards define operations that each role can perform. Example:
- can create new event
- can delete an event
- can join an event
- can leave an event
If you prefer to sketch interface of the system, this also works well. You can use any of available online tools, or just sketch on paper. Personally I would recommend to use Evolus Pencil or Figma.
You can just write down modules that you plan to use in your system and describe in a few sentences how those modules should behave. With this approach, it’s important that you’re specific with your descriptions.
Once you have a plan for your project, it’s invaluable to consult it with your potential clients, as well as with people experienced in the matter. Believe me, it will save you a huge amount of time in next phases.