Becoming a software developer: Collaboration, Exploration, and Creating Value
Tags: beginners, programming, productivity, career
Published: 2023-04-06 16:56:02

As developers, we all know the feeling of being stuck. It's that moment when you're faced with a problem, and no matter how hard you try, you just can't seem to make any progress. It's frustrating, it's demotivating, and it can leave you feeling like you'll never get any better.

But the truth is, every developer has been there at some point in their career. It's a natural part of the learning process, and it's something that we all have to work through. The good news is that there are ways to break through that barrier and continue to grow as a developer.

For many developers, the key to making progress is _collaboration_. It's about working with other developers, sharing knowledge and experience, learning from each other's successes and failures and can develop a deeper understanding of the tools and technologies that you work with every day. This is particularly true for developers who are just starting out in their careers. 

But what is next? Collaboration isn't the only key to making progress as a developer. It's also important to keep _exploring_. Try out new libraries and frameworks. Start your own little projects and keep it light and fun. This can be a great way to learn new things and to stay engaged and motivated.

When you want to keep growing to become a better  software developer. You will realise that your focus shifts to _producing scalable and sustainable artifacts of value_. Master the different technical skills like knowledge of programming languages, software architectures, testing methodologie, and more is important but the real thing is asking yourself _how do I bring value._ 

First of all, what is _value_? 
For me, **value is anything that makes you feel good or gives you the opportunity to do more good.** For instance, when you automate something, it gives you time back to do more good.

The most simplistic form of value is that we don't like pain. You create value when you take someone from pain to benefit. 
Another way is 'benefit' to 'benefit' . You can improve or create awareness of what the benefit does. For example, your phone might tell you "You spent 2 hours less on your phone compared to last week" or "Thanks, calendar, for reminding me it's my parents' anniversary".

Lastly, there's negative value. An example of negative value is when "The service you provide stopped working", "We made some UX improvements, but when you click on more details of a product, you instantly go to the checkout", or "Changing product names for the 10th time this month". Negative value is quite difficult to deal with. It's important to stay on top of the value that you deliver. Analyze the successes or failures, make no assumptions, and test as humanly and reasonably possible within the time frame that you have.

In the next article, I will dive deeper into the topic of producing scalable and sustainable artifacts of value. I will discuss some strategies for creating software that can grow and evolve over time, while also providing value to users and customers. So stay tuned, and get ready to take your software development skills to the next level!