Неважно, насколько хороша ваша команда разработчиков – рано или поздно в поисках решения они полезут в интернет. Пытаясь выяснить, почему данная библиотека ведет себя так, а не иначе, или как что-то написать на данном языке, они в конце концов увидят какой-то код в своем браузере. Ответ на все их вопросы уже ждет, когда его выделят на странице – CTRL+C и затем CTRL+V в IDE или редакторе. Задача решена.
Не торопитесь: сам по себе факт, что код находится на StackOverflow.com или найден в сообщении в чьем-то блоге или статье, не означает, что его можно просто взять и включить в ваше решение. Помните, что любой код, созданный вашей командой, будет считаться активом и интеллектуальной собственностью вашей компании. Он должен быть создан добросовестно, не скопирован и не должен содержать элементов, защищенных авторскими правами. Вы ходите по юридическому минному полю, но, если будете руководствоваться здравым смыслом, поможете команде избежать ошибок.
Проверка кода
Код можно и нужно проверять
При продаже компании может проводиться технический due diligence, при котором проверяются права собственности на разработанный в ней исходный код, особенно если он является основным ресурсом компании. Существует множество инструментов для поиска плагиата (спросите любого профессора информатики). Я видел, как расторгались договоренности о сделках, когда выяснялось, что крупные части кода, который компания выдавала за свой собственный, на самом деле были взяты из open source проектов. Такие находки ставят под сомнение достоверность и законность вообще всего, что делает компания. Еще подозрительнее, если в ходе due diligence разработчики утверждают, что они вообще не используют ПО с открытым исходным кодом: тогда я копаю глубже, чем обычно.
В целом «копирование» кода с форумов разработчиков – это нормально. Все, что превышает 5 или 10 строк, стоит переписать, используя алгоритм только для вдохновения (просто переименовать переменные недостаточно). Чаще всего код на этих форумах демонстрирует примеры использования библиотеки или API и не является чьей-то собственностью.
Части кода из библиотеки с открытым исходным кодом можно копировать, только если это разрешено лицензией библиотеки, и в этом случае следует действовать так, как если бы вы интегрировали всю библиотеку (то есть зарегистрировать ее использование в вашем списке).