I keep finding tons of materials about writing clean code, implementing design patterns, and following SOLID principles. But these resources always start with the assumption that you already know exactly what your application needs to do and how it should work.
What I’m really struggling with is the part that comes before all the coding. How do you figure out what the system actually needs to accomplish? How do you work with business people and users to define the scope and boundaries? I want to learn how to keep things simple from the start instead of building something overly complicated and then trying to fix it later.
Most of the time I see developers (including myself) jump straight into domain-driven design or other complex approaches when maybe a simpler solution would work just fine. I’d rather learn how to avoid making things complicated in the first place.
Does anyone know good books or online courses that focus on this early planning stage? I’m looking for guidance on understanding business requirements and translating them into system design, not just technical implementation details.
Would love to hear what has worked for other people in this area!
I’ve hit this problem tons of times early in my career. What really turned things around for me was running event storming workshops with stakeholders. These sessions let you actually see the business processes and figure out what problems you’re really trying to solve instead of jumping straight to code. I’d spend time mapping out how things currently work and usually found that the features people wanted were just band-aids for deeper issues. I also started building quick prototypes or wireframes before making any architecture calls. This forced real conversations about what success looked like and helped separate the must-haves from the nice-to-haves. The game-changer was asking ‘what happens if we just don’t build this?’ for every feature request. Cut out so much unnecessary complexity right from the start.
this hits home! what types of stakeholders do you work with? I’ve noticed business people communicate needs totally differently - some give crazy detail, others are super vague. any tricks for getting them to say what they actually need instead of what they think they need?
totally agree! user feedback matters a lot. i used to guess the features to build but often missed it. talking directly with users and doing small tests can save u a lot of time later on.