Behind the Code: Understanding the Purpose of Systems and the Role of Developers
Published: 2024-04-30 11:55:17

Nothing more modern to talk about than the development world, even if sometimes systems pass unsee for who is using them. Fortunately, it is so overvalued for those who are behind the scenes that you can find more and more articles and forums about it.
I'm going to talk about what we must keep in mind when creating value systems and what we must do to be a valued developer.

## System's purpose

It's unarguable that systems come to stay. In just a blink of an eye, we can see a lot of systems around us.
They are there when we need to pay a bill, buy a game, share some posts, talking with someone far away. But, have you ever tried defining what a system means or why we need them? I know that sounds a bit essential, but sometimes it looks like some developers don't know the purpose behind creating systems.

The merriam-webster dictionary defines systems as: 
*a regularly interacting or interdependent group of items forming a unified whole*.

Thinking about the literal definition, that sounds ok, but regarding purpose (business mindset), systems could also be defined as a tool (or a solution) to solve a main problem. Sometimes, this main problem can be composed of many small problems. As many more small problems the system solves it's getting better. So, in other words, systems can help people to get better lives, since solving problems is their purpose. Do you get how meaningful it is? 
Keep in mind the next time you are coding one: It is not about who does or what is used, but for **who can be helped**.

_Enjoying it? If so, don't forget to give a ❤️. Then, I'll continue creating more content like this_

## Developer’s roles

After putting the purpose of the system on the tablet, it's essential to understand the developer's roles. 

If you are new to this world, you are probably thinking about developers at coding. For sure, that makes sense. The most important skill of any developer is that, but is it enough? 

In that first moment, let’s go through the general good developer responsibilities. But soon, I also will create a post with the difference between Juniors, Middles, and Seniors' skills.

Developer’s responsibilities: 

- Coding/making the system grow.
- Ensuring quality and security in the system
- Finding ways to improve the application (thinking on performance, accessibility, architecture, and so on), proactively
- Warning the company about the system's needs and the development team's needs, proactively
- Scalability
- Smartly deliveries (coding never stops, so we must split our deliveries to give value)
- Creating smartly processes/flows (as git-flow)
- Creating ways to be more prevented than reactive, principally to avoid crashing
- Sharing knowledge 
- Taking care of the system's health

As you can see, coding is not the only developer's responsibility. I like to think that developers are owners of the system, so they must take care of it. In other words, it's expected that you will mind all the stuff that might impact the system. 

Never forget: If it’s to be, it’s up to me

You're probably wondering: How about programming languages? Frameworks, and so on? 

Yeah, again: these are the first things we think about development words, but actually, many hard skills that we need are volatile, so it's impossible (and, to be honest, unnecessary) to know all of them. But, these responsibilities and soft skills are needed and they would make you a valued professional because hard skills are more accessible to learning and teaching than soft skills and responsibilities. 

Now, you could work on a company using React, but tomorrow, you could receive an excellent opportunity to work with Vue and will need to study it - and that's ok because it is not about who does or what is used, but for **who can be helped**. Taking care of the system and having these responsibilities will be necessary whatever you go.

[See my other articles](https://frontend-pattern.vercel.app/articles)