Подтвердить что ты не робот

Как я могу убедить мой отдел внедрить систему контроля версий?

Недавно я поступил в ИТ-отдел крупной страховой компании. Хотя название отдела - "IT", здесь написано много кода; Java, JSP, JavaScript, COBOL и даже некоторые С++ из того, что я слышал. Все программы, которые позволяют страховщикам, брокерам и остальным связанным с носками, служащим выпускать новые контракты и иметь дело с клиентами, выполняются на основе кода, созданного этим отделом. Мне сказали, что отдел довольно хорош по стандартам материнской компании и что мы даже получили внутреннюю награду или две. У нас 17 сотрудников в отделе, разделенных на более мелкие группы по 2 или 3. Как вы могли догадаться из части COBOL дальше, средний возраст старше 40 лет (в качестве ориентира мне 29 лет).

В настоящее время нет системы контроля версий (существует общая схема резервного копирования). При необходимости файлы передаются через общие папки. Обычно в каждой группе ответственен за копирование "окончательной" версии файлов на производственный сервер. Я нахожу это абсурдным и даже немного опасным.

Как я могу убедить руководство, что мы должны внедрить схему VCS в нашем отделе? Я никогда не использовал VCS самостоятельно, но в любом другом месте, где я работал, был один. Я думаю, что я ударил "мы до сих пор были в порядке, зачем беспокоить" стену с первого шага в сочетании с возрастом большинства моих сотрудников, которые будут чувствовать, что этот шаг является ненужным препятствием.

Я знаю основные преимущества VCS (прослеживаемость, гранулированное резервное копирование, отчетность и т.д.). Я собираюсь поддержать свой случай с реалистичными примерами и примерами реальной добавленной стоимости по сравнению с затратами на внедрение, а не только с "но-но... но мы должны иметь VCS, которые вы дураки!": -)

4b9b3361

Ответ 1

Вам не обязательно нужно их разрешение.

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

Затем наблюдайте и смотрите, что происходит.

Изменения

  • Основная идея заключается в том, что проще показать, чем сказать.
  • Отличная идея поддержать ваши идеи с помощью рабочей реализации/решения.
  • Конечно, если вам это удастся, и они хотят, чтобы система использовала отдел/компанию в целом, вы должны быть готовы поддержать переход, знать, как программное обеспечение должно быть установлено и использовано.
  • Идем дальше и используя что-то, принятое в отрасли, быстрее, чем обсуждение того, какая система должна использоваться.
  • Есть хорошие изменения, которые заставят вас заметить. Вы также можете получить уважение и поддержку ваших коллег.

Как и было предложено, такой же подход можно сделать и в других областях:

.. любой элемент, который заметно повысит качество вашей работы, но пока не нарушит существующие методологии и методы.

Ответ 2

Joel Spolsky имеет отличную статью: Получение вещей, когда вы только грунт

Цитата

Никто в вашей команде не хочет использовать управления источником? Создайте свой собственный CVS репозитория на вашем собственном жестком диске, если необходимо. Даже без сотрудничества, вы можете проверить свой код в независимо от всех остальных. Тогда, когда у них есть проблемы, которые источник может решить проблему (кто-то случайно тип rm * ~ вместо rm * ~), они придут к вам за помощью. В конце концов, люди поймут, что они могут иметь свои собственные проверки, тоже.

Ответ 3

Управление? Я сделаю смелые выражения и слова, которые вы должны использовать:

В вашем примере должны быть приведены примеры того, как VCS предотвратит потерю денег компании, если возникнут некоторые ошибки/ошибки или катастрофа. Это будет быстрее решить все проблемы, поэтому поддержка систенов не будет такой ленивой, и люди станут более продуктивными.

Следует также упомянуть, что реализация VCS имеет без затрат.

VCS также даст преимущества для резервного копирования всего существующего кода. Таким образом, весь код будет безопасным.

Ответ 4

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

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

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

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

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

  • Контроль версий позволяет очень легко увидеть, что изменилось в коде каждый раз. Это может показаться тривиальным, но когда вы начинаете изменять код, легко потерять трек через некоторое время. Но с VC это всегда "svn diff" (или эквивалент) всегда.

  • Контроль версий позволяет очень легко увидеть, кто каждый раз менял код. Так, например, когда что-то ломается, вы знаете, кто виноват. (Не случайно, что команда subversion, которая показывает, кто последний изменил каждую строку, называется "svn blame".)

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

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

Этот список не является исчерпывающим, конечно, но это основные преимущества, которые приходят на ум прямо сейчас. Очевидно, что, как уже отмечалось другими, легче показать все это своим коллегам, чем описать их им, и сначала настроить его для себя (но импортировать код каждого, ум), как отличная идея.

Ответ 5

Как Джоэл указывает на одну из своих статей, начните использовать свою собственную систему управления версиями одного человека и продайте свою выгоду при каждой возможности, которую вы получите. Покажите им преимущества отслеживания, подробные резервные копии и т.д. Из вашего единственного экземпляра. Люди начнут осознавать свои преимущества независимо от их возраста.

Ответ 6

Я согласен с ответом, который ссылается на статью Джоэля Парриллы.

  • Установите/используйте что-то с небольшими накладными расходами. Hg (Mercurial) прост в смешанном вкусе и хорош, потому что вы можете выручить и использовать что-то еще легким способом.
  • Вы должны делиться своими вещами, не обдумывая это. Когда кому-то нужен ваш код, экспортируйте его и используйте "стандартный" корпоративный метод (общая папка или что-то еще)
  • Когда вы получаете код, всегда импортируйте его в репозиторий, если вы считаете, что это новая фиксация репозиториев, которые у вас уже есть, попробуйте сделать это в этом.
  • Рано или поздно у вас будет код для нескольких проектов и, надеюсь, некоторые коммиты на некоторых репозиториях. Затем вы можете открыть те, у которых есть интерфейс web-сервера mercurials (hg serve -p XXXX).
  • Когда наступает время, когда кто-то не знает, почему что-то неожиданно не работает, как должно быть, и пытается выяснить, почему, поскольку он работал в последний понедельник... и вы знаете, что у вас есть этот код в repos повысится и спросит, можете ли вы оказать какую-либо помощь. Получите код фальсификации, передайте его в свои репозитории и выставите с помощью hg. Посмотрите на него в браузере.

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

Ответ 7

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

Кроме того, поскольку Subversion и некоторые другие являются бесплатными, укажите, нет ли реальной стоимости для покупки, jsut время для реализации.

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

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

Ответ 8

С чисто деловой точки зрения, и в зависимости от размера и характера вашей материнской компании ИТ-аудитор может рассмотреть ваш недостаток VCS-находки (то есть что-то, что требуется для исправления). Я считаю, что вы могли бы улучшить свой шаг до управления, сказав им, что любой CVS - отличный способ показать, что ваш отдел уважает свои ресурсы и работает структурированным и эффективным способом, что всегда любят видеть аудиторы.

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

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

Ответ 9

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

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

Ответ 10

Я бы также рекомендовал сначала начать с внедрения VCS (Version Control System) для себя. Я бы рекомендовал использовать один из распределенных VCS (Git, Mercurial, Bazaar), а не централизованный Subversion, поскольку было бы проще создавать центральный репозиторий (или репозитории) путем клонирования, чем перемещать репозиторий Subversion на центральное место. Распределенный SCM также может использоваться в меньшей группе для обмена идеями.

Несколько преимуществ (современных) систем управления версиями:

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

  • Вы можете переключаться между работой над какой-то новой функцией (некоторые экспериментальные работы) и работать над срочным исправлением в текущей развернутой версии (maintenace work) благодаря ветвям (и stash/shelve for незавершенная работа).

  • Если вы придерживаетесь хороших методов контроля версий (небольшие и часто фиксируются, изменения связаны с одной единственной вещью, написанием хорошего сообщения с сообщением об изменении и изменением), вам было бы гораздо легче найти ошибки, будь то bisecting, чтобы узнать, какое изменение внесено в ошибку, или с помощью системы контроля версий, чтобы узнать, кто несет ответственность за заданную область кода (аннотировать/обвинять).

Ответ 11

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

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

Ответ 12

Ищите другую работу.

Серьезно.

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

Кроме того, имейте в виду, что 30 не за горами. Это возраст, когда большинство людей  прекратите страдать от дураков.

Просто голова.

ИЗМЕНИТЬ

Было высказано предположение, что отказ от плохой работы для брокеров.

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