Top tier coders devote their valuable time and knowledge to work for free on somebody else’s software even at late hours. It may sound crazy but those guys have their reasons.
Software developer communities thrive since the birth of computer science and benevolent knowledge sharing still lies deep in their hearts. Movements fluctuate around free and open source softwares since then but fellowship rather than ideology makes skillful coders stick around. And something more.
Freedom is granted, the choice is yours
Most of the softwares we use day-to-day are proprietary or closed-source softwares, which can be used, modified or shared only by those who have the rights for it. Open-source softwares (OSS) stand for an opposite world. Here you are allowed to “use, study, change, and distribute the software and its source code to anyone and for any purpose”. This freedom paves the way directly to open collaboration, which is one of the key elements in the magic potion that juices true innovation.
Software developers spend most of their active hours behind computer screens working on proprietary softwares in hierarchical organisations: a work full of challenges, boundaries, tight timelines, set paths and isolation. Not much space is left to experiment or to sparkle. But once you begin to master a craft, the voice of an own challenge begins to call and the urge strikes in to look for others who you can still learn from and who can truly value what you are capable of.
At that moment you start to google for your first open source project. Chances are high that you will be picky when it comes to committing your efforts and you definitely will want to harvest the benefits.
A place where only true contribution counts
In most cases earthbound reasons drive coders to an OSS community, such as solving their own coding problems, but once there, many decide to stay. Some strive for external benefits like gaining reputation or prestige, building a portfolio or even getting paid, others connect for internal incentives such as creative pleasure, intellectual stimulation of writing code, a sense of belonging to a community, building relationships or even making friends.
Giving back is a must here.
Once you have found your answers with the help of community members you are expected to share with them what you have figured out. Most developers contribute only to one project and only to a small portion of its source code, but many a little makes a mickle.
Choices pave your way into the community: you decide what you want to work on and how much you want to get involved. You can even pick your own role in the community: you can become a passive user, a reader, a bug reporter or a bug fixer, a peripheral developer, an active developer, a core member or even a project leader. (Not all types of roles exist in all communities and they may have different names but the basic rules are shared.)
“One distinct feature of an OSS project, as compared to the commercial software development, is that members of the OSS project members assume certain roles by themselves according to their personal interest in the project, rather than being assigned a task by someone else.” - say Ye and Kishida, two researchers, who provided a much cited framework for describing the structures of an OSS community as an “onion” model.
Although roles are chosen and not assigned by an external authority an approval from the community is required. You cannot assign yourself to be a project leader or a core member out of the blue: first you have to prove that you have the right knowledge, attitude and commitment that makes you fit for this role. The greater your contribution over time, the greater your influence on the community and the project will become.
The genuine difference compared to an everyday workplace context is that the mere quality and quantity of your contributions can push you to the valued position of your choice. You have to convince the whole community that you are the one to occupy a valued role.
And you will be checked on, whether you want it or not.
A study found that members seek out additional information about each other to explore the project space, inform future interactions, and understand the potential future value of a new person. They form impressions around other users' expertise based on history of activity across projects, and successful collaborations with key high status projects in the community. These impressions influence their receptivity to strangers' work contributions
Higher status can be achieved only by higher performance
“People should feel that their connection to a project, and influence over it, is directly proportional to their contributions.”
This principle is the foundation for a long term commintmet. It also ensures that people in lower status roles aspire to higher status roles and are willing to put more effort and work into contributions in order to prove high performance. So the wheel keeps turning and both people and the project can grow and renew over and over again. People in higher status roles tend to leave the project after some time as they want to move on to new challenges or burn out, so enough space gets cleared for the future aspirants.
Altruism and ideology play their part, but hard work goes mostly for direct rewards
Reasons for diving deep proliferate yet not everybody wants to become a core member. Passive users or lurkers make up 90% of OSS communities.
Studies point out that altruism and ideology are usually present as motivators, but explain little or no participation effort in open source. In contrast, strong correlations exist between the level of effort invested and own need, reputation, learning, fun, and payment.
Different backgrounds bring different motivations into play:
“Hobbyists and students are the most internally motivated. Salaried and contract programmers, in contrast, seek to sell related products and services. The results show a surprisingly high number of developers who are paid for their open source development efforts. These developers are most concerned with self-marketing and fulfilling personal software needs.” - a study claims.
Social learning and knowledge sharing, however, are unifying experiences among all groups. As part of an OSS community you have full access to the software source code, you can discuss all sorts of technical challenges with experts’ peers and they give you direct feedback to your own work. And that is priceless.
Just as the personal connectedness that builds up among community members during the highs and lows of working together for a common goal. Researchers agree that even if people join communities for “learning” or “doing”, they keep coming back for relationships.
Relationships keep valuable members for a long term
“Project Leaders and Core Members of an existing OSS community should not only focus on the evolution of the OSS system itself, but also strive to create an environment and culture that fosters the sense of belongingness to the community.”