5 ms·
Seems like systems design is just studying a potpourri of engineering disciplines and the job entails stringing it all together the best that you can. Is there
by kilgnad 4y ago
Seems like systems design is just studying a potpourri of engineering disciplines and the job entails stringing it all together the best that you can. Is there a formal theory about systems? I don't think so, and if there is, there's definitely no way to quantify if one system is "better" than another.
Since no formal theory about the field exists.. every conjecture is just opinion. So someone working in systems design won't necessarily come up with a better "design" then some other person who doesn't specifically work in the field given that there's a lack of a formal theory to prove it either way. In software these guys who do "designs" are the system architects and I think the ridicule is justified given that anyone can do it.
Category theory is the closest thing I've seen to a fundamental theory of design and I'm positive it's not well known among "systems design" engineers. Honestly it's not even that useful either because the theory doesn't include any measurement to determine if one structure is "better" than another.
- sho_hn 4y ago> I think the ridicule is justified given that anyone can do it. Ouch, that hurts. I had to do 15 years of C++ programming and put working code on 10bn devices to have a shot at a "System Architect" position ... That said, I don't know much of the theory - I do know software and hardware from experience making and shipping it.
- kilgnad 4y agoMaybe I shouldn't say "Anyone can do it." I mean more like you don't need any "design" training or specific "systems" training because no actual theory about this stuff actually exists. It's bullshit. You did 15 years of C++ so you have domain knowledge of C++ and whatever area you work in. You don't need any extra "design" training to get good at it. So a better way to say it is this: Anyone who is knowledgeable about whatever they're working on can do "design" you don't need to hire someone who's an expert in "design." Your title "Systems Architect" is more of a symbol of your rank and years of experience then it is your ability to design.
- righttoolforjob 4y agoEven though there isn't a formal theory, there definitely is a big difference between a person capable of doing good system design and one who isn't. I don't think all people are capable of becoming a systems designer or architect. It is not always required for projects, but when it is necessary it can make a great difference, putting a project on the right track from the beginning and keeping it on track, making sure it all becomes something good in the end. I've done it enough to know that I couldn't do it while keeping my IC-type role as well. For me, personally, I approach systems design in a sort of breadth first search for a solution to the entire problem space, whilst deep-diving into particular areas where I am less certain. For other parts my experience lets me brush over details quite quickly. However, that is quite different from an IC-type role, where you'll typically run into a multitude of practical engineering issues that can be frustrating and take a lot of time. Tool issues, cloud issues, bug hunting, smoking out every little detail, write unit tests, review others code, etc. That would completely throw your mental cycles in the wrong bucket. I don't think you should do system design without having plenty of experience from IC-type roles though. You have to have understood so many different aspects; capabilities of the people at hand, the organization at large, tools, frameworks, technologies, etc, and be very, very willing to communicate the picture over and over again and take in feedback as the project progresses. It's technical leadership at one of the hardest levels. But realise at the same time that even software development itself doesn't have anything resembling a universal theory, common processes or frameworks. It's all changing, being reinvented, and rediscovered on a continuous basis. It is equally true that many things even in medicine or construction aren't based on any solid science.
- kilgnad 4y ago>Even though there isn't a formal theory, there definitely is a big difference between a person capable of doing good system design and one who isn't. Yeah? Prove it. You can't. That's the big problem here. The only thing you can give me at best is some vague metric on some anecdotal experience. We don't even have data on this. Replace "system designers" with ICs who have the same breadth of IC experience who produces the better design? What does "better" even mean? My personal opinion on Systems design is that it's pretty easy if you got the "IC" part down. It is largely just arrows and boxes. >I've done it enough to know that I couldn't do it while keeping my IC-type role as well. For me, personally, I approach systems design in a sort of breadth first search for a solution to the entire problem space, whilst deep-diving into particular areas where I am less certain. For other parts my experience lets me brush over details quite quickly. I think of system design as something that is tediously hard. It's not something that requires a massive amount of skill. But it does take a lot of time to come up with a design. It's like building the Eiffel tower out of toothpicks. Anyone with the relevant domain knowledge (as opposed to design knowledge) can do it. So yeah it does make sense you can't be an IC at the same time. >But realise at the same time that even software development itself doesn't have anything resembling a universal theory, common processes or frameworks. It's all changing, being reinvented, and rediscovered on a continuous basis. This is the whole point. Anything referred to as "design" is largely an artistic endeavor. Arguably much of these frameworks have been changing in a manner that cannot be characterized as "improvement". Just endless horizontal progress and endless genetic drift because we can't know if one design is better than the other. This is the same with system designers. The skill level is horizontally stacked because we literally can't prove shit. >It is equally true that many things even in medicine or construction aren't based on any solid science. Medicine is a highly quantitative endeavor. All medicines go through rigorous quantitative verification for efficacy. The same is definitely not done with system designers.
- deleted 4y ago[deleted]
- di4na 4y agoyou can search "cybernetics" to see one of the formal theory. There is... quite some background in there.
- kilgnad 4y agoThis doesn't look formal at all. Usually formal theories need a logical mathematical language to fully characterize it. I scanned the wikipedia of cybernetics and it's just not it. Control theory or signals is the closest formal theory to cybernetics. The problem with this theory is that it only characterizes very specific systems that have ordinal values as inputs and outputs. What if the input is text? What if it's tuples of tree like tokens? The closest theory that encompasses the intuition of what we think of when we use the word "systems" is category theory in my experience. And this theory is in fact sort of too general to be very useful.
- di4na 4y agoyou consider scrolling through wikipedia a review of the formality of the field? I think you may need to consider how formal you are :) And no, category theory is not even approaching explaining this. At all.
- kilgnad 4y ago> you consider scrolling through wikipedia a review of the formality of the field? I think you may need to consider how formal you are :) Yeah I did. Not one math equation and two informal diagrams describing the same thing. Most formal theories outside of programming languages use western mathematical syntax for the foundational dialect and I don't see anything related to that here. Cybernetics similar in a sense to "system design" in that it's not formal imo. See category theory: https://en.wikipedia.org/wiki/Category_theory https://en.wikipedia.org/wiki/Category_theory for what I mean by "formal language". >And no, category theory is not even approaching explaining this. At all. It does. It unifies all of mathematics at the lowest level and operate at all levels of abstraction and even recursively. Category theory can describe category theory. The problem is we have no definition in this theory about what is a better design? It's just a description of designs.