Стоит ли прилагать усилия для создания внутренних инструментов с открытым исходным кодом?

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

Я работаю в небольшой компании. Нашим основным инструментом разработки является PowerBuilder, очень ограниченная среда разработки с сокращающимся сообществом. Мы создали несколько инструментов, которые используем внутри компании для решения определенных задач. Они не были должным образом спроектированы, должным образом протестированы и не соответствуют производственному качеству. OTOH, они действительно экономят нам время и могут помочь другим. Я уверен, что у других компаний есть такие же инструменты, и мне было интересно, насколько распространена практика делиться ими с другими. Как я вижу это -

Плюсы:

  • Хорошая карма
  • Больше внимания нашему сайту
  • Возможно получение исправлений и улучшений от других

Минусы:

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

Предоставляли ли вы или ваша компания такие инструменты или использовали ли такие инструменты, разработанные другими? Стоит ли прилагать усилия?

РЕДАКТИРОВАТЬ:

Для тех, кто задумывался, инструменты, которые я имел в виду, включают:

  • Инструмент, который упрощает использование SourceSafe, путем перечисления объектов, которые были извлечены для текущего пользователя или других, резервного копирования извлеченных объектов и восстановления PBG.
  • Инструмент, который распознает элементы управления PB во время выполнения, например Spy ++ (требует некоторой инфраструктуры в целевом приложении).
  • Оболочка PBNI для SQLite (внутрипроцессный доступ, без ODBC).
  • Клиент SQL, инструмент измерения текста и т. Д.

person eran    schedule 16.06.2009    source источник
comment
Если вы решили выпустить, дайте ссылку на свой сайт с этого вопроса! Мы тоже силовой магазин, и я определенно буду заинтересован. Фактически, я мог бы также выпустить один или два из наших внутренних инструментов.   -  person Colin Pickard    schedule 17.06.2009
comment
Очень тоже интересует код.   -  person Frerich Raabe    schedule 18.06.2009
comment
На этот вопрос дан красноречивый ответ, и ваш вопрос отличный. Я просто хотел сказать «хорошая работа»; именно разработчики, думающие так же, как и вы, делают ИТ-магазин (и сообщество пользователей) лучше. Конечно, есть исключения; но как кто-то может спорить с вашим искренним желанием не просто думать о себе, но приложить дополнительные усилия и сделать жизнь лучше для всех. По моему опыту, это всегда возвращается в позитивном ключе. Есть один клиент из списка Fortune 100, с которым я работал, это исключение; и это был всего лишь один отдел; все они собирались выбросить хлам за дверь.   -  person Rich Bianco    schedule 21.03.2011


Ответы (7)


«Открытый исходный код» изначально означал, что вы опубликовали инструмент и сделали исходный код доступным. Из-за того, что в некоторых проектах предполагалось, а в некоторых случаях посредством лицензий требовалось, чтобы изменения исходного кода были повторно представлены для совместного использования, «открытый исходный код» теперь довольно часто добавляет концепцию совместной разработки в микс. Я сделал (или пытался сделать) последнее; позвольте мне поделиться.

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

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

Рабочий процесс: я не проводил исчерпывающего поиска каким-либо образом, но мне еще предстоит увидеть платформу для совместной разработки, которая бы делала все, что мне было нужно. Частично суть совместной разработки с открытым исходным кодом заключается в том, что количество, участвующее в проверке кода, покроет любые потенциальные проблемы с качеством отправляемого кода; Я еще не видел бесплатного инструмента, интегрированного в платформу совместной разработки, который помог бы с этим четко справиться (например, подсчет проверок кода; автоматическое продвижение после x проверок). Мы должны были справиться с этим, взломав ручные методы в существующие инструменты. Возможно, в какой-то момент вам придется определить версию и создать сборку. Затем есть такие грубые задачи, как документация. (Вы когда-нибудь пытались выпустить новую версию чего-нибудь бесплатного без примечаний к выпуску? Фурор !! ухмылка)

Проблемы, связанные с PB: PowerBuilder - коммерческий инструмент, и хотя существуют дешевые версии, доступны, бесплатных версий нет. DRM, добавленный к PB11, вероятно, уменьшил или устранил пиратство, которое разработчики, вероятно, делали, чтобы взять копии своего офисного PB домой, и в то время как PB11 и более поздние версии имеют политику двойной лицензии, которая позволит разработчикам легально забрать копию домой (с разрешения и сотрудничества владельцев первоначальной лицензии, чтобы создать вторую лицензию), я не вижу, чтобы многие это делали. (Никакого научного исследования, это то, что я вижу.) Это сокращает потенциальное сотрудничество даже со стороны энтузиастов. Проблемы совместимости кода между версиями PowerBuilder, плюс тот факт, что очень немногие люди будут владеть каждой версией, снова ограничат ваш список потенциальных участников.

Не поймите меня неправильно. Мне бы хотелось видеть больше совместной разработки с открытым исходным кодом в сообществе PowerBuilder. Я хотел бы знать, как решить проблемы самостоятельно, и я пытаюсь понять, смогу ли я заставить новую модель работать. (ИМХО, моя первая попытка следовать популярной модели с треском провалилась.)

Есть ли причина расстраиваться из-за того, что вы загрузили ZIP-файл в Интернет и забыли о нем? Я не знаю. Есть ли больше гордости или смущения в ZIP-файле 4-летней давности по сравнению с проектом SourceForge, последним вкладом которого 3 с половиной года назад был пост «Где, черт возьми, все?» Есть причина, по которой Sybase CodeXchange перешел с платформы совместной разработки на платформа доступный источник: почти никто не использовал функции совместной разработки. Если у вас доступен исходный код с открытым исходным кодом, у вас будет много компаний.

Кстати, CodeXchange может быть ответом на вашу озабоченность по поводу видимости для сообщества PowerBuilder, хотя вы потеряете трафик веб-сайта. PowerBuilder Web Ring - еще один, значительно менее эффективный метод улучшения видимости, удерживающий трафик на вашем веб-сайте, но для этого требуется панель навигации на целевой странице вашего сайта. CodeXchange также может быть способом развеять ваши опасения по поводу качества кода и ограниченности цели того, чем вы должны поделиться. ухмылка

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

Удачи,

Терри.

person Terry    schedule 17.06.2009
comment
Терри, спасибо за подробный ответ и за годы помощи другим программистам на PB. Я хочу, чтобы к StackOverflow присоединилось больше экспертов из команды, чтобы у нас было больше активности, связанной с PB, на этом замечательном сайте (я знаком с группами новостей, но мне больше нравится эта платформа). - person eran; 17.06.2009
comment
Эран, если вы хотите увидеть первый удар Sybase на форуме, основанном на HTTP, подпишитесь на PB12 CTP (response.sybase.com/forms/WW09JUNPB12PUBLICCTP) и форум, используемый для поддержки этого протокола на основе HTTP. (Не думаю, что это очень впечатляет, но судите сами.) У SO есть несколько хороших функций, которые мне нравятся, но я не уверен, что смогу жить без потоковой передачи. Для вопросов с одним ответом, и у одного человека действительно есть этот ответ, это здорово. Я не уверен в обсуждении или совместном поиске решения. JMHO - person Terry; 18.06.2009

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

person Colin Pickard    schedule 17.06.2009

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

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

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

Я думаю, что плюсы намного перевешивают минусы в этом.

person Robert Greiner    schedule 16.06.2009

Короче: дерзайте. Я сомневаюсь, что терять можно нечего, но можно много выиграть.

Плюсы:

**Хорошая карма*

никогда не бывает плохой вещью.

** Больше внимания нашему сайту *

возможно, мошенничество, если ваш код действительно плохой :)

** Возможно получение исправлений и улучшений от других *

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

Минусы:

** Если не вкладывать больше средств в разработку, инструменты могут испортить нам впечатление *

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

** Публикация кода требует определенных усилий *

не требует особых усилий - создайте учетную запись в Sourceforge, создайте репозиторий SVN туда и импортируйте свой код. Затем создайте двоичный пакет (подойдет zip-файл) и выпустите это с помощью веб-сайта. У вас может уйти час, если вы остановитесь, чтобы прочитать всю документацию.

** Некоторые инструменты могут быть слишком специализированными для наших нужд *

Вы можете объединить все это в группу - например, PowerBuilder Tools, тогда люди, которые видят действительно специализированные инструменты, не будут тратить свое время на их приобретение, у них все равно будут «более полезные» инструменты.

** Все усилия могут остаться незамеченными, учитывая сокращающееся сообщество *

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

person gbjbaanb    schedule 16.06.2009

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

Между прочим, множество проектов с открытым исходным кодом можно объяснить ростом сообществ, которые раньше сокращались.

person jjclarkson    schedule 16.06.2009

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

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

Вы изучали Sybase CodeExchange? У них есть кое-что из PB с открытым исходным кодом, в том числе фреймворк PowerBuilder Foundation Class.

person Bernard Dy    schedule 16.06.2009

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

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

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

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

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

У вас уже есть где-то исходный код? Он не должен быть компилируемым, я просто был бы рад посмотреть, как вы это сделали в принципе, чтобы я мог (надеюсь) извлечь из него что-то, что решает мою конкретную проблему. Если вы еще не загрузили исходный код, возможно, вы можете указать адрес электронной почты, по которому я смогу связаться с вами в частном порядке? Я пробовала искать что-то в вашем профиле, но пока - безуспешно. :-)

person Frerich Raabe    schedule 18.06.2009