On 06.05.2013 12:01, sharpcoder wrote:
> Хм... а откуда статистика о "вподавляющем большинстве случаев"?
Почему статистика, простые размышления и опыт работы.
Posted via RSDN NNTP Server 2.1 beta
Re: Как уволить человека и не допустить утечки исходников
VM>Теперь вопрос: насколько оправданы, на Ваш взгляд, опасения (может, у кого личный опыт есть), и что делать, чтобы такого избежать в дальнейшем (например, разбить кодовую базу на тысячу маленьких проектиков, и чтобы новобранцы не могли видеть больше, чем положено)?
Если он сумеет это провернуть, и конкуренты действительно заплатят деньги за ваши исходники, и попытаются использовать в своих целях, то можете только радоваться: одни из ваших конкурентов круглые идиоты, и врядли представляют опасность.
Подогнать чужие исходники для использования в своем проекте даже одной направленности — это сизифов труд. Исключение — редкие и уникальные алгоритмы. Либо если кто-то попытается использовать проект "как есть", в готовом виде, но это, во-первых, мало отличается от обычного копирования бинарей, во-вторых, подходит только для десктопных проектов. Но вы не указали никаких данных о проекте, потому по-умолчанию подразумеваем энтерпрайз, где код конкурентов может быть использован исключительно "чисто поржать".
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, sharpcoder, Вы писали:
S>Увели не просто "программистов, которых выше ценят", а вместе с исходниками, без которых тех же программистов уводить никто не собирался.
Если берётесь цитировать, то потрудитесь делать это правильно.
S>По сути это кража интеллектуальной собственности (исходников), которая в нашей стране слабо охраняется — поэтому "к сожалению" (я против воровства).
По сути, это промах руководства, которое по собственной жадности и/или недальновидности допустило пекреход коллектива разработчиков. Исходники без программистов никому не нужны.
Re: Как уволить человека и не допустить утечки исходников
Здравствуйте, vova.mirgorodskiy, Вы писали:
VM>Итак:
VM> VM>абсолютное б-во фирм, где работают респонденты, пока что никак не борются с угоном исходников (== основного продукта) инсайдерами;
Да, потому что смысла в этом ноль.
VM>абсолютное б-во проектов, где заняты респонденты, по-прежнему построены на незаменимых авторах, без которых исходный код просто бесполезен (основная мысль — "проще написать с нуля, чем разбираться", что довольно симптоматично). Сложно сказать, в чем тут причина — то ли в самом коде, написанном так, что никакой обфускации не нужно, то ли в неумении/нехотении работать с чужими исходниками (между прочим, довольно важный навык для проф. программиста); VM>
На сегодняшний день "чистых" проектов, без использования вагонов библиотек, подходов, серверов приложений и еще кучи всего, почти нет, кроме совсем мелких или сильно специфических. При нормальной работе, если разработчик уходит, то его переемнику передаются знания. О куче нюансов, которые в основном даже и не в коде, об архитектуре, подходах, отношениях в команде и так далее. Уволить всю команду и нанять новую с нуля — это все равно, что закопать проект, по крайней мере на некоторое время.
Представьте эксперимент. К вам приходит вот такой крендель от конкурентов. Сам толком не шарит, зато затырил исходники их проекта, и предлагает их вам. В архитектуре он не шарит, ибо дуб. Об использованных технологиях знает вскользь(и не факт, что эти сведения верны). Про баги и костыли тоже ничего не может сказать. Но просит за них денег. Как, купите?
Конечно, зависит от типа приложений и технологий. В рамках одной только джавы могут быть использованы совершенно разные и непересекающиеся технологии. С шарпом попроще — там есть генеральная линия партии, но тоже не сахар. В тех же плюсах — удачи интегрирования модуля на QT с boost, или ACE какой-нибудь. И это мы пока-что кода даже не касались.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, vshemm, Вы писали:
V>Самый надежный способ защитить интеллектуальную собственность — патентование, при этом суть защищаемого автоматически становится доступна публично. Если материала на патент не набирается, то и исходники не представляют особой ценности. При копировании продукта целиком дело должно легко выигрываться в суде.
Поубивал бы за такие "советы"...
Sapienti sat!
Re[5]: Как уволить человека и не допустить утечки исходников
Здравствуйте, vova.mirgorodskiy, Вы писали:
VM>Теперь вопрос: насколько оправданы, на Ваш взгляд, опасения (может, у кого личный опыт есть), и что делать, чтобы такого избежать в дальнейшем (например, разбить кодовую базу на тысячу маленьких проектиков, и чтобы новобранцы не могли видеть больше, чем положено)?
Вам совет — избавляйтесь вы от этих совдеповских привычек "запретить и не пущать". Поверьте мне, никому ваш код нафиг не упёрся. Я успел поконтрактить во многих грандах, как Российских, так и Канадских и общемировых, и нигде я не видел, чтобы использовали какие-либо технические средства для защиты (ну что-то навороченнее разрешений на доступ в TFS).
никому эти мыльные оперы что представляет из себя основная часть кода не нужны, помню раньше интерес представляли всякие узкие программки и модули например определитель грязного номера автомобиля
Re[6]: Как уволить человека и не допустить утечки исходников
On 10.05.2013 21:47, koandrew wrote:
> Зато с удовольствием вносятся новые, свеженькие, так сказать, "с пылу — > с жару" > Плавали — знаем.
Зависит от ручек, что переписывают. Я бы не обобщал твой негативный опыт
на всех.
Posted via RSDN NNTP Server 2.1 beta
Re[7]: Как уволить человека и не допустить утечки исходников
Здравствуйте, Vzhyk, Вы писали:
V>Зависит от ручек, что переписывают. Я бы не обобщал твой негативный опыт V>на всех.
Без разницы. Более профессиональные программисты делают меньше ошибок, но всё равно делают. Не видел ещё ни одного проекта, который сходу бы без обработки напильником завёлся в продакшене, даже если это восьмая версия (в смысле переписанная восемь раз) системы.
Здравствуйте, koandrew, Вы писали:
V>>Зависит от ручек, что переписывают. Я бы не обобщал твой негативный опыт V>>на всех.
K>Без разницы. Более профессиональные программисты делают меньше ошибок, но всё равно делают. Не видел ещё ни одного проекта, который сходу бы без обработки напильником завёлся в продакшене, даже если это восьмая версия (в смысле переписанная восемь раз) системы.
Космические проекты. Но и то — не все
Re[8]: Как уволить человека и не допустить утечки исходников
On 13.05.2013 16:00, koandrew wrote:
> Без разницы. Более профессиональные программисты делают меньше ошибок, > но всё равно делают.
И какое это имеет отношение к переписанному проекту или написанному 16
лет назад?
И там и там будут ошибки добавляться, только в переписанном избавятся от
тяжелого наследства и соответсвенно ошибок будет меньше и новая
функциональность будет добавляться быстрее.
Posted via RSDN NNTP Server 2.1 beta
Re: Как уволить человека и не допустить утечки исходников
Здравствуйте, vova.mirgorodskiy, Вы писали:
VM>Всем привет!
VM>Такая ситуация: наняли сотрудника по принципу "не может — научим, не хочет — заставим". Теперь сильно жалеем: парень за полгода так ничему и не научился. Делает умные глаза, говорит умные слова, читал умные книжки, а как доходит до дела — полная проф. импотенция.
VM>ДА! Я знаю, что счас толпы товарищей начнут писать "значит плохо учили". Ребята, вам легко судить, не видя человека, но искренне прошу поверить мне на слово, что я знаю, о чем говорю. Более безнадежного падавана я еще не видел в жизни. Да и речь сейчас не об этом. Беспокоит сабж: дали ему возможность изучать всю кодовую базу (шоб я был такой умный до, как вы после!), так что теоретически сделать для себя копию исходников он мог.
VM>Ну а после увольнения ничто не помешает, скажем, слить ее конкурентам. По чесноку, затрудняюсь сказать, чем бы она могла им помочь, ну да вдруг?
VM>Или можно ходить с ней по собеседованиям "вот, смотрите, это все Я написал". Есть, ессно, опасность, что попросят объяснить те или иные фрагменты кода, но на это есть отмазка "я это писал давно, так сходу не припомню, надо разбираться", короче, развести интервьюера на бла-бла-бла.
VM>Теперь вопрос: насколько оправданы, на Ваш взгляд, опасения (может, у кого личный опыт есть), и что делать, чтобы такого избежать в дальнейшем (например, разбить кодовую базу на тысячу маленьких проектиков, и чтобы новобранцы не могли видеть больше, чем положено)?
Разделяйте на модули.по другому без вариантов а собирайте в кучу сами ). И то конечно это припарка. С++ приложение?
"значит плохо учили" — нет не плохо учили плохо набирали. Вы его на собеседовании сферических утят в вакууме считать заставили? или тестовое задание дали? Без обид это тема отдельного холивара. В первом случае — получили человеа умеющего считать сферических утят. Оно конешно нужно и ум закаляет но в работе бесполезно. Во втором случае посчупаете как программиста. Может он и не будет знать все законы де моргана на память — зато быстро напишет что скажут. Решает интерьвьюер. Если вообще не проходил собеседование то собственно есть вариант профнепригодности абсолютной ни утят посчитать ни код написать.
А вам завидно что из за вашего кода который вы написали человек устроиться на хорошую работу? Уйдёт к конкурентам? Так вы ему и вакансию от них покажите пусть сами с ним няньчаться вам же лучше.
Опасения оправданы. особенно в части спец. кода . к примеру С++ приложение работающее с устройствами. Памятью и прочее. Что ему мешает взять нанять дизайнера заштопать армодилой или аспротектом и выложить на софтопомойки?
Re[2]: Как уволить человека и не допустить утечки исходников
Здравствуйте, antirest, Вы писали:
VM>>ситуация: наняли сотрудника по принципу "не может — научим, не хочет — заставим"... за полгода так ничему и не научился VM>>счас толпы товарищей начнут писать "значит плохо учили". Ребята, вам легко судить, не видя человека, но прошу поверить, что я знаю, о чем говорю
A>Может не плохо учили, а платили мало. См. "Зеленая лампа".
Какая именно "Зеленая лампа" имеется ввиду? кому платили мало?
A>Код сам по себе в 99% никому не нужен, нужны люди, которые могут что-то работающее сделать, не понимаю Ваших опасений.
Да, а что если те, кто умеют забирать код встретятся с теми, которые умеют сделать что-то работающее? они же чего-то добьются, не?
Здравствуйте, vova.mirgorodskiy, Вы писали:
VM>Итак: VM> *] абсолютное б-во фирм, где работают респонденты, пока что никак не борются с угоном исходников (== основного продукта) инсайдерами;
Два замечания: если выступать за продуктивную работу, то с инсайдерами, то есть со своими собствеными работниками, делать их работу -- особенно не поборешься.
Но, с другой стороны, если эта пресловутая продуктивность не важна, и климат в коллективе тоже, не важен, но и при этом если вас укусил вирус паранойи -- то уже возможны варианты!
И тут я расскажу вкратце об одной сильной системе защиты исходников* от программистов! ( *и другой "интеллектуальной собственности")
***
Я могу рассказать как защищались в одной фирме, от угона, всего что только можно (изобретатель всего этого дела — параноик)
Статья будет состоять из двух частей (про третью часть, психологию, идеологию и мотивирование, тут говорить не буду, программисты особенно слабо шарят в таких областях).
части такие:
1. как устроено рабочее место/инфраструктура вообще
2. как устроен "коллектив" фирмы, как туда набирают людей
// 3.(psy часть опускаю)
1. Инфраструктура Как устроено:
** рабочее место — Х-клиент, сервером — отдельная достаточно мощная машинка — и Х-сервер, и локальная директория (по nfs) и хранилище исходников. Либо, исходники на более мощной (билд-)машине. плюс автоматическая система бэкапов.
** на рабочих машинах нет никаких usb-портов, флоппи-дисководов, и др. Случайно, звуковые карты тоже не работают, но это не принципиально
** Выход в сеть осуществляется через прокси с логгированием всех запросов (был squid, но сегодня и др. можно наверное). логи регулярно, практически каждый день просматриваются.
-Это выход в сеть. А входа извне нет, естественно, никаких реальных IP, для рабочих машинок нет.
** исходники и тех-документация (от тех писателей и переводчиков etc) хранятся в Системе контроля версий, у каждого есть свой персональный логин-пароль, и свои уникальные права доступа в каталоги. Вне своих проектов доступа к чужим исхожникам нет. И у коллеги нельзя взять не только потому что он не может дать со своей машины (нет доступа к флешкам), но и из-за особенностей коллектива.
Результат:
Т.е. исходники на локальную машину сотрудника не попадают никак, все хранится и компилируется на других машинах.
Процедура работы и увольнения:
Когда сотрудник еще сотрудник — у него нет ни смысла ни возможности эти исходники утянуть. Особенно утянуть без того чтобы это не было залоггированно логгером прокси. Это будет замечено. -Смысл рисковать? Сотрудники входят утром и выходят вечером из офиса все вместе. аппаратуру в компе менять сотрудникам — мягко говоря не приветствуется.
Соответственно, когда сотрудника увольняют, еще за неск минут до увольнения, все сетевые соединения на данную машину отрезаются соответствующими файрволлами на линуксах — авторизация юзера и доступ к локальной (расшаренной по nfs) директории не работают, -залогиниться невозможно. Кроме того, Х-сервер не доступен — ничего не может нормально отобразиться, кроме прочего. всё!
2. Коллектив VM> *]абсолютное б-во проектов, где заняты респонденты, по-прежнему построены на незаменимых авторах, без которых исходный код просто бесполезен (основная мысль — "проще написать с нуля, чем разбираться", что довольно симптоматично). Сложно сказать, в чем тут причина — то ли в самом коде, написанном так, что никакой обфускации не нужно, то ли в неумении/нехотении работать с чужими исходниками (между прочим, довольно важный навык для проф. программиста);
"незаменимость авторов". Эта вторая проблема тоже нашла свое решение. Ведь если Вы — параноик — то это, по определению паранойи, то есть наличию идеи фикс, означает что вы всё время думаете, как бы у вас (в данном случае) не украли исходники. (зачем исходники — об этом напишу в конце)
Как сделать "авторов" незаменимыми? Сложновато. Итак, программисты в компании бывают двух видов.
Настоящие авторы, в которых уверены, их крайне мало. скажем N на фирму, где N, количество филиалов фирмы. Каждый из них является Параноиком отделения.
Но, среди них есть один, Главный параноик, все остальные главы отделений — его временно-доверенные друзья... (какие друзья у параноика, только временные.)
Про всех остальных сотрудников можно сказать, только одно: "незаменимых людей не бывает". Что доказывается еще и высокой в основном текучкой на фирме. Как устроено
Итак. Это целый процесс, и вот как он построен.
Сначала — отбор. Отбор решает.
Надо выбрать людей — умеющих читать код. Одновременно — заставлять всех, и всегда документировать код, на вики. Вики общедоступна, читают все.
Чтоб не было длительных "застоев" в процессе документирования, надо время от времени, скажем через пару дней "бить по рукам" и отгонять от длительных периодов документирования. Так бы часто код и оставался не-до-документированным, но на этот счет тоже есть решение, периодические общие презентции, материал для которых готовится тоже в вики.
Еще один способ сделать программистов (кукл барабаса) хорошо заменяемыми — обучить их заменять себя. Для этого:
При появлении нового програмимста в "команде", как при "обходном листке" но не в конце, а — в начале, при поступлении, проходит по всей небольшой компании и расспрашивает всех чем они занимаются, на это отводится день, максимум два.
В общем, мне кажется такая схема защиты исходников идеальной, если не считать небольшого изъяна: морального климата в таком "коллективе" (на самом деле — в "диффузной группе").
Поскольку самая сложная проблема — это терпеть такого параноика, то она решалась отбором достаточно конформистких личностей на входном собеседовании, и именно тут многие кандидаты не проходили. Независимое мышление хорошего программиста антагонистично конформизму, необходимому для выживания в таком "сообществе".
Результат:
В компании работают люди, которые умеют терпеть (главу отделения) Параноика и способны успешно читать код и документировать (умение программировать как само собой разумеющееся, но оно лишь для программистов. а ведь бывают еще и др. специальности)
Однако из за климата наблюдается постоянная небольшая течь персонала, достаточная редкая, впрочем чтобы на что-то серьезно влиять.
Впрочем, важно отметить: вследствие некоторых моментов, работа в фирме ведется достаточно продуктивная, на уровне, скажем так с фирмами подобного размера.
И да, кроме прочего, взаимообмен информации очень полезная штука!!
*** Что такого в исходниках
Тут многие высказывали спорное утверждение, что исходники ничего не стоят. Ничего не стоят непонятные и непригодные исходники.
И таких в природе, во множестве всех созданных кодов — подавляющее большинство. Так что статистически (в 90%+) это утверждение может и верно, но не всегда — и категоричное утверждение уже неверно.
Существут немало областей, в которых программы, решающие определенные задачи, и решающие хорошо — востребованы, и будут востребованы всегда.
Если вы можете (ваш продукт может) решать задачу хорошо, то вы всегда найдете клиента. Тем лучше если ваша ниша достаточно узка: вы знаете где искать клиентов.
Так что, нет, в общем случае нет, не верно, что исходники никому не нужны, и ничего не стоят. Есть случаи когда стоят и исходники и люди их написавшие.
Проблема лишь в возможности повторно использовать эти исходники, и в том — что далеко не все, и не всякие исходники могут быть повторно использованы, не обладают свойством повторной используемости.
Но оттого, что исходники, сами по себе, являются неизменными, то есть "мертвым" продуктом, то без того, чтобы их "оживить", их можно использовать только непродолжительное время. И то, только в случае, если их удастся адаптировать.
(...)//часть психологии опущена (+ часть "повторно используемый программист")