It has become common knowledge that open source accelerates innovation and helps to improve quality. It’s also understood that developers can take what they need to complete their own unique projects, all while collaborating with others and sharing their knowledge. So why doesn’t everyone want to be part of it? Very often, to start contributing and/or especially trying to launch a new project can make you feel like you are swimming upstream and the water is very cold, deep and turbulent. I would like to show that it is also possible to tread in these waters easily and safely!
Often in our professional and personal lives, wе are so conditioned to work hard that we might not be able to see that things could also happen with flexibility and ease. Let me offer you a shift in perspective: let’s consider how we could still reach our goals with ease and “downstream effort”.
“A feeling of great absorption, engagement, fulfillment and skill — and during which temporal concerns (time, food, ego-self, etc.) are typically ignored.”
Inspired by Mihaly Csikszentmihalyi’s book “Flow”, I have tried to derive some common factors for starting work on open source projects, while being in the flow.
According to Csikszentmihalyi’s definition, flow is an “optimal state of intrinsic motivation,” “a state of concentration or complete absorption with the activity at hand and the situation” and is characterized by “a feeling of great absorption, engagement, fulfillment and skill — and during which temporal concerns (time, food, ego-self, etc.) are typically ignored.”
There are some prerequisites or principles, which are necessary in order to achieve that state of “flow.” And unsurprisingly, they are applicable for various areas in life, which has inspired me to observe them also in the open source context. Here are my observations and ideas about achieving an “optimal state” within your open source work:
Pick the right project
The right balance between skills and challenge could mean that it shouldn’t be too boring or too hard and discouraging. Dedicate enough time to research and choose a project and community that is relative for your purpose, interesting enough and provides opportunities for learning and growing. This is equally important when starting new projects. Take some time to consider what you really want to achieve with your open source project and whether you have the resources to not only launch the project but also to continue maintaining it in the direction that you want it to go. If you decide to start an open source project, you are not only the engineer or product manager. You are at least both roles, plus marketing, communications, legal, security and several other hats to wear.
Get immediate feedback
You have certainly recognized the importance of immediate feedback in all parts of life and in particular in your professional experience. It can be very frustrating and even discouraging to work without having any visibility of the outcome of your efforts. As a contributor and especially as maintainer of an open source project it is very important to both give and ask for feedback. This can be done both “in the open” as part of community meetings, discussions, GitHub issues, etc., as well as in smaller groups or one on one, where there is a personal or more sensitive case. Projects often have slack channels or email distribution list which allow users and contributors to get in touch with the maintainers’ team. A list of the maintainers and their contact details would often be placed in a Maintainers.md document found in OWNERS files.
Define your goal but don’t be attached to it!
Within open source, there is this paradox between setting a clear goal and still being flexible and open to change. This almost contradictory way of thinking is essential for the state of flow. Without clear direction, you might never be able to say if you are still on the right course. Thus, a vision and clear understanding of the goal is a must, but there are so many different ways to achieve it. To excel in open source, one needs to be able to adapt quickly based on iterative feedback and be willing to collaborate towards ever-changing targets. You might have a great idea that you want to introduce, but if you are too attached to your plan, you might miss out on other opportunities. Try to be open for all the various alternatives that would allow you to pursue your goals — it could be starting a new project from scratch or finding an existing project that you can contribute to. Also, be open to the ideas that come from the community around you.
Focus and organization
Working in an open source environment might also be challenging when there are contradictory demands from different stakeholders. If the workload and the communication increase rapidly or unexpectedly, a feeling of chaos could arise and cause confusion and frustration. Think about how to avoid this situation, or at least be prepared so that you can quickly come back to the optimal, fully engaged state. Good documentation such as a Contributing guide, Governance, Maintainers and other documents, will help new users and contributors get oriented quickly. Whenever possible automate repetitive tasks or frequent questions to save you time and to provide timely self-service responses.
Control without controlling
This is another paradox in the theory about the state of “flow,” which can be interpreted as allowing yourself to experiment and play. This is a state of freedom that you are allowing for yourself but also others within the community. Collaboration is key for open source, and it requires letting others be the experts in their domains and trusting them as well as trusting your own experience and intuition. This helps you overcome any anxiety or worry, because you also accept that you may fail and are letting go of ego. Innovation and breakthrough ideas can’t always succeed, so failures could sometimes be a good sign that the environment is encouraging people to experiment and try new things. Failures can be learning tools for others, so be sure to document them for future use!
“Failures could sometimes be a good sign that the environment is encouraging people to experiment and try new things.”
In a culture of openness, collaboration, sharing, innovation and fostering inclusivity such as the open source community, there is little place for ego and egocentricity. By choosing something larger than self, people get actively involved in their work and achieve intrinsic motivation, sense of belonging and fulfillment, which boosts their self-esteem and engagement. Regardless of whether you decide to apply those five steps in your work, hobbies, education, relationships or not at all, the key learning here is to always allow for time to pause and evaluate the current state. If it is too hard for no apparent reason, you might need to reexamine your goals, focus, decisions and be open to receive feedback and adapt until you are back in the state of “flow.”