Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Meta

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.

Post History

71%
+3 −0
Meta Is software system design on topic here?

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 popu...

posted 9mo ago by Lundin‭

Answer
#1: Initial revision by user avatar Lundin‭ · 2024-03-14T12:03:30Z (9 months ago)
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](https://electrical.codidact.com/posts/288641), [example](https://electrical.codidact.com/posts/285186)).