Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Is software system design on topic here?
Is software system design on topic for the software development site?
For what I mean by system design, consider the "system design interview" commonly held these days when recruiting software engineers. I assume a software site would primarily deal with software systems, rather than things like airplane controls, chemical oscillators and manufacturing assembly lines.
For some examples:
- One might ask in the main QA section: "I want to have real time ML inference, but my database is OLAP and the performance is crap. Is there a way to fix it, or do I have to switch to an OLTP data store?"
- One might ask in the code review section: "I want to make a multiplayer game. Here are the detailed requirements. Here is my design for how the different parts will come together. Are there any flaws or shortcomings in this design?"
Informally, people think of sites like this as "coding questions". But many interesting questions and problems in software development are really questions about system design. Once a suitable software system is designed, implementation becomes obvious.
1 answer
Software design in itself has always been on-topic, as per https://software.codidact.com/help/on-topic.
As for system design for a given purpose, I think it is fine within reason. Contrary to popular belief, a certain degree of domain expertise or at least insight is always necessary when writing computer programs. It isn't really possible to only work with abstract programming in a vacuum, without a clue about the intended use and the end product. You could do that, but you will be designing bad, dysfunctional products.
I think the key is:
The focus of the question has to be about software design/programming, not about the domain-specific parts.
So a good question might go:
"I'm designing an automatic pony-feeder system. Here is my OO design and the list of use-cases <details>
. Does the design make sense and what languages and platforms may be suitable for the problem? I'm thinking that MyLittlePonySQL might be a suitable DBMS because <reasons>
, any thoughts about that?"
And a bad question:
"I'm designing an automatic pony-feeder system. I'm looking for feedback of what kinds of food it needs to handle and how much ponies eat per day, depending on age. If anyone knows of a pony feeding project on Github, I'd like to hear about that too."
That's nothing about programming, all about the domain expertise and shouldn't be asked here, but on some horse site. Furthermore, asking where to find off-site resources is generally unsuitable for Q&A sites.
However, the examples you give (as well as my pony one) are mostly regarding embedded systems design, so they don't belong here for that reason, since the consensus so far is that we should try to keep such questions on electrical.codidact.com. Big picture, domain-specific design questions have been mostly well-received there in the past (example, example).
1 comment thread