Каким образом решить проблему воровства кода при коллективной разработке?
Сейчас популярны гибкие методологии разработки, которые включают коллективное владение кодом, коллективную ответственность и коллективную разработку. Но даже если каждый человек отвечает за свою конкретную часть, то очень часто бывает, что каждый все равно может получить доступ ко всему разрабатываемому ПО.
Для прикладного ПО можно это обойти — каждый разрабатывает свою dll, а затем это всё сшивается воедино. Но как поступать, например, с веб-сервисами, для которых обычно весь код открыт?
В общем, вопрос звучит так:
Каким образом владельцу ПО/работодателю обезопасить себя от воровства исходников при работе с наемными сотрудниками?
Интересует не только законодательная часть, но психологическая и техническая. К сожалению закон в России не всегда является барьером для воровства в сфере ИТ.
Как первый вариант – если несколько программистов, то можно определить долю каждого в бизнесе, чтобы каждый был заинтересован в коллективном успехе. Недостаток: как быть когда бизнес вырастет и нужно будет принимать наемных работников?
Второй – у каждого свой модуль и нет доступа ко всей системе. TDD здесь поможет, однако это исключает многие пункты agile, что может замедлить разработку.
А почему все рассматривают кражу исходников только в контексте уникальных алгоритмов, технологий и т.п.
Исходники это тупо много человекочасов… если я утащу банальнейший проект какой нибудь ну пусть даже flash игрушки (пример просто из смежной области), то просто с экономлю кучу времени себе и своим программистам на разработку костяка игры. Тут нет уникальных технологий, нет секретов и тайн… да дофига людей пишут flash игрушки.
Но вместо того, чтобы уйдя из противной мне конторы пустым и просто сделать свою студию разработки, я утащу исходники и тупо сэкономлю кучу времени…
В исходниках что называется «с нуля» разбираться не надо по логике я с ними и так работал.
Даже можно в этом же сеттинге выпустить игру поменяв только графику, тем самым посадив в лужу контору из которой уволился… судиться можно долго, доказывая, что это не ты код писал… можно ведь и обфускацию сделать и т.д.
Это же применимо и ко многому финансовому ПО… да в принципе ко многому ПО…
Так что ноу-хау не единственна проблема кражи исходников…
solver, слишком много факторов вы еще не описали. Если бы было все настолько просто, то такое было бы направо и налево. Но реально, как мы видим, такие случаи единичны. Есть еще, например, такие вещи как баги, отладка, маркетинг, коммандообразование, управление проектом… куча всего.
Эффективно «подообный манерв» способны выполнить лишь единицы. Да и то, сработает это лишь в самом простом случае, вроде упомянутой вами flash игрушки.
А исходники чего-нибудь хоть немного посерьезней чем интернет-магазин или flash-игрушки — это все равно что чертеж атомной бомбы: все это супер круто, супер-секретно, но только чтобы собрать это по чертежам и довести до ума (я имею ввиду комерческой применение) нужно столько сил и средств, что это посилам лишь совсем единицам.
Хорошо, Давайте предположим гипотетический случай. Завтра к вам в кури чудесным образом попадают рабочие исходники какой-нибудь ERP-системы (например, непонятно какая ревизия из svnа, обнаруженная где-нибудь на ноутбуке на скамеечке в парке). Что вы будете делать?
Неужеле вы серьезно думаете, что уже на следующей неделе вы будете радостно подсчитывать миллионные обороты, став крупным игроком на рынке ERP, просто скомпилив это все в состоянии «как есть», только изменив одну строчку copyright?
В более-менее серьезном проекте один баглист толщиной с тетрадку, причем многие баги открыты уже по полгода. Ну, а про то, что для только самой попытки доведения до ума большого проекта (не говоря уже о последующей его поддержке) чужой программы размером более сотни тысяч строк, нужны тоже тысячи человеко-часов (а они у вас есть?) и нормальная квалифицированная комманда разработчиков (они конечно тоже ходят табунами рядом с вами, ожидая мановения вашей руки?), наверное тоже не секрет. Но, даже если худо-бедно вы все-таки (потратив вагон времени и вагон денег) с этим всем попытаетесь выйти на рынок, то вас там тоже не ждут с распростертыми обьятиями, там уже будет конкуренция в первую очередь со стороны исходного программного продукта который тоже не стоял на месте (а развивался побыстрее вашего, desu). И вам будет стоить еще трех вагонов денег убедить потенциального заказчика что ваше г*&но не менее г*&нистое чем г*&но конкурента.
А теперь, давайте прикинем, у какого процента работающих рядом с вами программистов хватит навыков, времени сил, организаторского и руководительского таланта (и самое главное лишнего мешка денег в запасе :) не забываем, что на все нужны ресурсы :) ) чтобы вот так прямо завтра взять и открыть свою успешную софтверную фирму с организованной коммандой разработчиков и отлаженными бизнес-процессами? Может быть на тысячу пара-тройка таковых и найдется. Вот только, обычно этой паре-тройке хорошо сидиться на должности ведущего программиста или технического директора и они вовсе не собираются покидать родную контору.
Это я к чему говорю. Что паранойя вещь хорошая, но только когда она направлена в правильное русло, когда она служит вам. Не стоит боятся того, что каждый быдлокодер который увидел две строки из ваших исходников уже сольет их и превратиться в вашего главного конкурента (у быдлокодера таких навыков просто не хватит).
А вот налаживать правильные и хорошие деловые отношения с ключевыми разработчиками, как раз надо и это правильно и очень полезно.
Все верно, только учтите, что мы не «находим исходники на скамейке», а целенаправленно крадем… при чем нужную и известную ревизию из SVN.
А вообще такое наиболее опасно для небольших контор… там где проекты не на много миллионов строк кода, а вполне подъемны для пары программеров. Украв исходники винды вы не нанесете существенного урона майкрософту. А вот украв ERP у небольшой конторы это совсем другое дело… это с экономит много времени ибо в нормальной ERP разобраться не так сложно (сам написал их не одну и не две), а не нормальную красть нет смысла…
Получив исходники в которых вы ориентируетесь, вы почти сразу можете предлагать ее заказчикам. Причем можете демпинговать, вы же не вкладывались в разработку…
А со всеми багами разбираться это уже в рабочем порядке, после продажи, подписания договора, получения аванса и т.д.
И мешок денег для этого тоже не нужен…
Поверьте мне, я первые несколько внедрений своей системы делал на голом энтузиазьме… при чем конторы были немаленькие.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.