понедельник, 26 декабря 2011 г.

[prog.memories] Несколько хороших историй на тему инженерной археологии

…нашлось в разделе юмора на RSDN, хотя место им вовсе не в юморе. Вот они:

Память фирмы (не про программирование, но очень поучительно)

Археология исходников в блоге ув.тов.ShaggyOwl

Археология исходников в Компьютерре за авторством ув.тов.Виктора Шепелева.

На тему первой истории (про установку производства полимеров и “левые” копии технической документации у инженеров) мне вспомнился случай, который произошел со мной.

Когда-то давным-давно сделали систему для большого заказчика. Причем сделали так – есть софт на нашей стороне, есть софт на их стороне. То, что на нашей стороне, мы полностью делали сами. То, что на их стороне – в основном их собственная разработка, в которой использованы наши библиотеки. Понятное дело, что как только возникало что-то странное в работе софта на их стороне, то всех собак вешали на нас (“Ваша библиотека работает не правильно!”) и мы с шилом в заднице пытались найти у себя проблемы, которые чаще всего были не у нас.

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

Минуло еще года три и случился большой Бах-ТРАХ-Тара-Рах (причем ТРАХ именно с большой буквы во всех смыслах этого слова). В конце-концов проблема была найдена – зацикливание при разборе принимаемых данных. Но этого было мало, нужно было еще как-то указать, откуда она взялась. И тут очень пригодился валявшийся все это время без дела архив – зная что именно искать я, в итоге, нашел место, где происходила ошибка. Хотя, по хорошему, этих исходников у меня быть не должно было ;)

2 комментария:

Aleksey Dobrunov комментирует...

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

на своей практике было такое
1. работая админом на двух новых зданиях, я единственный кто знал как проложена вся слаботочка. монтажники не оставили никаких знаний, кроме показа визуально. как там сейчас живут , не знаю . но мне не звонили ))
2. сейчас в унаследованном open sources проекте так же, смотришь на строчку кода - бред, смысла в ней нет. и не документировано. уберешь, вроде работает. а потом выстреливает на редких случаях.

eao197 комментирует...

@Ctapmex:

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

Есть такое дело. На эту тему я когда-то написал много слов: http://eao197.blogspot.com/2011/09/progworkthoughts.html