# Убунту-программирование

(В оригинале - Ubuntu Coding for Your Friends)

Часто мы пишем код в изоляции, и код отражает нашу личную интерпретацию проблемы и наше видение решения. Мы можем при этом работать в команде, все еще оставаясь изолированной командой. Мы слишком часто забываем, что этот код, написанный в изоляции, будет запускаться, использоваться, меняться другими людьми. Очень легко не заметить социальную сторону написания ПО. Создание ПО – это смесь технической и социальной работы. Нам нужно чаще поднимать голову, чтобы понять, что мы не работаем в изоляции и на всех нас лежит часть ответственности за повышение вероятности успеха для всех, а не только для команды разработки.

Вы можете писать качественный код в изоляции, замкнувшись в себе. Это так называемая эгоцентрическая позиция. Этого же придерживается Дзен, и это все про вас в тот момент, когда вы пишете код. Я всегда стараюсь жить в настоящем моменте, потому что это помогает мне писать качественно, но при этом я живу в своем собственном моменте. А как же момент команды? Он тот же самый, что и мой, или нет?

На зулусском языке, философия Убунту формулируется как «Умунту нгумунту нгабанту», что можно приблизительно перевести как «Личность – это личность среди личностей». Я становлюсь лучше, потому что вы делаете меня лучше своими хорошими поступками. Обратная сторона – вы начинаете делать хуже свою работу, если я делаю хуже свою. Для разработчиков это можно сузить до «Разработчик – это разработчик среди других разработчиков». А опустившись до материального мира, можно сказать «Код – это код среди другого кода».

Качество моего кода влияет на качество вашего. Что, если мой код – плохой? Даже если вы напишете очень хороший код, то будут точки соприкосновения вашего кода с моим, что снизит качество вашего. Вы можете применять различные паттерны и техники для снижения ущерба, но ущерб все равно уже нанесен. Ведь я заставил вас делать больше, чем вам было нужно лишь потому, что я не подумал о вас когда проживал свой момент.

Я могу считать свой код аккуратным, но я все еще могу его улучшить при помощи Убунту-программирования. Как выглядит Убунту-код? Он выглядит просто как хороший код. Речь не идет о самом написанном коде. Речь идет о процессе его написания. Написание кода для ваших друзей, согласно философии Убунту, поможет команде разделить ваши ценности и принципы. Следующий, кто каким-либо образом коснется вашего кода, будет лучше и как человек, и как программист.

Дзен – это про отдельную личность. Убунту – это Дзен для группы людей. Мы очень-очень редко пишем код лишь для себя самих.

Автор оригинала - [Aslam Khan](http://programmer.97things.oreilly.com/wiki/index.php/Aslam_Khan)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://97-things-every-x-should-know.gitbook.io/97-things-every-programmer-should-know/ru/thing_85.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
