I'm a Software Engineering student looking to understand how software design actually happens in practice, particularly for my thesis project. Most tutorials and resources I find seem to jump right into coding without covering the design phase. What does the design process typically involve? Do companies start with things like ERDs (Entity-Relationship Diagrams) or UML diagrams? Is UML still relevant today, or are there better methods for software design? How do you generally tackle this in your own company?
5 Answers
Most designs start with business requirements and evolve from there. The initial discussions lead to high-level diagrams, and then we get into more specific requirements and options for implementing technology. Decision-making is a big part of it, focusing on what best suits the project at hand.
At my workplace, we typically create design documents to outline our plans, and we don’t really use UML anymore. Team discussions happen to refine ideas before handing them off to engineers for implementation.
Honestly, design is often skipped altogether! It can be chaotic, but a lot of times we just go into coding without much planning. You’d be surprised how common that is.
If you’re looking for a structured approach, check out the software development life cycle (SDLC). It begins with identifying a problem, gathering requirements, and then iterating on the design based on feedback until you have a solid solution. Diagrams like ERDs can be very helpful, especially for visualizing complex systems.
In my experience, we often start by whiteboarding concepts and drawing wireframes instead of focusing heavily on formal diagrams like UML. It’s more about brainstorming the minimum viable product (MVP) to meet user needs.
Essentially, you identify the user need first, then assess what capabilities you need to deliver it. Focus on simplicity and user experience during high-level design.

MVP? What does that mean?