Моделируем id Software

Давайте помоделируем хороший пример успешных организационно-разработческих практик легендарной id Software (Wolfenstein, Doom, Quake, …). Их продукты всегда отличались отличным качеством в сочетании с прорывными технологиями.

John Romero в этом году подробно рассказал, как его совсем крохотной команде удавалось успешно реализовывать поистине эпические проекты. Какие-то его лайфхаки уже хорошо известны в мире agile, какие-то совсем нет. Наверное, самое важное тут — использовать эти правила все вместе, в целостности.

1. Никаких прототипов. Просто делай игру/продукт. Полируй её по мере продвижения вперёд. При этом не следует зависеть от степени «глянца» проекта — всегда поддерживайте рабочий код в хорошем состоянии.
Пресловутая современная концепция continuous delivery and integration.

2. Невероятно важно, чтобы ваша система всегда была управляемой для вашей команды. Делайте пуленепробиваемый движок, подставляйте значения по умолчанию при любом сбое.
Имеется в виду, что во-первых, команда должна хорошо понимать, как движок работает, и во-вторых, он должен функционировать абсолютно надёжно и не вылетать при внутренних сбоях — как-то самовосстанавливаться.

3. Сохраняйте ваш код абсолютно простым. Регулярно пересматривайте свои функции и выясняйте, как их можно упростить ещё больше.
Регулярный рефакторинг + простота (keep it simple stupid) + функциональный подход (везде есть только функции).

4. Для создания отличных продуктов нужны великие инструменты. Не жалейте никогда времени на создание инструментария.

5. Мы сами и есть лучшая команда тестировщиков нашего кода. Мы никогда не должны позволять другим сталкиваться с нашими ошибками или видеть сбои в работающей системе. Не тратьте чужое время — тщательно всё проверяйте и тестируйте.

6. Как только вы находите ошибку, сразу же её исправьте. Не продолжайте другую работу. В противном случае ваш новый код будет построен на кодовой базе, полной багов и будет приводить ко всё большей неустойчивости продукта.

7. Используйте максимально продвинутую систему разработки, которая по своей крутости должна быть круче даже чем ваша светлая цель.
Особенно это было актуально в 1990-е, когда девелоперские фреймворки были весьма слабыми. Но и сегодня к сожалению современные IDE оставляют желать лучшего.

8. Пишите свой код только для текущего продукта, не для будущих. Будущие продукты сами о себе позаботятся в своё время, не волнуйтесь о них раньше времени. Не плодите слишком много библиотек.

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

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

11. Программирование — это форма творческого процесса, основанная на логике. Все программисты разные и программируют по-разному. Это важно.

Поделиться статьей ...Share on Facebook0Share on Google+0Tweet about this on TwitterShare on LinkedIn0Share on VKPrint this page

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *