Handbook
Introduction
This is the OSDC handbook.
Goals
- Helping companies handle Open Source code better.
- Helping people who would like to contribute to open source but don’t know how to get started.
Proposed Solutions
- Training - teach employees and future employees (students) about Free Software, Open Source, how to contribute etc.
- Maintenance - contract to maintain certain open source libraries.
- Measurement - it is not really a “solution”, but it is needed to be able to understand the level of security, legal, technical, and other risks.
What does OSDC stand for?
The first time I encountered the OSDC acronym was when I heard about the “Open Source Developers’ Conference” in Australia. I used the name in 2006 to organize an even in Israel. More recently I saw it being used as “Open Source Developers’ Club”. In December 2022 I started to use it as “Open Source Development Course(s)” escaping the need for the apostrophe. Then in June 2023 I realized the C can also stand for Company or Corporation. Somehow all of these might fit us.
- Open Source Development Course(s)
- Open Source Development Community
- Open Source Development Club
- Open Source Development Conference
- Open Source Development Company
-
Open Source Development Corporation
- The D might also stand for Distributed maybe as in Open Source Distributed Community, but it does not sound that good.
Products and Services
Under Solutions I described a few potential revenue sources, but in reality I am not sure how well these source can generate revenue. I do some training, but the world of training changed a lot. I don’t know if companies will be interested in the maintenance of open source project and if they are ready to pay for that or if something else need to be sold to them.
For now I try to describe the way I would like to work in this company.
Goals and Values
- Being remote is not the goal. Allowing people from remote areas to work is a goal.
-
Reducing time, money, and environment wasted on commuting is a goal.
- Everything should be documented an transparent. This document is part of that effort.
Culture
Agile and DevOps culture as expressed in the Agile Manifesto and by core people in the DevOps movement, such as Jez Humble, Gene Kim, David Farley, Nicole Forsgren.
TODO add links to books and articles about Agile and DevOps.
- The Phoenix Project by George Spafford, Kevin Behr, Gene Kim
- The DevOps Handbook by Gene Kim, Patrick Debois, John Willis, Jez Humble, John Allspaw
- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation by Jez Humble and David Farley
Work on what you like
At any point in time there are many open issues to work on and there might be many other tasks that are not (yet) listed as issues. We can have meetings to set priorities, but trying to stick to the exact order of priorities might be difficult and not enjoyable.
We trust people that they have (or that they can develop) an understanding of what is more important and what is less important. Beyond that we want to allow people to work on the issue or task they find most interesting, valuable, or even fun. We believe that if people have the freedom to act they will work towards the well being of our projects and our organization.
We recognize that sometime people are just not in the mood to do the “most important task”. In those situations they will start wasting time on all kinds of non-productive things, for example browsing the social networks. It is better to let them work on less important or less urgent task that still move the projects forward than to make them suffer and waste time.
Background
I hear plenty of people complaining about their workplace that they don’t understand software development and operations. I saw similar issues at many of my clients. Well, maybe “don’t understand” is not the correct way to describe this. Let’s find a better description that will help with our understandings. What we see is that instead of going Agile, they implement Scrum top-down in the organization. Instead of changing the organization to embrace the ideas behind DevOps, they rename the ops team to DevOps or even create a separate team of “DevOps engineers”.
To me this indicates that the majority of companies (or the people in these companies) are not really capable of change. So you need to wait till people move and new people arrive who have better ideas. Even that probably won’t help in most places as there is already an organizational culture that the new people won’t be able to change.
So if you want to work in such an organization, either find one or create one yourself.
Documentation and transparency
In many organizations during in-person person meetings people discuss things, reject ideas and then make decisions. In many cases even the decisions remain only in the memory of the participants. The process of decision making, the reasons why that particular decision was made and why other things were rejected is almost never documented. This means that if someone is not present that person will not know the reasons. In particular any person who joins the organization later will not be able to understand why certain things work in a particular way. Was that a conscious decision or did that just happen.
We want to make sure that all our decisions and how we reached them are documented. This is realtively easy if everything is in writing. Less so if we also have other communication channels. Especially it is difficult to make sure everything is recorded for in-person meetings.
Nevertheless we would like to encourage people to record all the discussions.
For online meetings we can have a video recording, but we should also take notes in writing. That will be easier to search.
For in-person meetings we should take notes.
Communication
There is a lot of value in face-to-face and in-person communication and we would like to encourage that too, but we know that in reality in many cases the time needed for communication is not symmetrical. The time it takes to create the content is not the same as the time it takes to consume it.
- Creating a movie takes months of many people, but takes only 2 hours to consume.
- Creating a youtube video by a single person will also take a lot more time than the length of the video.
- Writing a damning Tweet takes second. Refuting it can take hours, days or even more.
Besides that, people live in different time-zones and even those who live in the same time-zone will have different habbits or different constrains when they can work.
So asynchronous communication is key to enable good communication.
Marketing and Promotion
Our ideas, products, and service might be great, but if they don’t reach the people who need them then they don’t provide the value they can. So we need to promote them. Let’s start by describing some of the channels for promotion:
TODO: We need a lot more ideas and explanation here.
Global in English
- LinkedIn - posting on personal profiles, posting on the LinkedIn Pages, Linkedin Groups
- Facebook -?
Local in Hebrew
- Give presentations on Meetups
- Local Open source groups.