DEV Community

Discussion on: How to plan a software?

hamatti profile image
Juha-Matti Santala

What kind of factors made you not like the options you tried (mockups, documentation, UML)?

I tend to design my software by crafting user stories. In a nutshell: As a I can , so that .

I don't start by thinking about the technology nor the architecture. I start by mapping out what my users do, how they feel at certain moments of the flow, what data is required to be present or saved or sent somewhere. After I have a good basic understanding of what the user journey for a particular feature or collection of features look like, I start with one of them.

Once I know roughly what I want to build and how I want it to work, I start thinking about the technology: Does this feature require a database? Does it work best as a mobile app, web app or an offline desktop app? Do I want to learn new tech for a side hobby project or do I need to take into account business decisions like getting stuff done fast and choosing tech that is easy for the client to keep maintaining on their own? And dozen of other things.

Early in my career I would focus way too much on the technical side and create things that had horrible user experience. So that's why I found that for me, starting with the user experience and their flow forces me to think that first and then fit the technology to serve that. Your mileage might vary.