Моя организация начала медленно менять свою ориентацию на менее ориентированную на продукт бизнес-модель и более ориентированную на контракт бизнес-модель в течение последнего года или двух. В прошлом году меня перевели в новый контрактный бизнес, чтобы помочь тушить пожары и выполнять заказы. В то время как год в целом был прибыльным (и, следовательно, по крайней мере, одним показателем, был успешным, у нас было несколько проектов, которые действительно снизили наши показатели за год около июня.
Я разговаривал со своим менеджером перед рождественскими каникулами, и он упомянул это, хотя ему не нравится термин «вскрытие» (я понятия не имею, что не так с этим термином, какие-либо деловые люди или менеджеры там) знаете?), он действительно хотел провести совещание где-то в середине января, где вся контрактная группа проверит год и попытается выяснить, что пошло правильно, что пошло не так, и какие инициативы мы можем предпринять, чтобы попытаться улучшить прибыльность.
По разным причинам (я буду вдаваться в подробности, если это будет запрошено), я считаю, что одна вещь, от которой выиграет наша команда и, в действительности, организация в целом, - это некая форма организованного совместного использования кода. Одни и те же вещи снова и снова совершаются разными людьми, и в итоге они совершаются (и ломаются) по-разному. Я хотел бы, по крайней мере, создать репозиторий, в котором люди могут захватывать код, который выполняет определенную задачу, и включать (или реально копировать / вставлять) этот код в свои собственные проекты.
Что я должен предложить в качестве работоспособного репозитория с общим исходным кодом для команды, состоящей как минимум из 10-12 разработчиков на полную ставку, плюс где-то от 5-50 (очень) разработчиков с частичной занятостью, которые временно предоставлены контрактной группе для специализированной работы?
Для ответа потребовалась некоторая культурная информация для любого шанса на разумный ответ, поэтому я приведу ее здесь вместе с некоторыми своими мыслями по теме:
- Разработчики не будут вынуждены использовать этот репозиторий. Барьер для
вход должен быть как можно ниже, чтобы
поощрять участие, или это будет
быть проигнорированным. К сожалению, это означает
что-нибудь, что требует
дополнительный программный клиент будет
установить и запустить, скорее всего, не удастся.
Развертывание ClickOnce примерно как
близко, как мы можем получить, и это ужасно сомнительно.
- Мы не склонны к риску, магазин Microsoft. Возможно, я смогу продавать решения с открытым исходным кодом, но на них будут смотреть с подозрением. Все разработчики имеют VSS, корпоративный директор заявил, что VSTS не жизнеспособен в будущем. Если установка не слишком сложна, а лицензия либеральна, я все же могу попытаться подключить VSTS-сервер в лабораторию.
- Некоторые мои коллеги-разработчики заботятся о написании качественного, надежного программного обеспечения, некоторые нет. Я бы хотел защитить любой общий код, написанный теми, кто заботится о тех, кто этого не делает. Обычные практики управления конфигурациями (например, проверка кода во время его работы) полностью игнорируются, по крайней мере, пятой частью моих коллег по контрактной команде.
- Мы лучше пишем процессы, чем следуем им. Мне в значительной степени потребуется письменный процесс, чтобы продать его моему менеджеру. Я считаю, что он должен быть легким, гибким и обеспечиваться инструментами, чтобы иметь дистанционное отношение, потому что мой менеджер - единственный человек, который когда-либо его читает.
- Не принимайте передовой опыт. Я бы очень хотел включить такие вещи, как обязательные проверки кода, чтобы обеспечить использование инструментов статического анализа (FxCop, StyleCop) в общем коде. Однако это поднимает планку, поскольку в настоящее время такие практики не выполняются согласованным образом.
Я буду рад предоставить любую дополнительную запрашиваемую информацию. :)
РЕДАКТИРОВАТЬ: (отвечает на вопросы)
Возможно, заключение контракта не является правильным термином. Мы абсолютно владеем собственными активами кода. Существенная часть бизнес-модели на бумаге (хотя и не на практике) заключается в том, что мы владеем кодом / проектами, которые пишем, и можем перепродавать их другим клиентам. Наши проекты обычно принимают форму добавления некоторых специальных функций к одному из многих существующих программных продуктов компании.