Pull to refresh

О культуре разработки в группах программистов

Reading time 5 min
Views 32K
Development Management *
«Почему ж всё так плохо?» — каждый раз я задаюсь этим вопросом, когда приходится иметь дело с очередным кодом, продуктом или API, созданными для внутренних нужд в непрофильной организации.

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

И деньги ничего не решают: ужасный код и ужасные продукты пишут как маленькие бедные ВУЗы, у которых денег хватает только на рабский труд аспирантов, так и крупные и богатые компании, включая IT-компании, включая зарубежные: несколько раз сталкивался с кодом, который писали зарубежные подрядчики и каждый раз от него хотелось рыдать и биться головой об стену.

Организация может декларировать строгие стандарты, нанимать дорогостоящих разработчиков, вводить регламенты и методологии, надувать щеки на совещаниях и громогласно обличать «неправильное решение» в чужом продукте. И продолжать делать ужасные продукты с ужасным кодом, вопреки высокой квалификации своих разработчиков и очень правильными и нужными регламентами и стандартами.

Я занимался разработкой ПО в нескольких организациях и по разным причинам несколько раз перенабирал команду с нуля. В итоге пришел к выводу, что качество продукта зависит только от культуры разработки. Всё остальное, включая методологии и стандарты — это инструменты: они необходимы, но одних их не достаточно.

Культуру разработки можно сравнить с экосистемой: как сад или аквариум. Крепкая, здоровая культура обладает запасом прочности, чтобы оздоравливать обитателей экосистемы, избавляться от вредителей, прощать небольшие ошибки ухода, сглаживать стрессы и на выходе все-равно получать отличный результат. А больная культура сводит на нет все усилия, заражает и губит даже самые здоровые и крепкие саженцы.

Читать дальше →
Total votes 99: ↑91 and ↓8 +83
Comments 151

Задача о премировании: почувствуй себя менеджером

Reading time 1 min
Views 16K
Development Management *Project management *Product Management *Personnel Management *
  1. Менеджмент некой компании уделяет большое внимание мотивации сотрудников.
  2. Для поощрения высоких результатов было решено выдавать премии командам по результатам соблюдения сроков и бюджетов проектов.
  3. Решение было доведено до сотрудников.
  4. Одна из команд занималась доработками зрелого и стабильного проекта, успешно выполнила все условия, получила премию.
  5. Другой команде достался новый сложный проект, люди работали над ним с неподдельным энтузиазмом.
  6. К сожалению, и запланированные сроки, и бюджет оказались превышены в разы.
  7. Получившийся в результате продукт дал компании рекордную прибыль.

Если вы менеджер в этой компании, то станете ли премировать вторую команду и почему?

Total votes 33: ↑20 and ↓13 +7
Comments 320

Devops в кровавом энтерпрайзе

Reading time 14 min
Views 31K
КРОК corporate blog IT Infrastructure *Server Administration *Development Management *Puppet *

Вот к такому можно стремиться

У нас больше 350 своих разработчиков ПО и тестировщиков по всей стране, плюс мы часто взаимодействуем с инженерами и разработчиками заказчиков. Чтобы перейти на практическое использование devops, нам нужно было обеспечить не только внедрение методологии, но и приучить любимых российских заказчиков к некоторой базовой культуре. Просто пара диалогов для понимания:
— Почему у нас всё упало?
— Потому что вы откатали это на стенде, всё протестировали, а потом развернули на проде. Вот у вас настройка, которая не попала в инструкции, и жила только в голове старого админа.

Или:
— Почему не запускается по всей стране?
— Потому что у вас несколько десятков разных региональных инсталляций, каждая делалась руками, и на каждой разные конфиги. И ещё в паре случаев инженер ошибся.
— Поправите до завтра? Очень нужно! Только доступ удалённо мы вам не дадим.
— ..! Конечно, у нас есть команда высокооплачиваемых спецов, обожающих ездить на Дальний Восток. Нет проблем.
Читать дальше →
Total votes 44: ↑42 and ↓2 +40
Comments 28

Залог успеха в четырёх личностных качествах

Reading time 4 min
Views 28K
Programming *Personnel Management *IT career

Я конечно не профессиональный психолог, но у меня уже сложился некоторый опыт, который, как мне кажется, позволяет мне выделить некоторые человеческие качества, которые могут оказаться полезными для разработчика и его жизни.


image


Статья в целом больше для разрабов-новичков, и для опытных старожилов всё описанное будет наверное очевидно, но возможно кое-что полезное смогут перенять и они в том числе. Пишите отзывы и высказывайте свои точки зрения на эту тему, это тоже интересно будет почитать.


Исходя из моего мнения, это следующие четыре личностных качества: усердие, умение оптимизировать процессы, гибкость мышления и альтруизм.


Давайте поговорим немного о каждом из этих качеств.

Читать дальше →
Total votes 26: ↑21 and ↓5 +16
Comments 40

Сопротивления автоматизации тестирования

Reading time 9 min
Views 11K
IT systems testing *Programming *Perfect code *TDD *Project management *
Sandbox

Несмотря на то, что технологии модульного тестирования существуют уже 30 лет (в 1989 году Кент Бек написал статью “Simple Smalltalk Testing: With Patterns”), тем не менее не все программисты владеют этой технологией и не все компании сделали автоматическое тестирование частью своей корпоративной культуры. Даже несмотря на очевидные преимущества автоматического тестирования, все равно поведенческое сопротивление достаточно сильное. Кто пробовал внедрять автоматические тесты, тот знает, что всегда найдется какая-то причина, почему это не удалось сделать.


Из моего личного опыта внедрения методов надежного программирования в своей компании, в компаниях, которые я консультировал, общения на конференциях, а также из публично доступных источников, я сформулировал типичные возражения и сопротивления, которые препятствуют внедрению культуры автоматического тестирования.


Все возражения я сгруппировал в пирамиду надежного программирования, которая включает четыре уровня:

Читать дальше →
Total votes 20: ↑18 and ↓2 +16
Comments 115

Что каждому разработчику следует знать с самого начала

Reading time 6 min
Views 10K
Programming *IT career Health Learning languages
Translation
Как разработчик, вы услышите много сумасшедших, невероятных теорий о значении «строк кода». Не верьте ни одной. Строки кода — нелепая метрика. В очень редких случаях она что-то говорит, обычно — ничего. Использование строк кода для принятия решений похоже на оценку качества книги по количеству страниц.

Некоторые могут сказать, что чем меньше строк кода в приложении, тем легче его читать. Это только частично верно. Вот мои метрики для читаемого кода:

  • Код должен быть последовательным
  • Код должен быть информативным
  • Код должен быть хорошо документирован
  • Код должен использовать стабильные современные функции
  • Код не должен быть излишне сложным
  • Код не должен быть неэффективным (не пишите намеренно медленный код)

Если уменьшение количества строк кода противоречит любой из этих метрик, это становится проблемой. На практике оно почти всегда будет мешать и, следовательно, почти всегда является проблемой. Но вот в чём дело, если вы стремитесь соответствовать вышеуказанным критериям, то у вашего кода будет идеальное количество строк — и не нужно их подсчитывать.
Читать дальше →
Total votes 23: ↑20 and ↓3 +17
Comments 17

Первое оффлайн-событие сообщества Facebook Developer Circle: Moscow — Launch Event

Reading time 1 min
Views 571
Conferences Social networks and communities


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


Уже более чем в 100 городах мира запущена программа Developer Circle from Facebook. И, наконец, в России, в Москве эта программа тоже запускается. В этом сообществе разработчики смогут учиться друг у друга и делиться лучшими практиками, находить новые знакомства.


10 сентября официально открывается Developer Circle:Moscow from Facebook. Спикеры из офиса Facebook в Лондоне, а также наши, российские поделятся своими знаниями и передовым опытом. После технических докладов будет еда и напитки, где вы сможете в неформальной обстановке пообщаться.


Этот митап является первым из многих спикерских мероприятий, хакатонов и сессий наставников, которые будут регулярно проходить в Facebook Developer Circle:Moscow. Чтобы оставаться в курсе, присоединяйтесь к группе здесь.


Посетить мероприятие можно, пройдя регистрацию здесь.


Читать дальше →
Total votes 6: ↑5 and ↓1 +4
Comments 0

Культура безопасности при разработке вычислителей и программного обеспечения ответственного назначения

Reading time 12 min
Views 2.3K
СВД ВС corporate blog Development Management *Project management *
image

Распространение технологий промышленного интернета вещей, беспилотных транспортных средств и других кибер-физических систем, влияющих на безопасность людей, делает всё более актуальным соответствие программируемых электронных устройств требованиям международных стандартов в области функциональной безопасности, в частности IEC 61508 и ISO 26262.

У разработчиков аппаратных средств и программного обеспечения возникает множество практических вопросов, для ответа на которые требуется дать некое комплексное понимание, что позволит быстро уловить принципы решения множества частных вопросов и задач, казалось бы, маленьких, но являющихся важной частью мозаики.

Для глубокого понимания сути разработки и сертификации программно-аппаратных систем ответственного назначения, необходимо знать «трех китов» функциональной безопасности:

  • Культура безопасности (Safety Cultute)
  • Менеджмент функциональной безопасности (Functional Safety Management, FSM);
  • Доказательство безопасности (Safety Case).

В этой статье речь пойдет о о первом из них, Safety Culture. Точнее, о характерных признаках разных типов культуры безопасности и об особенностях культуры безопасности для компаний-разработчиков электрических, электронных и программных компонентов систем безопасности.
Читать дальше →
Total votes 6: ↑4 and ↓2 +2
Comments 9

[Личный опыт] Работа в Uber в Амстердаме: как устроена разработка, карьерный рост, подготовка к интервью

Reading time 9 min
Views 20K
getmatch corporate blog IT-emigration IT career

В нашем блоге мы уже не один раз рассказывали о переезде в Нидерланды (раз, два). Разработчики, которые оказались в Амстердаме в один голос говорят о том, что с точки зрения технологий и подходов к разработке среди местных ИТ-компаний в лучшую сторону выделяется Uber.

Сегодня нам удалось поговорить Алиной Коваленко, которая работает в компании в должности Software Engineer II. Алина поделится своим опытом переезда и даст несколько полезных советов.

Поехали!
Total votes 33: ↑26 and ↓7 +19
Comments 20

22 сентября, Онлайн-митап Product Engineering Meetup #2: Культура разработки

Reading time 3 min
Views 467
ManyChat corporate blog Development Management *Product Management *
22 сентября мы проводим онлайн-митап Product Engineering Meetup #2 «Культура разработки в продуктовых компаниях».

В прошлом году мы собирались, чтобы поговорить о том, кто такой продуктовый инженер, зачем разработчику развивать продуктовое мышление, как найти баланс между продуктом и разработкой (записи можно найти тут).

На предстоящей встрече мы сфокусируемся на культуре разработки в продуктовых компаниях.

Спикеры — инженеры и менеджеры продукта из Badoo, ManyChat, Додо Пицца и Работа.ру. Будем говорить о том, какие практики помогают командам создавать качественные продукты. Обсудим, какие процессы разработки помогают фокусироваться на донесении ценности пользователям и соблюдать сроки. Рассмотрим, как находить компромисс между бизнесом и разработкой и определять границы ответственности.

Надеемся, что встреча будет полезна всем участникам продуктовых команд — инженерам, менеджерам продукта, тех- и тимлидам.

Регистрация доступна по ссылке, а подробности программы читайте под катом.



Читать дальше →
Total votes 2: ↑2 and ↓0 +2
Comments 2

Python-культура в российских* IT-компаниях. Часть 2: Provectus

Reading time 7 min
Views 6K
IT-People corporate blog Python *Big Data *Conferences

В первой части статей о python-культуре мы писали про Тинькофф, а в этот раз решили рассказать о компании, в которую инженеры приходят, чтобы решать действительно сложные задачи, например, применение AI для распознавания болезней.

В Provectus, по умолчанию, считается, что задача будет выполнена в срок, и никто принципиально не стоит над душой и не спрашивает статус в течение дня или даже недели. Здесь общий код и инфраструктура. Каждый может создавать свои проекты на Github. И такая инициатива зачастую перерастает в реальные большие проекты, которые начинают монетизироваться. Что такое здоровая атмосфера в компании и правильная инженерная культура? Прочитайте, как их понимают и создают в Provectus - герое сегодняшней статьи.

Читать далее
Total votes 3: ↑2 and ↓1 +1
Comments 0

Тест от «Инженера-прагматика»: 12 вопросов об инженерной культуре

Reading time 4 min
Views 3.8K
Development Management *Personnel Management *IT career
Translation

Отличный сборник “лучших практик” в инженерной культуре современных айти компаний. Автор работал в Uber, Skyscanner и Skype в Амстердаме - прим.пер.

Эти 12 вопросов могут помочь понять, на что внутри похожа айтишная компания; и, что особенно важно, об этих вещах очень редко пишут в описаниях вакансий.

Читать далее
Total votes 7: ↑5 and ↓2 +3
Comments 0

Ваши процессы попахивают. Как это понять и что делать?

Reading time 13 min
Views 20K
Конференции Олега Бунина (Онтико) corporate blog Development Management *Project management *Product Management *Personnel Management *

В этой статье я не буду рассказывать про успешные внедрения, лучшие практики и общеполезные методики. Я вообще не буду давать какие-либо советы. Наоборот, попытаюсь на основании своего опыта рассказать, как бывает плохо, какие практики быстро становятся ужасными и чего нужно опасаться.

Читать далее
Total votes 59: ↑57 and ↓2 +55
Comments 17

Очень странные дела: когда процессы в команде и правда помогают

Reading time 13 min
Views 9.4K
Dodo Engineering corporate blog IT systems testing *Development Management *Project management *Agile *

Привет, меня зовут Паша, уже несколько лет я работаю QA-инженером. И всё чаще и чаще мне больно за индустрию QA, потому что не все понимают, чем QA-инженер отличается от тестировщика. Ведь настоящий QA-инженер может сделать продукт качественным разными путями, а не только проверяя конечную сборку на соответствие неким требованиям.

Этой статьёй я хочу ещё раз напомнить, как инструменты командного взаимодействия решают проблемы качественной разработки, что ответственность за качество лежит на всей команде и что agile-понятия «Прозрачность» и «Предсказуемость» часто теряются на фоне клепания тасок в Jira. Несмотря на свою очевидность, Agile-практики применяются не везде, где могли бы приносить пользу, либо применяются с ошибками и антипаттернами, противоречащими самой культуре Agile. Я расскажу, с какими сложностями столкнулся на разных этапах распространения этой культуры и что делал, чтобы их преодолеть.

Если вы готовы тащить такие практики или пробовали их, но не взлетело, тоже смело заходите под кат. Буду счастлив, если найдёте для себя что-то новое и интересное.

Читать далее
Total votes 32: ↑24 and ↓8 +16
Comments 7

Бизнес культура и копирайтинг. Эволюция заголовков iPhone

Reading time 11 min
Views 2.7K
Web design *Product Management *Copyright

Докинз выдвинул теорию об эволюции биологических видов, ключевым звеном в которой выступает «Эгоистичный ген». В рамках нее, была также представлена концепция мемов, для снятия возражений о культурной составляющей социума сапиенсов. Мем, как репликатор культурного кода, также часть эволюционного процесса.

Проецирование Меметики на «Бизнес культуру» снимает противоречия между заказчиками-компаниями и теми, кто обычно и как обычно ее выстраивает. Те четким определением маркеров этой культуры — Бизнес мемов, а не смузи в столовках, лонгбордах в модных офисах на Таганке и образовательных программ.

Читать далее
Total votes 4: ↑2 and ↓2 0
Comments 7

Две культуры программирования: почему обе из них важны?

Reading time 13 min
Views 51K
Яндекс corporate blog Abnormal programming *Programming *Industrial Programming *
Opinion
Уже несколько лет я замечаю, что программисты и программистские инструменты делятся на две разные культуры:



Изначально я человек первой культуры и очень долгое время считал вторую несерьёзной. Пару-тройку лет назад я окончательно понял, что ошибался. Многие «старички» ошибаются в ту же сторону, а в последние годы ещё большее число людей ошибаются в обратную. Знакомство с соседней культурой и понимание, почему дела в ней делаются так, как там принято, превратит вас в лучшего разработчика.
Читать дальше →
Total votes 190: ↑172 and ↓18 +154
Comments 106

The DevOps Defence

Reading time 4 min
Views 3.2K
System administration *DevOps *
Opinion

Из-за критики и споров вокруг DevOps я написал эту статью. Посмотрим на путаницу в отрасли, коснемся интересного вопроса "Когда DevOps перестанет существовать" и обсудим когда у вас нет DevOps.

Подход DevOps сформирован опытными инженерами рынка так же, как например Agile. По причине растущей сложности проектов и конкуренции, практическим путем стало ясно, что ценности команд Development и Operations нужно объединять. Это была одна из причин возникновения направления.

Определение DevOps ниже лучше выучить если вы читаете его впервые. Фраза "никто не может сформулировать что это" на интервью в компаниях мирового уровня не прокатит.

DevOps — это набор практик, которые помогают автоматизировать и интегрировать процессы между командой разработчиков и командой, ответственной за инфраструктуру, чтобы они могли быстрее и надежнее собирать, тестировать и выпускать релизы.

Читать далее
Total votes 13: ↑11 and ↓2 +9
Comments 12