В названии должно быть сказано все, тогда я могу закрепить еще 2 отметки на тесте Джоэла.
Я уже реализовал автоматизацию сборки с использованием файла makefile и скрипта Python, и я понимаю основы и параметры.
Но как я, новичок, который читает блоги, могу убедить мою когорту в присущей им эффективности?





Просите прощения вместо разрешения.
Заставьте его работать наедине (похоже, что у вас уже есть), а затем продемонстрируйте его преимущества.
Одна вещь, которая всегда привлекает людей, - это использование утилиты CruiseControl Tray - людям нравится, когда они могут видеть через панель задач, что сборка прошла успешно. (предполагается, что вы находитесь в среде Windows, что CruiseControl будет работать с вашими существующими системами и т. д.)
ПРИМЕЧАНИЕ. Если просьба о прощении вместо разрешения приведет к немедленному прекращению действия, возможно, вы не захотите делать вышеупомянутое. Вы также можете поискать работу в другом месте. Ваш пробег может отличаться.
Также есть гаджет боковой панели Vista (неофициальный клиент Cruise Control.NET), доступный по адресу codeclimber.net.nz/archive/2007/07/15/….
У меня это работает, потому что мы выходим на некоторые вертикальные рынки, которые требуют, чтобы мы запускали сборку с некоторыми другими параметрами командной строки. Вот как я обосновал это строительство. Мне нравится этот ответ, и мне тоже нравится круиз-контроль, он намного лучше, чем мой извиняющийся скрипт на Python.
Возьмите старый запасной компьютер и положите его в угол вашего офиса. Настройте его для сборки вашего проекта. Напишите небольшой скрипт, который:
Когда вы поймаете перерыв, сочувственно исправьте его.
Также подумайте о добавлении шага для запуска модульных тестов.
Если вы сможете не ругать людей за их ошибки, довольно скоро люди будут впечатлены тем, насколько надежной была эта сборка с тех пор, как вы прибыли. Стройте оттуда.
Хитрость заключается в том, чтобы тратить очень мало времени на то, чтобы приносить большую пользу своей команде, никого не раздражая.
Реализуйте строить огни ... мы сделали нечто подобное с лавовыми лампами, и это имело огромный успех. Для дополнительных бонусных отметок дайте каждому разработчику красный свет над их столом и пусть правильный свет загорается, когда сборка прерывается.
Это круто - однажды я видел нечто подобное, сделанное с лавовыми лампами (у которых был дополнительный бонус в том, что разработчик, сломавший сборку, имел возможность исправить это до того, как красная лавовая лампа нагрелась)
Правдивая история: однажды я видел огни полицейских машин, подобные тем, что вы видите на полицейском крейсере, которые использовались в качестве огней для сборки. Они крепились под потолком и выглядели как настоящие.
Мне нравится идея с фарами для патрульной машины ... в сочетании с сиреной под столом это было бы настоящим стимулом не ломать конструкцию!
Я бы настроил автоматическую сборку как ночной процесс, чтобы каждую ночь он собирал самую последнюю версию кода, строил ее и генерировал отчет. Теперь каждое утро вы будете первым делом узнавать, сломалась ли сборка, и если это так, вы можете уведомить команду. Если сломанные сборки представляют собой большую проблему для вашего проекта, люди, вероятно, сначала начнут приходить к вам, чтобы узнать, безопасно ли синхронизироваться с последним кодом, поскольку вы будете тем человеком, который в любой конкретный день будет знать, нужно ли или не сборка сломана (кстати, автоматизированный набор модульных тестов тоже очень помогает в этом). Если повезет, люди начнут понимать, что ваша ночная сборка - полезная вещь, и вы сможете просто настроить свой ежедневный отчет о сборке в виде рассылаемого электронного письма.
Кому бы вы отправили электронное письмо? Все, ваш босс или чувак, которого вы определили на сервере сборки, сломали сборку?
Настроить автостроитель. После того, как вы автоматически создадите и запустите тесты, не будет иметь значения, если вы убедите других людей сэкономить свое время :)
Если вы используете git для контроля версий, вот автостроитель, который автоматически находит точную проверку, которая начала приводить к сбою тестов: http://github.com/apenwarr/gitbuilder/
У Джеймса Шора есть две отличные ссылки:
Для оборудования http://jamesshore.com/Blog/Continuous-Integration-on-a-Dollar-a-Day.html
Для "Humanware" http://jamesshore.com/Change-Diary/
(История того, как он это сделал. Читать долго, но изменить организацию сложнее)
Когда сборка требуется команде на регулярной основе, это довольно просто. Вы назначаете члена команды (периодически меняющегося) для сборки. Если процесс сборки достаточно сложен, команда сама найдет способ хотя бы частично автоматизировать сборку. В худшем случае придется автоматизировать сборку самостоятельно, но против автоматизации никто не будет.
Я бы взял запасной ящик, установил сервер непрерывной интеграции (Hudson или Круиз-контроль в мире Java) и настроил задание, которое строит ваше приложение каждый раз, когда кто-то проверяет какой-либо код.
Вы можете либо попытаться убедить своего коллегу, либо просто подождать, пока кто-нибудь сломает сборку. В последнем случае просто отправьте следующее электронное письмо:
to: all developers
Guys,
I've just noticed that I can build our software using the
latest version because of the following error:
...
I you want to be notified by our continuous
build system (attached is the mail I received when
it failed to build our application), just let me know.
Обычно до того, как все попадают в список, не требуется много времени.
Демонстрация - лучший и действительно единственный способ изменить мнение любого, кто не хочет делать что-то по-другому.
Здесь мы показали, насколько полезны автоматизированные сборки, поскольку у QA есть возможность получить зеленую сборку прямо с сервера сборки, установить ее и протестировать без каких-либо указаний со стороны разработчиков. Они могут продолжать работать, они знают, что он, по крайней мере, проходит свои модульные тесты. Это помогло интегрировать тестирование и разработку, уменьшив время появления ошибок в системе.
Для записи мы используем VSS 6.0 и Delphi 7. Я изменил файл группы пакетов Borland, чтобы создать свой make-файл, который я запускаю каждую ночь (с помощью pycron), запустив скрипт python, который обновляет мой источник из VSS и копирует мои файлы в share, мы все обновляем наши двоичные файлы из. Все окна, без точечной сети ...