DEV Community

Discussion on: How to plan a software?

Collapse
 
thefern profile image
Fernando B 🚀

Here's how I plan an app, or system. In the initial design I try to stay away from UML or any computer type CAD program, I stick to drawing components on paper. List the requirements, list available libraries/frameworks. In the beginning think very broad without getting into the specifics of classes/methods/libraries. Think how major modules of your app will interact with each other.

The most important aspect of your app the core of it, can be designed first, and prototyped to see how well does it work, from there you expand in/out. Building piece by piece.

There might be back and forth as you wrote, and that is fine and can be dealt with when refactoring code.

As Juha-Matti Santala pointed out using user workflow can be very powerful to assist in what you need to implement in the code.

  • Does a user login everytime type of app or keep a token? Like a banking app or twitter?
  • Once the user logs in, what is the first thing you show?
  • Settings for the app?
  • Screens? What screens do the user really need to get work done?
  • App errors? How do you handle debug logs so you can fix bugs in the future?

In the end don't overthink it too much, you have to have some sort of prototype to see what works and what doesn't. Designing just comes with experience as all things. Google is the best helper when trying to figure out patterns, and StackOverflow for specific questions don't be afraid to use those resources.