Как убедить компанию сменить систему контроля версий
Мое текущее место работы в настоящее время находится в переходном периоде, новое владение вступило во владение, вещи наконец становятся стандартизированными и применяются надлежащие руководящие принципы.
Но мы все еще используем VSS, на самом деле нет никаких причин для его использования, кроме того, что изначально было настроено. Мы не используем Visual Studio или какой-либо инструмент, который действительно требует этого.
Какой самый лучший аргумент я могу привести, чтобы убедить их в том, что в конечном итоге переход к чему-то вроде Subversion будет гораздо лучшим решением.
14 ответов
VSS полностью полагается на клиентов для управления базой данных. Если клиент прерывает соединение во время записи по сети в самое неподходящее время, ваш файл удаляется на сервере. Не только чаевые, но и вся история. Надеюсь, у вас есть хорошая резервная копия. Я прошел через это. Это плохие новости.
Использование VSS через VPN или другие удаленные соединения ужасно. Он использует SMB для передачи данных, и вам нужно извлечь файл и все его дельты только для того, чтобы получить подсказку. Насти.
Я видел, как VSS начинает работать на 1 ГБ данных. Ошибки базы данных и т. Д. MS (где-то в FAQ или КБ) говорит, что 2 ГБ - это действительно максимальный безопасный предел. Нет хороших инструментов управления (клиенты получают убежище), поэтому вы не получите никаких предупреждений об этом.
Все, что связано с серверным процессом для обеспечения некоторого уровня транзакций и контроля целостности, является превосходным решением.
Лучшим аргументом должна быть причина, по которой вы хотите, чтобы они переключились на подрывную деятельность.:)
Я абсолютно ничего не знаю о VSS, но на ум приходит фраза "если не сломано, то не чини". Вы должны показать своим менеджерам, что VSS неисправен и нуждается в ремонте. Еще лучше, если вы сможете показать руководству, как это сэкономит им деньги.
@ Adam Davis: Uhhh на самом деле Адам, VSS ужасная система контроля версий. У него долгая история порчи и потери данных. Это ужасно при слиянии, плохо обрабатывает несколько разработчиков и очень медленный. Также история бедна. Microsoft больше не поддерживает его, вы заметите, что они никогда не использовали его для своей собственной внутренней разработки, а теперь они даже не продают его в пользу более современного решения (VSTS). Короче говоря, если вам нужно выбрать между VSS и любым другим типом контроля источника, выберите альтернативу.
Просто переходя к функциям, вы получаете хороший контроль над источниками:
- возможность легко видеть логи того, кто что сделал, когда и в каком порядке, к каким файлам
- сохранить историю прошлых версий всего
- легко возвращаться и воспроизводить определенную версию ваших файлов из любой предыдущей версии, чтобы легче воспроизводить ошибки, обнаруженные в более старых версиях
- возможность извлекать удаленный код или удалять нежелательные изменения, не беспокоясь о потере данных в процессе
Почему Subversion над VSS?
- Бесплатно программное обеспечение
- Проще в управлении
- "регистрация" является атомной!
- Легко ветвиться и объединяться
- Продолжение разработки (т.е. VSS тупик)
- Лучшие инструменты для отслеживания изменений и просмотра журналов
- Набор инструментов и платформы не зависит, но также интегрируется со многими инструментами
Я сделал предложение своему менеджеру, и это было довольно легко продать. Я обнаружил, что его намного проще использовать, особенно для ветвления (наш проект занимал 5 часов, чтобы "поделиться и закрепить" в VSS, а затем каждая операция заняла дополнительное время для завершения!).
Ранее я писал о том, почему VSS не очень хорошая идея. Вы можете получить некоторую информацию из этого. Также эта статья и эта содержат дополнительную информацию.
VSS 2005 скрывал некоторые трещины в 6.0, но не особенно убедительно. Тот же самый мозг-мертвый фундамент остается.
Интернет полон хорошо написанных статей о недостатках VSS. Я бы собрал это как доказательство того, что отошел от VSS. Найдите ключевое требование, которое VSS не может поддерживать (удаленная работа, поддержка в других ОС, интеграция инструментов), и используйте его для решения вашей проблемы. Затем вам нужно найти систему контроля версий, которая бы соответствовала требованиям вашей организации - вы уверены, что Subversion - это та система? Установите демонстрацию выбранной вами системы и используйте ее, чтобы доказать свою ценность.
Я реализовал это изменение у предыдущего работодателя (сначала в CVS, а затем в SVN), и пока он был успешным, нам пришлось собрать много битов по краю и полагаться на множество (иногда ненадежных) проектов с открытым исходным кодом, чтобы получить все инструменты, которые нам нужны. Оглядываясь назад, я должен был попытаться оценить профессиональные инструменты, такие как Perforce, Vault или даже Team System. Оценив их, я мог бы правильно оценить, стоит ли CVS/SVN их "бесплатный" ценник.
Любой документ, подтверждающий переход, приведет к снижению затрат. В противном случае, разноцветные графики и диаграммы. Может быть, презентация в формате Power Point.
Способность справляться с ветвлением и разветвлением - это только начало.
Попробуйте на некоторое время использовать Subversion параллельно с VSS, вы, скорее всего, найдете много аргументов, чтобы убедить вашего босса. Если вы этого не сделаете, ваш босс прав, нет причин для переключения.
Основной ответ заключается в том, что вам нужно сделать так, чтобы переключение отвечало потребностям бизнеса. Например:
- более низкая стоимость разработки
- более короткий график (другой оттенок № 1)
- больше подходит для удовлетворения требований процесса (например, отслеживаемость требований к программному обеспечению, воспроизводимость сборки и т. д.).
Для обоснования этих вещей также требуется что-то количественное, а не просто "мы снизим затраты, потому что это правильный способ сделать это!".
Одна вещь, на которую следует обратить внимание, заключается в том, что разработчику слишком легко убедить себя в том, что было бы полезно внести изменения без предварительного прохождения основных бизнес-фильтров. Как только это произойдет, вы получите разработчиков, которые недовольны своими инструментами и разочарованы вдвойне, потому что думают, что руководство не будет слушать. Если вы не можете отметить одну из вышеперечисленных вещей, то у вас не будет шансов убедить руководство в чем-либо (если руководство не компетентно, но это уже другой вопрос).
Получить их в Google для "vss problem", "источник безопасного коррупции" или просто посмотрите на вики-страницу для этого. Это должно убедить их в том, что, вероятно, вы не ставите в долгосрочную перспективу ставку на такую жизненно важную часть своего бизнеса.
Насколько велика ваша команда? (то есть, я имею в виду, сколько участников, независимо от того, являетесь ли вы безумцами или нет) Как только вы начнете получать более полудюжины довольно активных пользователей, VSS начнет вызывать у вас головную боль.
Я серьезно сомневаюсь, что Microsoft использует его (на самом деле, они не используют настроенный вариант Subversion или CVS?), И вы должны спросить себя - если компания не ест свою собачью еду, зачем вы ее едите?
Даже если это не сломано, есть потенциальная выгода для перехода от VSS. Прежде всего, вам не нужно будет покупать новые лицензии VSS. Во-вторых, существует множество примеров недостатков в продукте VSS (некоторые также признаны MS). Кривая обучения для SVN, по крайней мере, такая же низкая, как и для VSS, и если разработчики довольны своей системой контроля версий, они с большей вероятностью будут использовать ее рано и часто. Это приведет к гораздо меньшему риску для вашей компании, и это хорошая выгода.
@ Джейсон: VSS сломан.
Я думаю, что наиболее эффективный способ мотивировать переход от VSS - указать, насколько важным является актив вашего исходного кода. Риск с честностью - это не мудрый выбор бизнеса.
Добавьте, что ваши программисты являются создателями этого актива, и что облегчение их продуктивности означает большую ценность в вашем активе исходного кода. Джоэл о программном обеспечении часто говорит о том, что инвестирование в его программистов - большая победа для его компании.
Все остальные ответы здесь описывают конкретные причины, на которые вы можете указать при изложении своего довода.
В дополнение к техническим моментам, приведенным в других ответах, могут быть нетехнические причины, по которым вы должны быть готовы ответить:
Вам следует выяснить, имеет ли ваша компания какую-либо политику против (или ошибочного страха) программного обеспечения с открытым исходным кодом. Если компания или ее юристы не понимают, какие лицензии "заражают" проприетарный код, а какие нет, а также то, что вы можете сделать с открытым исходным кодом, который не влияет на ваш проприетарный код, вы будете трудно заставить их переключиться с проприетарного на открытый инструмент. (И у вас может быть большая работа по образованию в ваших руках.)
Выступая за переход от проприетарного (например, VSS) к открытому исходному коду (например, subversion), вы также должны быть готовы защищать качество кода и отсутствие необходимости в гарантии или других договорных правах в отношении кода.