What is a system?

I never feel 100% certain what people mean when they use the word “system”. It’s not that I don’t know what they are trying to communicate, but I’m often unsure what people specifically mean when they use that word in our industry.

Can someone unpack this for me?

Did you find this post useful? Show some love!

Perhaps a somewhat abstract definition, but which encompases all the uses that I'm aware of could be:

A finite set of agents that co-interact in an environment resulting in one or more emergent properties.

Where an agent is anything that is able to change the environment; it could be an organ, or a package in a programming project. There has to be finitely many agents as otherwise the system may not be resolvable (which is necessary due to the emergent properties bit).

And where the environment is some place containing the system. The environment could be a human body, or it could be a computer. It's important to note that the system itself must reside in the environment; for example, the heart of one body shouldn't pump the blood of another body.

And where emergent properties are any affect which could only arise from the interaction between multiple agents. The absence of emergent properties would not make a system. An example could be the organs making up a cognitive human being, or the frontend and backend making up the entire webapp.

Finally, it's worth noting that systems can be observed using different levels of abstractions - the agents of a system are often themselves systems. For example, the organs making up the body system are made of cells which are made of molecules which are made of atoms. A similar reasoning could be made using the webapp, but I scarcely need to state that.

I use the term to define a grouping of items that share a common purpose or goal.

That’s actually a pretty good one ☝️
I would probably add „at a higher abstraction level“ because a group of lines of code also serve a common purpose...

Hi, I am agree with you. Gilbert Strang give great insight about how we look 'system' in the context of mathematical abstraction:

Any linear system such that Ax+B=C can be looked as Matrix. By using Matrix, we can solve linear system using least square method. This how Matlab work.

Wonderful.
:D

I think the word "System" on its own will be hard to unpack without context.

The context in which the word System is used, is where and how the understanding will be made.

Solar System - Solar is the context

Operating System

Angular Module System

etc

but I’m often unsure what people specifically mean when they use that word in our industry.

I think what they specifically mean will be obvious in the preceding conversation that's been happening.

Hi, I am totally agree with you. In the context of engineering, or especially in computer engineering:

System can be looked as higher level of implementation complexity such that any abstract concept that follow architecture design can be applied.

I love used information theory as an example. At 1948, Claude Shannon surprise communication engineering world by offering 'system solution' to achieve minimum communication error. Yet, his great idea let many universities to open new study in 'information system' where many young people 'hopefully' capable to implement mathematical concept in order to improve capability of any standard information architectures in the industry or invent their own information innovations.

I think 'machine learning' can be looked as innovation of information, since it open new field called as 'feature engineering' which reduce need of expert in the practice of information system.

Ben Halpern DEV.TO FOUNDER

Hey there, we see you aren't signed in. (Yes you, the reader. This is a fake comment.)

Please consider creating an account on dev.to. It literally takes a few seconds and we'd appreciate the support so much. ❤️

Plus, no fake comments when you're signed in. 🙃

Really depends.
For exemple you could be speaking of the ECS paradigme in wich a System is a logic center processing data element (component).
For non computer guys (or ladies) the term system may be refering the OS, or the workflow. And I may miss a lot of possibility. In you position, I'll take a guess based on the cultural environment and the profession of the person you are speaking to.

I heard sale or business people using "Systems" as well but definitely not the systems IT people would think of like operating system, database system an etc. To them, what I can perceive is probably a set of rules interdepending with each other and eventually yielding the expected result. So, very hard to unpack the "system" here unless we were packed from the same source :). Interesting question though!

A system is literally a group of "things" that are "set up" together in a specific way.

In our industry that also implies that they were set up in order to achieve a purpose through their interactions.

It's a very broad term and can include anything really.

I try to keep it simple. I don't do any "unpacking" unless I'm installing a package in a project. I don't need to think about "environments" because a system is probably its own environment. I don't need to worry about resolving anything either. That's why I'm building the system -- to resolve the issue the system will address. Simple: (no googling involved)
Problem exists
Break down problem into smaller problems
map a solution
points on the "map" that is the solution are smaller solutions
Combine smaller solutions to maximize end result

problem + break down into smaller issues + solution map +combine and refine = SYSTEM

And this applies to any system of any kind.

I commonly use the word "system". What I mean by it is multiple applications working together to meet a business goal. We have many applications and services that contribute to the training process, for example.

I'd define it as a thing with one* or more interacting parts, considered together. But each one of those parts could be considered a system either by itself or consisting of smaller parts, or you could consider a different grouping. So it's a grouping for human understanding, not necessarily a perfect description of reality.

(* Would it make sense to call something with only one part a system? I would say yes, as long as it has some kind of behavior (such as input/output). But then this is just a human grouping, meant to allow the same kind of language we use to talk about multi-part systems to apply to single-part ones.)

Definitely the word can't stand on it's own and need a context. For example "system programming", which copying from wikipedia:-

System programming (or systems programming) is the activity of programming computer system software. The primary distinguishing characteristic of systems programming when compared to application programming is that application programming aims to produce software which provides services to the user directly (e.g. word processor), whereas systems programming aims to produce software and software platforms which provide services to other software, are performance constrained, or both (e.g. operating systems, computational science applications, game engines and AAA video games, industrial automation, and software as a service applications).

I'm with @kasperfred here, and interestingly have just been re-writing what /used/ to be our Software Development Life Cycle (SDLC) document to encompass the wider array of things we build (like products!), so it's now a System Development Life Cycle document. I'm wondering how many of my reviewers will notice?

Classic DEV Post from Apr 6

What is the job of a consultant?

Whether a solo consultant or part of a consultancy, what would you say a consul...

READ POST
Follow @ben to see more of their posts in your feed.
dev.to is now open source!
View Announcement Post View GitHub Repo
Ben Halpern
A Canadian living in New York, having a lot of fun cultivating this community! Creator and webmaster of dev.to.
Trending on dev.to
How does the web look if everyone owned their own data?
#discuss
Software Made Simple
#design #simple #productivity #devtips
What are your favorite terminal apps or scripts, to use for productivity?
#discuss #python #bash #productivity
What's your origin story?
#career #learn #webdev
What backend are you using?
#askdev #backend #discuss
What is your approach to learning a new Javascript framework?
#discuss #learning #vue #javascript
Looking For a Simpler Way To Develop WordPress Themes Locally.
#wordpress #discuss #help
We Might Face The Crisis of Creative People in Next Few Years as our young generation is stuck in Just Googling Things
#discuss #crisis #humanity