Насколько серьезна потеря исходного кода? [закрыто]


9

Если компания-разработчик теряет исходный код одного из продаваемых ими продуктов, насколько серьезным это будет, если бы вы могли объяснить непрофессионалу? Будет ли термин "грубая небрежность" слишком сильным? Или "грубая некомпетентность"? Очевидно, никто не был убит, но разве это не так серьезно, как финансовая халатность, за которую люди получают тюремное заключение?

РЕДАКТИРОВАТЬ: скажем, это не случай сбоя диска, стихийного бедствия или что-то в этом роде. Просто они неуместны.


37
За этим вопросом стоит история, и я очень хочу ее услышать. Я просто подожду, пока он появится на Daily WTF.
BlairHippo

4
@ Джош К - Плохая аналогия! Ребенок не может быть заменен. Исходный код можно. (и я серьезно потрясен, если вы думаете, что source_code == ребенок). Но, полагаю, у вас его нет (пока).
Ладья

6
@Rook: Почему это плохая аналогия? Исходный код не может быть заменен точно, он может быть реплицирован только аналогичным образом. Конечно, это не так экстремально, как потерять ребенка, но сравнение по-прежнему звучит убедительно.
Джош К

6
@Rook: Вы упускаете из виду тот факт, что хотя один (дети), очевидно, гораздо важнее исходного кода, владение обоими все еще очень ценится. Вы отвергаете мою аналогию, потому что дети важнее исходного кода, это все равно, что отклонять Yahoo! как поисковая компания, потому что Google намного больше. Я хочу сказать, что оба они огромны, тот факт, что один в 10 раз важнее / важнее другого, не имеет значения. Скажите, что, потеряйте репозиторий (и все копии кода) для основного приложения вашей компании и вернитесь ко мне через 5-10.
Джош К

5
Я не понимаю, как может быть только одна копия, которая может быть "неуместна" в первую очередь? Я , как правило, по крайней мере , два или три копии себя в различных стадиях исправлений, обновлений и исправлений , которые я работаю. У моих коллег будут свои копии. В худшем случае вы можете потерять историю в своем исходном репозитории (если вы используете центральный репозиторий без резервных копий) ... Я просто не понимаю, как это возможно ...
Дин Хардинг

Ответы:


27

Допустим, MS теряет источник для Windows Phone 7 ... люди были убиты за waaaaay меньше, чем, по оценкам, 400 миллионов долларов, которые стоят на его разработку.

В зависимости от продукта, я не могу придумать термин «слишком сильный».


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

1
И это делают не просто небольшие компании. Моя консалтинговая фирма много работала для Informix, которая в свое время была жизнеспособным конкурентом для Oracle. Они решили перенести один из наших проектов в индийскую аутсорсинговую фирму, и однажды менеджер позвонил нам: «Вы не прислали нам источник!» «Да, мы сделали, это было на X дате (около года назад), и вот номер отслеживания FedEx. Вы его потеряли?» "Нет, конечно нет." «Это нормально, если вы это сделали, потому что мы можем получить его из наших архивов, но за это будет взиматься плата». "Нет, не беспокойся." Позже мы узнали, что они действительно потеряли его.
Боб Мерфи

18

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

В сегодняшних рынках компания IS это IP. Потерять это, и это выходит из бизнеса.


13

Как отметили другие, это, вероятно, подпадает под заголовок «все зависит», поэтому пара сенарио:

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

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

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

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

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

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

Тем не менее, я бы сказал, что по всей доске человек, который потерял код, будет искать новую работу (и ему может быть трудно ее найти!), И он также может столкнуться с судебными исками со стороны компании.


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

3

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

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

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

И я уверен, что есть много других факторов, которые следует учитывать. Не стесняйтесь добавлять.

Теперь я сказал «с точки зрения софтверной компании». Это может все еще быть катастрофическим в сознании клиента из-за планов, которые они имели для изменений, улучшений или чего-то еще. Контракт на такие вещи или право собственности на авторское право, тем не менее, может серьезно разозлить клиента, но без каких-либо обязательств со стороны разработчика, кроме как делать все возможное для поддержания хороших отношений с клиентами.


И для дальнейшего углубления в «точку зрения клиента», к чему я клоню, я не знаю, какова история вопроса, но для клиента было бы неслыханно думать, что у него есть право ожидать, что исходный код будет защищен, как Fort Knox, в то время как разработчик считает его «выброшенным», когда заказчик не просил никаких модификаций или дополнительной работы в течение трех лет с момента развертывания.
Blumer

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

3

Ах, учитывая это разъяснение от вас (в комментариях):

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

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

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

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


Да, это только один из многих продуктов, которые они продают
JoelFan 22.10.10

Это не просто один клиент ... он больше не будет работать над последним выпуском ОС
JoelFan

1

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

Это не значит, что это не абсолютная катастрофа для компании. Но это финансовая катастрофа; не легальный. Я, вероятно, начну с термина «грубая некомпетентность» и продолжу свой путь оттуда.


-1: «Я не думаю, что у них проблемы». Они не могут исправлять ошибки, исправлять или вносить изменения, когда Microsoft «обновляет» операционную систему. Они полностью обречены на быстро сокращающуюся клиентскую базу, и единственными новыми продажами будут полные идиоты. (Ненулевое население, но без большого количества денег, чтобы потратить на программное обеспечение.)
S.Lott

@ S.Lott: Что может быть важнее, они даже не могут перекомпилировать. Если что-то изменится в среде клиента, программное обеспечение не будет работать.
Дэвид Торнли

1

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


Декомпилируется до такой степени, что он все еще может быть построен и запущен, но будет ли он по-прежнему обслуживаем?
Джей

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

Если только ваш код не будет запутан, в этом случае это будет немного неприятно.
МВД

1

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

Как насчет "невероятной глупости"?


0

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

Есть много рабочих мест, которые имеют физическое сравнение с созданием программного обеспечения.


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

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

@ frogstarr78: возможно внести изменения в здание без первоначальных планов. Там есть здание, которое можно наблюдать. Строительство нового здания, вероятно, потребует новых планов, хотя они могут быть основаны на старых. Планы на модель автомобиля будут необходимы только на один модельный год; после этого можно осмотреть автомобиль для получения необходимой информации. Потеря планов для физических объектов - это не хорошо, но это не так сильно влияет на удобство использования, как потеря исходного кода.
Дэвид Торнли

@ Дэвид: я не согласен.
frogstarr78

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

0

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

Если вы не можете восстановить исходный код, тогда обслуживание (исправление ошибок) и улучшения не могут быть выполнены, поэтому приложение теперь статично. Если Microsoft, Apple, Apache или кто-либо другой, кто использует вашу операционную платформу, изменяет или обновляет свой код, тогда ваш старый скомпилированный код может не работать, и вы не сможете это исправить. Если вы продаете это приложение внешним клиентам, вы не можете контролировать, когда они обновят свои Windows, MAC OSX, iPhone, веб-браузер, поэтому у вас довольно большой риск для репутации вашей компании и, возможно, юридический риск, даже если у вас есть контракт на обслуживание. с клиентами.

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

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

Ура,

Kevin

PS надеюсь это только теоретический вопрос ... :)


-1

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

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


-1: «Если они не должны исправлять ошибки» Какой завидный уровень совершенства. У кого есть программное обеспечение, которое хорошо? Кто-нибудь?
S.Lott

1
«Не нужно исправлять ошибки»! = «Нет ошибок». Многие компании продолжают продавать программное обеспечение EOL со списком известных ошибок, которые они не собираются исправлять. Как драйвер USB для Win98 - они там, они, вероятно, не идеальны, но я сомневаюсь, что кто-нибудь применяет исправления ошибок.
TMN
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.