DEV Community

loading...

A Zeno Paradox: Starting a new project

hayao profile image Hayao ・1 min read

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

Discussion (2)

pic
Editor guide
Collapse
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!

Collapse
hayao profile image
Hayao Author

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 (uxpin.com) or Adobe XD (adobe.com/products/xd.html )
  • 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