I’m currently working on my computer science degree and need help understanding how professional software design works in the real world.
Most tutorials and online courses I’ve seen skip the planning phase completely. They go straight to writing code without showing any design work first.
I’m curious about the actual workflow that development teams follow. Do they begin with database schemas, class diagrams, or some other approach? What tools and methods are commonly used at your workplace?
Also wondering if traditional modeling techniques like UML are still popular, or if there are more modern alternatives that teams prefer nowadays?
ya, i hear ya! agile’s where it’s at for most teams now. we kinda just dive into it with user stories and wireframes. and yeah, UML’s kinda ancient history now. tools like Miro and Figma are the go-to for mockups these days.
Having experience in both startups and larger organizations, I’ve found that the software design approach varies significantly with the project’s complexity and timeline. Typically, teams begin with requirements sessions to clarify business objectives and technical limitations. Architectural decision records are often created to document major technology choices and system boundaries prior to any coding. Database design usually follows the establishment of the overarching system architecture. While some companies still utilize UML for detailing complex interactions, it’s selectively applied now, often involving sequence diagrams for API flows and ER diagrams for data modeling. Traditionally, the Waterfall model is fading in popularity, except in heavily regulated sectors that demand extensive documentation.
interesting question! i’ve noticed the same gap in tutorials too. what projects do you wanna work on after graduation? web apps, mobile, or something else? the approach changes a lot depending on what you’re building and company size.