by OulaX on 2/12/24, 7:07 PM with 7 comments
I am constantly improving my coding and testing skills and I can feel the improvements day after day.
However, one part that I am still facing trouble with, is project planning and actually executing that plan.
I can't decide whether I should start with a DB schema or jump right in to experimenting. I can't decide whether I should develop the frontend first or the backend. I can't decide what steps to take after I have an MVP.
I want to learn how other developers approach these tasks in their projects, maybe I could learn something new from everyone!
by leros on 2/13/24, 4:52 PM
I'll dedicate time to just project management. I'll become a project manager and lay out the requirements, break that down into tasks, and prioritize. Then I'll take one task and focus on that. For example, an early task might be designing the overall system architecture, so I'll become a software architect and work on that. A next task might be coding a feature. So I'll become a developer and code up that feature.
If I ever find myself mixing roles into a single work session, it's usually time to take a step back and organize myself a bit more.
by muzani on 2/13/24, 7:49 PM
The pro way would be to tackle the riskiest. Is it hard to make money? Hire a designer, mock the UI, show the dummy app to the customer. This is what I'd do as a freelancer being paid hour to hour.
The casual way is tackle whatever you feel is easiest. I like UI and colors, so I start there. Some people like data structures.
Build a system. Systems are not about the components but how they connect. Components can be swapped in and out. So an API is actually one way to start.
Abstract out components as much as possible. I replaced my caching system with a memory cache (aka put everything in variables) even though the proper way would be a disk cache. It does the job.
Build interconnections first though, then you swap the parts in and out.
"I can't decide what steps to take after I have an MVP."
This probably means you won't have a MVP, lol. MVP means minimum. You need to promise something to someone and then deliver on that promise. The purpose of a lot of UI, UX, juice, etc, is to make them intrigued enough to make them a promise.
A lot of people aren't mindful of what the customer expects. You can get this from reviews and customer research. One group is price sensitive and don't care what organs are in their hot dogs. Another wants calorie count. Another only cares about carb count.
Those features should be in the marketing. Screenshots are marketing. Figure out what they want, promise them the thing, have QA gates to check that the thing meets the promises, then sell the product that does what is promised.
by eternityforest on 2/14/24, 3:06 AM
1. Look for other stuff that already does what I want, or could be extended to do so. I'd rather make a PR for your project than start a new one.
2. Look for tech building blocks to do the thing. I do this before thinking about architecture, I want my design to fit popular tools, not obscure tools that fit my design. Test them out if I haven't used them before, ensure they actually work.
3. Look at protocols and data formats used in similar things. I probably want to stay compatible and keep a similar UI.
4. Sketch what the UI and workflow should be. I don't want to design something that is a poor match for the UI I have in mind and requires ugly glue code.
5. List any nice to have stuff I want to be sure I can do later
6. Write the backend functionality and whatever test code I need for it. A git repo should be there from the start.
7. Do the frontend
by romanhn on 2/13/24, 6:37 AM
by bjw181 on 2/12/24, 7:12 PM
For everything else I think design should drive the backend development. Annotate some figma mockups and you can build your schema off of that.
by saasjosh on 2/13/24, 11:18 AM
When I start from scratch again, I usually do much better than the first time because you get to use all the experience from the previous iteration to make the current out better.