DEV Community


Posted on

A Zeno Paradox: Starting a new project

The setup

So you want to build a program? There are so many decisions to make at the start of a project that it can become overwhelming.

  • What language/framework to use?
  • What database structure is most appropriate?
  • What is your development workflow going to be?
  • What tools/libraries can help with the project?

And most importantly -

What do you build first? Second? Third?

This is the part that is most difficult.

  • Start with a UML outline?
  • Define API endpoints?
  • Basic application scaffolding and user tables?
  • Spent a week in designing sprints and breaking things into features?

Question for the community

  • What do you do?
  • What tools do you use?
  • How do you decide what your first line of code is going to be about and the first commit?
  • What tools do you use to plan out all the features and milestones?
  • How far do you define the roadmap and do you do this all before before writing code?
  • What project management software do you use?
  • What role does pseudo code and database schemas play in the planning process/priority?
  • Are there more modern or experimental approaches to getting started?

Any step may be divided conceptually into a first half and a second half. Before taking a full step, the runner must take a 1/2 step, but before that he must take a 1/4 step, but before that a 1/8 step, and so forth ad infinitum

  • Zeno’s Paradox

Top comments (2)

flrnd profile image
Florian Rand • Edited

Too many indeed! I'm not an expert but here I go!
This answer is going to be long:

  • Do you have the resources / time to learn a new stack? If no, stick with what you already know.
  • Database structures are a job itself! Only advice that comes to mind is: don't use mongodb if your structures have relations!
  • I like writing user stories for my projects. Nothing perfect, I start with something simple, enough to have a global image of what I need. Then I separate needs and start again the story, but deeper. Lastly, I love doing diagrams and what not in old fancy paper with a forsaken pencil (it's a very simple diagram of one of my current projects).
  • About software for project management, whatever does the job, asana, trello, clickup, zen ... Even gitlab has a very useful To-do that can be used. I think it's more productive start using just the tool that works for you.
  • You need to be careful to not enter in a taking decisions loop and never take off your project.

Hope It helps!

hayao profile image

Post below via

amorganpd image


Here are some general items, depending on what you are building:

User Experience design

  • Understanding user needs
  • Better understand the user, the context of use, and the type information and their relationships to each other
  • Prototype the wireframes in something like UXPin ( or Adobe XD ( )
  • Test it with potential users

Functional design

  • Define your features based off of user needs
  • Further define features based on technical requirements (i.e. to achieve user need x, feature y is needed. To implement feature y, layer a, b, and c need to exist)
  • Isolate and test unknowns
  • Gain momentum by creating complete sub systems / components (i.e. design the database structure with the core required components, then add more data structures as needed)
  • Use UML or YAML for diagrams or sketch it out