Supply Chain Council of European Union | Scceu.org
Technology

Every Software Developer Needs to be a Part of an Open Source Community

I’ve been involved in various open source software communities since I first discovered Linux back in 1998. Back then it was Red Hat Linux, v5.1 that I first experimented with as an intriguing alternative to Microsoft Windows 95. Using Red Hat Linux quickly turned into all kinds of involvement in projects like Ubuntu, GNOME, Abiword, and various libraries that other software made use of.

I started the GNOME Journal, a now defunct monthly newsletter and community dedicated to deeper articles covering the exciting world of the GNOME desktop project. And it was from relationships made in this community that I eventually landed my dream developer role working full time on Ubuntu at Canonical.

Using and participating in open source software projects literally changed my life and set my career in motion long before I had any formal engineering education or job. I would be a different person today without these amazing free and open community projects.

Now let me turn the focus to you: do you intentionally use any open source software in your daily life? Do you have an open source community that you regularly participate in? Do you have a group of people from around the world who are all passionate about building great software together working on solving a specific problem? Do you have a place where you can learn from a group of very experienced software developers? If not, why not – what’s stopping you? Maybe you’ve never known how to find such a community, or you’ve never really given it much thought until now. Maybe it all feels overwhelming and you don’t know where to begin? I can empathize with that – there are so many options out there and it certainly feels like choice overload. In this post, I’ll explore this and other ideas and provide you with some practical ideas of why you should get involved, how to start and where you might begin.

First, a little history…

What is open source software and why does it exist? Open source software, or OSS, has been around for a while now dating back to as early as the 1970s primarily in academic circles, mostly because personal computing wasn’t quite an accessible thing yet for the majority of people. Back then the term open source wasn’t even an official thing, it was simply called free software. For a while, commercial and proprietary software dominated the scene until the 1990s with the advent of important projects like the Linux kernel, the Apache web server, Netscape Navigator (after converting from closed source to open). These are specific pieces of software that groups of individuals and developers at various companies work on collaboratively in order to solve certain problems, all while releasing and maintaining the source code out in the open for anyone to see, contribute to, or even build something new on top of. Read this fascinating Wikipedia page for more on the history on OSS.

Many companies and individuals have increasingly realized that solving common computing problems out in the open is not only good for whoever originates a particular software project, but is also very good for many others, including a company’s financial bottom line. Not only that, but many developers are also self-motivated to solve certain problems in various domains while working with certain programming languages or tech stacks that they otherwise likely never get an opportunity to solve or work with. How many individuals can create an enterprise-grade web server like the Apache HTTP server or Nginx, or a computer operating system kernel like Linux? The answer is, almost nobody because these problem domains are expansive and complex by their very nature. As open projects they provide millions of people with incredible value every single day for an incredibly wide array of applications.

So why do you even need to join an open source community project (or two, or three)? I alluded to some of the reasons earlier in this post, but there are several reasons that I’ll list out starting with the most important reason:

  1. You need a fun and low-stress place to practice your software development craft outside of your day job and the pressures of schedules
  2. You need a place where you can easily try new things – working with different languages, tech stacks, developer workflows, tools, project structures, etc
  3. You need a community of people who can “challenge” you to be better at your craft and to learn from, but without the politics so common on workplace teams (this is not to say that open source projects & teams are free from politics, just different)
  4. It sounds simple and maybe even a bit silly, but it’s an important one – you need a software project where you actually have fun working on it with other project members

Let’s look at these four reasons more closely:

You need a low-stress place to practice your software development craft outside of your day job and the pressures of schedules

If you don’t ever take the time to practice software development outside of your day job, especially outside of the constant compromises being made to deliver on a commercial software project schedule, it’s going to be challenging to become better at software development especially in the specific ways you want to grow. Why? I don’t mean to say you haven’t/can’t/won’t improve on your development skills at work, but it’s a very different growth journey than one where you’re fully in control of what you do, when you do it and at what pace.

At work you’re generally at the whim of the organization’s product roadmap or client project delivery schedule, using a specific set of languages, tech stacks, tools and processes. Working on an open source project puts you fully in control of what you work on and what skills you practice. Don’t want to work with Java using object oriented structure? No problem – join a project that uses a functional language like Elixir, Erlang, Haskell, etc. Not really passionate about creating truck shipping logistics software, or maintaining legacy software from many years ago in your day job? Again, no problem – find a project that sounds exciting to you using a language, a tech stack or solving a problem that you find yourself pondering about without even trying (more on this in the next section).

And as an added bonus, participating in an open source project becomes an open portfolio for you to reference as your real experience for any future developer job interviews. Thanks to commands like git blame, your name is literally attached to your work.

Related posts

Blockchain Identity Management Market 2022-2028: Featuring Key Players Amazon Web Services Inc., Microsoft, IBM & Others – ResearchAndMarkets.com

scceu

Holiday gift ideas you can send instantly, no shipping required

scceu

Cognitive Search Service Market Investment Analysis

scceu