Please find below some guidelines that are meant as starting point for contributing to the Offcourse platform. 

## 1. K.I.S.S.

Ain't no particular sign I'm more compatible with
I just want your extra time and your...
Kiss
--[Prince](https://genius.com/Prince-and-the-revolution-kiss-lyrics)

The acronym K.I.S.S. arguably stands for [Keep It Simple Stupid](https://nl.wikipedia.org/wiki/KISS-principe), and is the leading principle for this entire project. Keeping things simple is not as easy as its sounds, and, to be quite honest, I am still figuring it out.

My constant failure to make things simple did lead me to stumble on some good principles along the way. They are taken from the various domains that I have been involved with: education, software development, graphic design, philosophy, and entrepreneurship. These guidelines are an attempt to make them explicit.

Putting these guidelines on paper, however, is also an attempt to disown myself. As it stands, the Offcourse community still considers me the single source of truth. This is undesirable, because I scale badly. This document is not a set of rules or laws, but an attempt to start a discussion and a collaboration about what binds us: an _ethos_.

## 2. Break It Down

Too many people consider programming as something magical. Coders are masters of a dark art that write incomprehensible spells.\* This could not be further from the truth. I believe that the true benefit of 'computational thinking' lies in the fact that it teaches people to break complex problems up into tiny, solvable ones. Looking backwards on my personal mistakes, I believe that every failed attempt to solve a problem - any problem! - was caused by one and the same thing. I didn't follow the process of breaking things down rigorously enough.

Most problems are complex by nature. This is especially true for those that involve a lot of people and their tastes, opinions, and interests: reaching world peace, solving global warming, being productive in a tiny office space. The fact that problems are complex, however, does not release us from the responsibility to find the most simple and elegant solution possible.

Software development use the so-called 'Single Responsibility Principle'. This principle states that every single unit of abstraction should do one thing, and one thing only. In his 'Atomic Design' methodology, Bratt Frost uses a similar approach by breaking every UI component down into small modular elements. For us, our 'Course' serves as a similar atomic unit for learning.

## 3. Assemble Big Dreams

A dream you dream alone is only a dream. A dream you dream together is reality.
-- [Yoko Ono](https://en.wikiquote.org/wiki/Yoko_Ono)

This idea of composability can and were applied to many other domains. Bratt Frost, for instance, uses the same approach in his 'atomic design', that greatly inspired our way of thinking about

## 4. Fail Fast, Fail Often

Who struggles can fail. Who doesn't struggle has already failed!
-- [Bertolt Brecht](http://www.azquotes.com/quote/546521)

One of the main problems of our education system is its focus on passing and success. We believe that every success is a failed opportunity to learn.
And - as the dozens of relicts in our Github, Gitlab, Google Drive, Slack, Notion, etc. accounts prove - we have learned a lot.

An important aspect of being part of a community, however, is allowing others to repeat mistakes that you already made. This doesn't mean that you cannot share your past experiences or warn them for the pitfalls along the way.

## 5. Stay Humble

I don't fabricate it, ay, most of y'all be fakin', ay
I stay modest 'bout it, ay, she elaborate it, ay

-- [Kendrick Lamar](https://genius.com/Kendrick-lamar-humble-lyrics)

"[Laziness, Impatience, and Hubris] are virtues of passion. They are not, however, virtues of community.
The virtues of community sound like their opposites: diligence, patience, and humility."
-- [Larry Wall](https://www.perl.com/pub/1998/08/show/onion.html/)

While we encourage and expect all the members of our community to grow their dreams and ambitions to astronomical proportions, we don't want their ego's to grow proportionally. On the contrary, we want our community as open to beginners and newcomers as possible. This demands that everyone that participates in Offcourse is willing to adopt a [beginners mindset](https://en.wikipedia.org/wiki/Shoshin).

Here we follow the _Ruby_ Community that adopted the kind and humble attitude of the language's creator into a slogan and corresponding acronym:

“Matz is Nice and so We Are Nice” (MINASWAN)

There is no ideal way to organize a community. In fact, a community is nothing but the sum of the people that it consists off. That being said, I truly believe that a meritocracy comes closest to the way to the values of our community.

Writing guidelines for a community project is hard. While these points are meant as starting points, they can be easily misunderstood as laws or absolute truths. Like anything that Offcourse does, this text is open, not only in theory but (hopefully) also in practice. Please fork it, edit it, change it, destroy it, etc. As long as we as a community can recognize ourselves in the most recent version.

Jan Hein Hoogstad

- Founder (Not Owner) of Offcourse
