Как стать автором
Обновить

Комментарии 250

НЛО прилетело и опубликовало эту надпись здесь
там, к сожалению, далеко не один программист.
НЛО прилетело и опубликовало эту надпись здесь
Вот я бы не сказал, что там всё по красоте. Хоть где-то.
Скорее фигак-фигак и в продакшн.

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

Я ему долго объяснял, что никак не выйдет менять скомпиленый бинарник, он выслушал, а потом с презрением спросил — «ты вообще программист, или кто?!»

Ну я и уволился, конечно.
Эм. И в чем проблема поменять скомпилированный исходник? дизассемблер отменили чтоли? Часто так вообще можно даже не дизассемблировать, а прямо в машкодах поправить что нужно. Но это, конечно, от ситуации зависит. Типичный кейс: в конце ехешки(где как правило много пустого никому не нужного места) пишем новый код, а где нужно делаем jump.
И в чем проблема поменять скомпилированный исходник?

Назовём это цеховой солидарностью, поскольку
заказать сделать это у разработчиков было дорого, потому что пришлось бы оплатить предыдущие лицензии на поддержку, на которых комдир сэкономил много денег (чем особенно гордился)
То есть софт пиратский норм, а когда речь зашла о выполнение своей работы — солидарность появилась?
ЛОЛ.
Софт не пиратский, просто лицензия была типа оракловской. Купите, дальше пожалуйста, пользуйтесь без поддержки, а понадобится поддержка — оплачиваете лицензию с момента истечения первичной покупки.

А где, простите, связь между разработкой и реверс-инженирингом?

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

Вот если бы надо UX менять, причем не надстраивать, а именно менять — там задача сложнее. Но тоже вполне решаемые почти всегда.
Я прошу прощения, вы когда-нибудь что-то подобное делали на живых системах уровня завода? В смысле берём собранный бинарник — один из, точнее, их там много — писаный на плюсах под дос, разбираемся где что лежит и куда зачем ходит, а потом не циферку правим или локальную операцию, а кусок логики техпроцесса. Которая ещё и размазана по файлам и в базу лазит между делом? А потом быть крайним когда (не если) что-то где-то посыпется, причём даже безотносительно к? И, главное, чтобы — что? Теоретически ж вообще можно из целевого файла сделать тупо враппер для запуска своей ERP — троллейбус.жпг.

PS У меня стаж в ассемблере на тот момент небольшой был, всего лет пять где-то (не основным языком, но довльно плотно), так что я здраво оценил свою некомпетентность как специалиста и востребованность на нормальном рынке, и не взялся.
Программист и так всегда отвечает за то, что он пишет и за соседние модули.
Если бы вы изначально написали вот это сообщение — у меня бы не было вопросов.
Но вы написали «никак не выйдет менять скомпиленый бинарник», что лютая неправда. И ваш оппонент совершенно справедливый вопрос об уровне вашей компетенции задал.

Опять же, сказать «я это не смогу» — это одно. А втирать что «это невозможно», когда это не так — совершенно другое.
а вы случайно не работаете над системой finexpert? там товарищи подобным страдают. исходники потеряны но они пишут многомегабайтные патчи для того чтоб соответствовать современным требованиям. причем система работает отвратно но они продолжают мужественно жевать кактус
Нет, я в геймдеве работаю.
Работа была чем-то похоже на то, что ребята сделали накрутив Red Alert 2 до Mental Omega. Стоит отметить, что вот там работа выглядит действительно невозможной. Сделать совершенно новую игру, на базе игры неподлежащей моддингу. Через взлом бинарей как раз.
Ага, за 4 года, если мне не изменяет память. Я должен 4 года разбираться в том, что шлепают gcc оптимайзеры?
Не знаю. Должны?
Почему вы меня спрашиваете о своих рабочих обязанностях? Спросите вашего ПМа.
>Почему вы меня спрашиваете о своих рабочих обязанностях
>в чем проблема поменять скомпилированный исходник?
Мдээ. Ваши же слова?
Верно. Мои.
Автор сделал утверждение, что поменять скомпилированный исходник невозможно.
Я считаю, что поменять можно любой исходник. Естественно чем масштабней проект и сложнее изменение — тем сложнее и работа. Но невозможно? Врядли.
Вот я и спросил автора, в чем он видит проблему.

Что вам конкретно непонятно в моем вопросе?
>невозможно
>менять расчётную логику в ERP в машкодах — самое оно
Как-то не сходится утверждение
Прямая цитата:
«никак не выйдет менять скомпиленый бинарник».
Это утверждение — бред.
А контекст с тем, что объяснялось комдиру, который от великой жадности траты ресурсов на поддержку будет потом любой косяк в многомегабайтном бинаре сваливать на разраба не учтен? Семантический парсер бы понял ))
Этот контекст присутствует при любой задаче программиста.
И да, это не повод врать.
рукалицо

— Папа, а этот гриб есть можно?
— Можно. Только умрешь.

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

Это трындец просто.
Вы вообще представляете себе о чем говорите?
В своем большинстве игры — очень простые движки, их модили модят и будут модить.
Во-вторых «ребята» это кто? в бытность помню огромные сообщества по всему миру, которые ломали такое как дум, редалерт и объединяли общие наработки. При этом эти люди просидели в этих игрушках целые жизни зная как они работают вдоль и поперек.
А вы хотя бы одну систему внутреннего учета изучите вдоль и поперек? Там обычно НИКТО не знает, как система работает целиком — каждый знает свой небольшой участок. Тут бухгалтерия, тут инвентаризация, тут переоценка, тут учет личного состава и так далее.

То есть вы сейчас сравнили сообщество, которое ломает хорошо известные игрушки и модит для себя в свободное время, и 1-2 человека, которые должны впихнуть себе в голову огромный объем знаний различных модулей, без четкого понимания как это должно работать на самом деле, и нести за это финансовую ответственность размером с сотни их зарплат.
Вы совершенно правы. Вот только при чем тут сложность, когда речь идет о ВОЗМОЖНОСТИ?
Есть возможность? Есть.
Сложно? Ну скорее всего да, надо оценивать отдельно уже.
Где я говорил что это элементарная работа на пару часов?

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

И вот это «патчить бинари ERP-системы на заводе» — не та задача, которую можно решить разумными затратами усилий.

1) Задача неизвестна. Поэтому оценить её сложность непредставляется возможным. А вот факт возможности — вполне.
2) Очень часто такие задачи можно решить не трогая исходники вообще.

Присоединяйтесь к пари. Я покажу как решить задачу не трогая исходники. Без использования IDA и других диззассемблеров.
НЛО прилетело и опубликовало эту надпись здесь
Обратите внимание, про «некомпетентность» речь пошла когда ватор сделал вполне конкретное утверждение. Собственно показывающее его некомпетентность.

Ну и да, мой коммент изначально не был нейтральным. Автор врет работодателю и транслирует в интернет мысль что «без исходников код править нельзя». Причем у меня подгорает не из-за «в этой ситуации нельзя решить задачу», а именно из-за абстрактного утвержденеия про невозможность. Люди же прочитают, и поверят.
НЛО прилетело и опубликовало эту надпись здесь
Ну конечно считаю. Посмотрите сколько народу отписалось что «это так сложно», «да ты ассемблер даже не видел»,«ты только сейвы в играх правил» и т.п. Эти люди живут в мире, где правка бинарей какая-то супер магия, которая требует жертвоприношения девственниц и занимает 1000 лет на подготовку обряда вызова демона.
Хотя по факту это достаточно рутинное дело мало отличающееся от написания кода в обычной ситуации.

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

Я не знаю, кто-то не потратит десятки часов на бессмысленную правку каких-то бинарников, ради экономии оплаты изменений оригинальным разработчикам нормальным путём?

Почему нет, если за это платят? БОльшая часть программистов занимается гораздо более бессмысленной работой.
НЛО прилетело и опубликовало эту надпись здесь
Верно. Но я нигде не говорил, что программист который не может или не хочет этим заниматься — плох.
А вот тот, кто берется делать экспертизу, а потом делает неверные выводы — вот он плох.
Лично я могу призвать не сливать вам карму, потому что вы представили ещё одну грань проблем программиста. Нужно не только различать кодинг и разгребание проблем, но и осознавать, что ты это различаешь. Ну а доносить до других — вообще высший пилотаж. Разумеется, в разгребании проблем тоже ничего плохого, если, конечно, не делаешь хуже. Например, планировать отказ от лицензии на основании возможности менять бинарники — точно не стоит.
Да мой коммент изначальный(который сейчас -27 и с которого мне слили большую часть кармы) — вообще не касается вопроса разгребания конкретной проблемы, а лишь является указанием списка того, как можно бинари править. )
Там нет ничего про лицензии, экономию. и т.п. Чисто техническое перечисление.
НЛО прилетело и опубликовало эту надпись здесь
Ну да. Именно так, меня интересует техническая часть, про неё и спросил. То что кого-то задевают эти вопросы… Может этому кому-то стоит задуматься, почему они его задевают?
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Но в данном случае я этого не делаю именно потому, что уверен что ахинею несут оппоненты. Уйти значит признать их правоту, а я этого не хочу делать, потому что тема достаточно важная.


image

Ну и да, вы, ИМХО, прекрасно поняли, что «невозможно» в контексте обсуждения ERP-системы означало «нецелесообразно и потребует огромной работы», но решили выпендриться своим скиллом дизассемблирования (есть он или нет — оставлю за кадром), попутно унизив собеседника. Потому что я не верю, что у вас в голове формальный синтаксический парсер, и вы не оперируете контекстом, а только формальными значениями слов. Вот за это вам и накидали минусов — за хамство и высокомерие, а не потому что все тут думают, что дизассемблирование и правка ПО без исходников в принципе невозможны.
Я уверен что чувак писал «нельзя» именно как нельзя. Дальше он это только подтверждает, высказывая абсолютный бред про правку логики машкодами.
Выпендривание скилами? Уж простите, но я уверен что программист знает всё что я написал в том сообщении. Но да, согласен меня могут минусовать недопрограммисты, которые прочитали полторы статьи и пошли зарабатывать.

Ваша картинка 100% повторяеют мою аватарку. ) ПРавда на ней текст плохо читаемый, но оргинал легко гуглится по картинке. )
В данном случае вопрос принципа.
недопрограммисты


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

UPD: а, вы там ниже признались, что ассемблера не знаете, и что его знать необязательно для дизассемблирования. Я, грешным делом, подумал, что вы, может, и правда крутой реверс-инженер и имеете хоть какие-то основания для высокого ЧСВ, а оказалось-то совсем как-то некрасиво.
Ну вы можете убедиться, что я так не общаюсь и здесь, почитав комменты в других обсуждениях.
Сейчас просто особого смысла нет сдерживаться и можно говорить как думаешь, а не корректируя речь, чтобы она была политкорректной. Эдакая форма хабросамоубийства.
Я еще сильнее в минус уйду, потому что планирую пару статей опубликовать, которые давно хотелось, но было понимание что они меня в глубокий минус уведут. А теперь можно )

Но с донесением у меня мыслей и правда похоже проблема. Потому что я нигде не говорил, что не знаю ассемблер. Я говорил что его знание часто совсем не нужно чтобы вносить правки без исходников.
И да, я не являюсь крутым реверс-инженером, это не моя работа. От этого у меня отдельно подгорает, что базовые знания приравниваются к знаниям каких-то суперх крутых спецов, когда по факту КАЖДЫЙ кто называет себя программистом должен хотя бы основы знать.
КАЖДЫЙ кто называет себя программистом должен хотя бы основы знать

Ни один истинный шотландец

Ну и зачем же хабрасуицидиться? Ну неудачно выразились, предположим, так скажите: «ОК, был не прав, извините, имел в виду то-то и тот-то». А вы продолжаете хамить, повторять стократно одни и те же слова (хотя, я думаю, вы уже поняли, что неправы, но ложно понятая гордость глаза застит) и пытаетесь представить все так, как будто вас за правду травит толпа неучей. Ну некрасиво же, право слово, не по-взрослому.
А я суициднулся первым комментом. Он один принес около -30 ))
Так что не важно что я пишу дальше — карму это не изменит. А если убрать карму — есть отличная возможность высказатся(чему карма обычно мешает).
Я повторяю стократно одни и теже слова, потому что мне одни и теже доводы пишут. Один и тот же тезис — один и тот же ответ.

Я на самом деле не против разобраться в ситуации. Поможите.
Окей, я не прав. В чём?
Я высказываю технчиеский комментарий, он кого-то задевает. Большинство молча ставит минусы. Кто-то решает вступить в диалог и… на протяжении нескольких комментариев контроаргументы ТЕХНИЧЕСКИЕ.(ERP в машкодах и вот это всё).
То есть из технических аргументов я должен понять, что дело здесь не в технологии, а в том, что большинству удобнее врать руководству?
Посмотрите первую ветку, там всё вокруг технологии и сложности, а не вокруг «экономики и политики». На основании каких комментов я должен был понять что народу не нравится форма коммента?
Я увидел минусы и технические ответы, продолжил технический диалог, решив что народ просто не понимает как это можно сделать.
Так, всё. Я достал попкорн. Беседа перешла на мемасы и «сочувстве коллегам». А дальше что? Вдруг до дна ещё далеко? Что же ответит программист, способный управлять командами процессору? Что он ещё скажет о тех кто отказывается этими командами управлять?
А вот и ответ его пришёл!
Итак, призыв программистам знать основы!
Все слышали? Компьютер не шаман-коробка, ею рулить можно! Каждый программист это обязан знать как основу.

Что же ответят фанаты нежного общения? Какие оскорбления и в чей адрес они найдут в этом заявлении?

А вот и ответ от фаната!
К сожалению, просто выражение досады, без горячих обвинений. Но не все угли потушены!
Возможно, программист подкинет новых дров! Или всё же раздует старый костёр? Смотрим.

Программист заявляет, что общается в техническом стиле, не видит своей неправоты.

В разговоре снова что-то назревает…
К сожалению кино скоро кончится, потому что я не смогу отвечать из-за таймера. )
Ладно, я попробую еще раз. Никто не говорил, что править ERP-логику в машинных кодах невозможно в принципе. Очевидно, что «невозможно»==«нецелесообразно» в данном случае, т.е. потребует нерационального расхода труда и времени. Понимаете, теоретически и «чисто технически» возможно много чего — собрать, например, коллайдер в подвале. Однако обсуждение не шло в контексте «технической возможности в принципе», а явно шло в контексте целесообразности. И нет, это не ложь. Я тоже предпочту коротко ответить заказчику на его хотелки в нашей АСУТП, например, «в таком виде это невозможно», а не рассусоливать и объяснять, что «теоретически это возможно, только потребует 5 лет работы коллективов вдесятеро больше нашего и стоить будет дороже спейсшаттла». Потому что в данном контексте и заданных условиях все это и означает «невозможно».
Вот только этот вывод не делался на основании первых комментов. Потому что опять же, комменты были не про психологию, а про технологию.
мне бы очень пригодился к примеру быстрый патч винды, чтобы она загружала мой драйвер с моей же подписью (а не микрософт). По идее же это так несложно, но мои 15+ лет с ассемблером, Ида и С++ как-то не очень помогли мне в решении проблемы.

Распространение дезинформации — это большая проблема в наше время. Поэтому хоть вопрос и не мне, но отвечу я — да, переживаю. Надо стараться строить чёткую картину мира, а не запутывать её (хоть намеренно, хоть нет).


Разработчик программы не всегда желает вносить изменения, даже жив бывает не всегда. Но программа может быть достаточно полезная, чтобы потратить время на её модификацию.


Пример ситуации, близкой к реальной: 1. Автор считает, что его программа обязательно должна регулярно оповещать пользователя о доступности новой версии. 2. В новой версии автор добавил изменение, которое пользователю не подходит и пользователь принимает решение остаться на старой версии.
Решение: поменять в бинарнике адрес сервера обновлений на несуществующий, больше всплывающих окон не будет.


И таких ситуаций, когда надо подправить одну строчку или одну константу, достаточно.

Не любую задачу.
Любую задачу которую можно решить имея исходники можно решить не имея.


Вопрос только в стоимости и времени.

И если стоимость решения так и не окупится при эксплуатации, или время реализации — превышает вашу жизнь, то какое же это решение?

Толи я плохо пишу, сильно непонятно, толи тут одни идиоты собрались неспособны прочитать простейший текст.

— Алло, дорогая, только что по радио передали, что один псих едет по встречке. Будь осторожнее.
— Один??? Да их тут тысячи!

Поэтому я и написал два варианта. Вполне допускаю, что непонятно пишу. Хотя казалось бы, некоторые заминусованные комментарии вообще из пары строчек состоят. В них то я врядли сильно накосячил. Да и остальное уже по пять раз разжевал, а оппоненты продолжают писать одни и теже тезисы, на которые уже несколько раз дан ответ.

Пишете понятно. Да, можно редактировать бинарники. Но в большинстве случаев это неэффективно. В подавляющем большинстве случаев эффективнее взять исходники и исправить их, а уже потом получить бинарники. А вы утверждаете, что править бинарники — это просто и легко:


Вы этим комментарием личь расписываетесь в собственной некомпетентности и не способности придумать простейшее решение к своей задаче.

Вот это ("правка бинарников" = "простейшее решение") совершенно неверно и у многих неспециалистов может возникнуть ложные ощущения от ваших слов. Но вы правы в том, что можно исправить бинарник windows'овского Notepad'а (надеюсь, он там один) так, чтобы получилась linux'овая Pluma.


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

Видимо пишу я все таки не понятно.
Потому что «простейшее решение» было не про правку бинарников, а про «делать логику в машкодах»(что очевидно не требуется).

отревертил свой минус в карму.

Я так понял что вы минус поставили за агрессивные пожелания в пари. Почему отревертили? Там агрессивность никуда не делась, там написано в запале и уж точно заслуживает минуса, за желание мести. )
Сейчас так наверно не написал бы.
Хотя я не знаю какие условия в пари вписать чтобы оно того стоило, если убрать оттуда пункты написанные под эмоциями.

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

Возможно всё. Вот вообще все. Но не хватает тольпо одного ресурса, это время.

Вот только при чем тут сложность, когда речь идет о ВОЗМОЖНОСТИ?

При том, что ЛЮБОЙ может взять и поднять 250-300 кг в жиме лежа и попасть в книгу Гинеса. Но для этого нужно угробить всю свою жизнь, все свои интересы, и заниматься тренировками 24\7

Это возможность? Конечно. Советовать ее кому-либо — НЕТ. Потому что усилия просто несоразмерны и глупы.

Вот и вы не говорите про такую возможность, которая противоречит здравому подходу на порядок.
НЛО прилетело и опубликовало эту надпись здесь
Эгей, особенный. Может быть ты мне выдернешь кусок кода который парсит структуру из С++? А то нынче есть там особо лютый оптимайзер по AST, что он строится прямо в памяти и уничтожается когда не нужен, да. Т.е. тебе надо всего-лишь найти кусок кода, который генерит машкоды, потом в памяти запускает, проверяя существование суб-парсеров, потом парсит и подыхает. Ну вот за сколько ты возьмешься этот мета парсер немножко поправить, так что бы выдавал снаружи, ждал, потом вставлял «куда надо». Парсеров около 80.
Предварительно задача выглядит на 500$ за парсер.
>потому что пришлось бы оплатить предыдущие лицензии на поддержку, на которых комдир сэкономил много денег (чем особенно гордился).
>Да четамделать квалификация, ряя
>просит 40 килобаксов
Ясна.
У вас проблемы с восприятием текста? Где я говорил что это элементарно?
Ну и да, 40К это копейки(Одна только IDA со всеми моими любимыми плагинами стоит около 5К). Я уже приводил здесь в качестве примера примерную стоимость типичной коммерческой лицензии на предприятие за 10 лет.
>потому что пришлось бы оплатить предыдущие лицензии на поддержку, на которых комдир сэкономил много денег (чем особенно гордился).
Там было это утверждение, напоминаю. Куда оно делось из условий задачи?
Берем 50 000 000 и отниаем 40 000$. Получаем 47 000 000 рублей.
Считаете это существенное условие? По моему — нет.
Неа, он платил 0. Вот это существенное условие из условий, и оно не учтено.
Да. И теперь у него альтернатива.
Заплатить 3 000 000
Или 50 000 000

Молодой человек, вы ассемблер x86 хоть раз в жизни видели?

Вы настолько стары, что не знакомы с современными средствами разработки?
В современном мире совершенно не обязательно знать ассемблер, чтобы разбирать дизассемблированный код.
А кстати расскажите, чем в современном мире можно по быстрому дописать новую логику в уже существующей программе?
IdaPro раньше генерила только какой-то псевдокод, в котором разбираться иногда не намного легче, чем в изначальном asm.

Предлагаю немного применить мозг по назначению.


Сказать о возрасте пользователя lexey111 мы не можем ничего, но учитывая дальнейшие комментарии "в молодости" — это примерно лет 20 назад.


Двадцать лет назад знание ассемблера было безусловно обязательным для этого дела.


Кроме того, я предлагаю вам продемонстрировать ваши знания на практике.


http://markdownpad.com/


Добавьте пожалуйста к этому продукту простую и элементарную опцию Find & Replace. Я им пользуюсь, а вот этой нужной опции нет.


А я вам за работу даже заплачу.


P.S. И да, я настолько стар, что знаком и с древними методами разработки.

А деньги мне не нужны.
Давайте подругому:
Я запилю этот функционал за один месяц.
Как итог хочу две вещи:
вернуть мне мои 50 кармы.
выкинуть нахер с хабра «программистов», которые слили мне в этом обсуждении карму. Именно программистов, если минусовал не специалист — его можно понять. Если специалист, то нафиг такого специалиста.

Ну и соответственно если я не справляюсь — я сам выпиливаюсь с хабра.(выпилю свои статьи и попрошу удалить все мои «некомпетентные» комментарии).

К вопросу как это реализвать:
Пусть к этому комменту отпишутся все минусовавшие(ну все понятно не отпишутся, но меня устроит половина, думаю это реальная цифра).
Никакого риска для них нет. Я в минусе, и не могу «мстить».
Плюс они уверены что я долбоеб, который не знает о чем пишет, так что точно с задачей не справлюсь.

UPD:
Подумал немного над предложением, оно не реалистичное.
Половина проминусовавших минусанула и ушла заниматься своими делами, так что о пари даже не узнает. Вторая половина зассыт.
Так что промежуточный вариант:
Месячный рейт 3000$.
Каждый отписавшийся под этим комментом, готовый принять пари(плюсует мне карму и сваливает с хабра навсегда) отписывается под этим комментом и уменьшает стоимость на 100 баксов.
Если наберется больше 25 человек делаю бесплатно. Если не наберется — заключаем ГПХ и я делаю за посчитанную сумму.
Пора делать Хабр-ставки.
вернуть мне мои 50 кармы.
выкинуть нахер с хабра «программистов», которые слили мне в этом обсуждении карму.

Ну это в любом случае не в моей власти.


отписывается под этим комментом и уменьшает стоимость на 100 баксов.

Достаточно учесть минусы, а не комментарии.




Впрочем, 3000 баксов у меня на это пари нет.

Вопрос чисто практический:
вам обозначенная функциональность реально нужна или предложение от балды?

Реально нужна, хотя платить 3000 баксов я за неё не готов.

То есть не то чтобы "реально нужна". Её не хватает в этом инструменте. Так-то можно использовать для той же задачи другие инструменты (тот же саблайм). Но мне удобнее этот.


Могу ли я без неё прожить? Могу.
Могу ли я прожить без этого инструмента? Могу.


Зачем она мне тогда? Комфорт и удобство.

Как-то скучно, право слово, нет в вашем предложении челленджа, кича, протеста, бунта, если хотите.
заключаем ГПХ и я делаю за посчитанную сумму

Ну нет, так не интересно, вы, по-хорошему, должны будете встать на место программиста из поста, взять на себя его обязанности, и сделать работу в срок, оговоренный с руководством, иначе это шляпа какая-то, а не пари. Предлагаете стреляться, только расстояние до мишени выбираете вы, нет уж.
Либо, если уж хотите с договором ГПХ, внесите в ваше предложение корректировку — если к сроку вы не сможете выдать результат, отвечающий всем требованиям, то уплачиваете неустойку в размере суммы договора.

MarkdownPad не очень хороший пример. Он собран .NET`ом, а это почти чистые исходники. Попробовал пересобрать его с помощью dotPeek 2020 и Visual Studio 2015 — не получилось, dotPeek создаёт код для более высокой версии C#. Но, судя по всему, защиты в программе нету и запустить её можно с минимальными допиливаниями (если установить VS посвежее, чего я делать пока что не хочу).

а это почти чистые исходники.

Да, я знаю :)
Несколько лет назад при помощи IDA Pro и еще чего-то я хакнул защиту в ней. Это оказалось несложно — при том, что я не занимался подобным >15 лет и всё позабывал.


Тем проще была бы задача. Но — гражданин всё равно отказался демонстрировать свои знания модификации программных продуктов без исходников.

Спасибо, уже.
В том числе писал патчи исправляющие баги в софте без исходников. Ничего, не умер.
А по-моему эта ветка про редактирование кода это глупый разговор о том, что «кто-то другой смог сделать что-то другое, учись» деталей же нет.
Как минимум видно что автор даже не пытался. Этого достаточно чтобы сделать определенные выводы. Ветка об этих выводах и указании как можно было хотя бы попытаться.
Изначальный тезис «прогу без сорсов не исправить» — ложный, с ним я и спорю.
А зачем пытаться что-то сделать через опу, если есть вполне легальные пути решения проблемы, по которым организация не идёт исключительно из жлобства отдельных менеджеров?
И да, при этом крайним будет не «менеджер», а программист.
А зачем врать, что работу сделать невозможно? Отказаться из каких-то соображений — ок. Врать непосредственному работодателю — ну такое.
С таким подходом возможно всё. И ракету для лунной программы в гараже собрать. Но зачем?
Я не понимаю вопроса.
Придет ко мне заказчик и скажет «Надо ракету на луну запустить.»
У меня три варианта ответа:
1) Это невозможно
2) Я это не смогу
3) Я это не хочу

Какие могут быть у меня причины выбирать первый вариант?
есть понятие целесообразности. если приложить достаточно времени, сил, средств и дури, то возможна практически любая дичь. Но часто гораздо проще таким ходокам с неадекватными хотелками сказать «невозможно», чтобы они перестали маяться дурью и решили свою проблему адекватным способом. Ну или признали, что их проблема — не такая уж и проблема.

Там еще вариант потерялся


4) У вас денег (времени etc) не хватит


И этот вариант часто формулируют "Это невозможно в текущих ограничениях". И его прагматики чаще просто уже превращают в "это невозможно".
Можно патчить экзешники и дллки ERP? Можно, конечно. Но чаще всего это плохая затея: поддержка таких решений может быть кровавой (ну ок, я сделаю, а что предприятие будет делать, когда я уйду?), такие инъекции могут быть недостаточно стабильными, сложно разворачиваемыми, при разработке можно внезапно уткнуться как в специально поставленные грабли (как, например, самопроверка целостности), так и в не специально (ха, что вы будете делать, если, там логика в матрицу переходов DFA зашита или, как в 1С, есть еще и своя компонентная модель в dll-ках отдалённо похожая то ли на IUnknown, то ли на IDispatch — сейчас уже не вспомню — не то чтобы фатально, но очень неудобно дебажить).
Более того — заказчики тоже знают, что "невозможно" бывает разное. И уточняют, что именно невозможно и насколько невозможно. В данном случае — не договорились. Бывает.

Есть ещё знание тех людей, с которыми работаешь. И зачастую руководство просто не желает вникать в тонкости автоматизации и учета, у них и своих забот хватает. Ну а по поводу заводского программиста — его задачи поддерживать работу всей системы в целом и обеспечивать что бы данные с производства попадали в бухгалтерию в виде цифр и директорам в виде красивых отчетов, а не переписывать коммерческий продукт, нарушая лицензию и получая много проблем за ту же зарплату.
Верно. Но это не повод утверждать что это «невозможно».
Видите ли, это вопрос не технической возможности. Это уже вопрос социального взаимодействия, и вот это вот вы никак не хотите понять. Вам, походу сильно везло в жизни…

Когда начальник требует поменять что-то в уже скомпилированном бинарнике — то переводя с руководящего на русский он вам говорит «Возьми и сделай так чтобы всё работало без проблем, уже завтра, за твою зарплату, и возьми на себя всю материальную ответственность за все возможные проблемы. При этом все плюшки получу я, как поставивший задачу.»

И, опять же переводя с руководящего на русский — любой ответ кроме категорического «нет, невозможно» будет засчитан начальником за «да, согласен», и он оттранслирует его своему начальству.

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

Ну х.з… Я 15 лет в професии. Никогда в голову не приходило врать руководству. И озвучивание ситуации вида «это пипец сложно будет» всегда воспринималось нормально.
Учитывая что я сменил достаточно много компаний — думаю здесь не вопрос везения, это вопрос адекватного выбора места работы.
Это не вранье. Это правильная подача информации.
Начальству неинтересны мелкие технические детали, ему надо давать четкий общий ответ — да/нет. Если этот ответ не воспринимается — валить.

И я в общем рад за то что вам попадались адекватные, но всё же не следует принимать везение за правило.
Ну х.з… Я 15 лет в професии. Никогда в голову не приходило врать руководству. И озвучивание ситуации вида «это пипец сложно будет» всегда воспринималось нормально.


25 лет в профессии.

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

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

Если же сразу честно называть все сроки — ни один столько-нибудь серьезный проект не получишь. Потому что твои коллеги-конкуренты тоже занижают оценки. И проект просто отдадут им.

Причем занижать оценки можно не по злому умыслу.

Ф. Брукс «Мифический человеко-месяц» — еще много десятилетий назад выведено, что программисты оценивают разработку пипец как оптимистично.
это невозможно ввиду законодательного запрета. Все трудовые отношения строятся на законе. Если руководитель ставит противоречащую закону задачу — то это невозможно и точка. Тут было 2 лица связанных трудовым договором, тот который сказал — «невозможно» не обязан объяснять почему. В рамках трудовых и законодательных отношений — это действительно невозможно. Что вас не устроило в его ответе? Он же не сказал, что это вообще невозможно технически. Вы же докопались именно до технической стороны.

А каковы начальные условия? Может быть, у вас нет ни Луны, ни ракеты ;)

Запрещено законом куда отнесёте?

НЛО прилетело и опубликовало эту надпись здесь
Я не понимаю вопроса.
Придет ко мне заказчик и скажет «Надо ракету на луну запустить.»
У меня три варианта ответа:
1) Это невозможно
2) Я это не смогу
3) Я это не хочу

Какие могут быть у меня причины выбирать первый вариант?

Например, если вы из предыдущего общения с этим заказчиком знаете, что ему нужно сделать это за 2 дня (сроки горят!) и заплатить он за это может не более 1000$ (потому что у него больше нет). В таком случае самым точным ответом будет «Это невозможно». И это означает не «Технически невозможно», а «Невозможно за требуемые сроки и с требуемым бюджетом».


Нет денег — предлагаем альтернативные варианты за имеющуюся сумму.
Например, стратостат — это недорого. Он выведет в практически космос видеокамеру, заказчик получит изображение земли очень напоминающее съемки Земли из космоса.
НЛО прилетело и опубликовало эту надпись здесь
А заказчику не нужен стратостат. Ему нужно высадить на Луну ровер, чтобы забирать лунный грунт, срочно надо. Крайний срок послезавтра. И не дороже 1000$, больше нету.

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


Ничего страшного.
Я тоже хочу работать 1 час в день за зарплату 1 миллиард рублей в месяц.

Просто поговорите с человеком. Найдите компромисс. Искать компромисс между людьми — это нормально.

Я это делаю регулярно:

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


Заказчик/руководитель может вовсе ничего не соображать в технических вещах — это ваша задача. Вас потому и нанимают за большие деньги, что специалист в сфере ИТ именно вы.

И именно вы должны предоставлять заказчику/руководителю технические обоснования, а не он вам.
НЛО прилетело и опубликовало эту надпись здесь
Заказчик/руководитель может вовсе ничего не соображать в технических вещах — это ваша задача.

Если заказчик признает, что ничего в этом не соображает и доверяет вашему мнению — это хорошо.


Но это же поле для злоупотреблений с вашей стороны.

Если нет никакого контроля — то ваши сроки/бюджеты будут завышены.

Конечно есть люди гипертрофировано честные.

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

Поэтому вменяемый руководитель просто проверит вашу оценку у другого специалиста.

А чтобы это сделать — вам нужно дать развернутое обоснование, а не просто «да» или «нет»
Просто поговорите с человеком. Найдите компромисс. Искать компромисс между людьми — это нормально.

вы должны предоставлять заказчику/руководителю технические обоснования

О каком компромиссе может идти речь, когда человек хочет ракету по цене китайского брелка, да еще вчера?
Он не обязан в технических нюансах разбираться, да. Зато обязан в финансовых, и не может не понимать, что условная ракета — это год работы коллектива в сотню человек.
А если не понимает — значит некомпетентен и не на своем месте. Зачем на такого тратить время, объяснять ему что-то. «Это невозможно». И всё.
О каком компромиссе может идти речь, когда человек хочет ракету по цене китайского брелка, да еще вчера?


Мало ли чего он хочет.

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

Заставить вас сделать то, что сделать невозможно — невозможно. Или вы раб, и вас плетьми будут бить за отказ? Семью в заложники возьмут? В чём проблема попытаться объяснить, что «невозможно»? Чего вы боитесь?

Из важного — если всё же не удастся убедить, то зафиксировать факт «что это делается под личную ответственность руководителя, вне согласия технического специалиста». Всего и делов-то.

Еще раз:

Из собственного опыта — я неоднократно повышал бюджет времени и денег до вменяемых. Просто в результате беседы.

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

Из собственного опыта — заказчик/руководитель осознавал в результате беседы невозможность реализации.

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


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

А если не понимает — значит некомпетентен и не на своем месте. Зачем на такого тратить время, объяснять ему что-то. «Это невозможно». И всё.


Имхо, технический специалист не способный технически обосновать, не способный ни на что кроме общих слов — встречается ничуть не реже.

А бывает ровно наоборот, он пытается давить «нет, мне надо именно так, я слышал что так можно»


Фраза «нет, мне надо именно так, я слышал что так можно» — в моём понимании хорошая отправная точка.
Отправная точка для беседы про сроки, про то, что там еще нужно для проекта (например, новый сервер) и пр. и пр.

«ты пытаешься меня развести на деньги»


Ну дык это правда. Нередко случается.
Пусть не всегда, но не исключительная ситуация.

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

Я частенько работу, что можно выполнить за 3 дня, оцениваю как 2-х недельную. Потому что могу, потому что меня никто не проверит. Это нормально человеку действовать в своих интересах. Владелец предприятия тоже не поделится со мной неожиданно большой прибылью, возникшей в каком-то месяце по стечению обстоятельств.
Еще раз:
Из собственного опыта — я неоднократно повышал бюджет времени и денег до вменяемых. Просто в результате беседы.

Алоэ, у условного начальника есть ресурс в виде одного человека. Он не может не понимать его ограничения, если он адекватен. И не может не понимать сложность того, что хочет. Потому что может спокойно нагуглить коммерческие варианты, стоимость их развертывания и численность компаний, которые их производят.
Если за него это должен делать и разжевывать программист — значит такой финдиректор опять таки липовый и некомпетентный. Договариваться с ним в отсутствие сопоставимой численности персонала — не о чем, а увеличивать штат — не в его компетенции. Это формулируется коротко и просто — «это невозможно».
Всё остальное есть суть непродуктивная трата рабочего времени.
Если вы не занимались банальным ремонтом квартиры начиная с черной отделки, то, бьюсь об заклад, вы не сможете оценить эту стоимость/сроки даже приблизительно, промахнетесь на порядки.

Два месяца и два сантиметра денег. «Под самоотделку» — это не банальное, кстати, а хардкор. Банальное — это «купить мебель и заезжать жить».
НЛО прилетело и опубликовало эту надпись здесь
Верно.
Только если бы тезис изначальный звучал как «Невозможно выжить, если не пристегиваешься».

Я вот сторонник пристегивания.
Но если появится человек утверждающий «невозможно выжить в ДТП, если не пристегиваться» — я назову его некомпетентным и буду с ним спорить.
Автор сделал совершенно правильно.

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

Потому что 146% а)такой начальник тебе за эту работу не заплатит соразмерно затраченным усилиям б) сделает тебя виноватым во всех проблемах которые обязателньно вылезут после такой правки в) есть нехилая вероятность стать козлом отпущения и неиллюзорно присесть за такие правки.
НЛО прилетело и опубликовало эту надпись здесь
По разному. Сильно зависит от задачи.
Вон автор говорит, что там надо логику расчетов менять.
В такой ситуации можно внешнием модулем просто память напрямую редактировать, а этому практически никакая защита не помешает.
Можно и гланды через анус удалять, но а) зачем, когда можно по нормальному и б) так себе это работа во всех смыслах.
Я бы себя уважать перестал после такого.

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

Это как? Заплатить 50 миллионов за 10 лет лицензий на завод, вместо оплаты работа программист на месяц? )

так себе это работа во всех смыслах.

А с этим поспорят десятки тысяч программистов у которых работа сводится к анализу и правке скомпилированных приложений.

какой-то хрен с горы сэкономил на лицензии

У вас странное представление о бизнес процессах в компаниях. Этот хрен с горы не сам деньги платит. И в целом вся работа сводится к тому, чтобы какой-то хрен с горы деньги получил. Никакого отличия от любой другой работы.
тут скользкий вопрос. по сути, ХренСГоры оставил контору без лицензий (типа, съэкономил деньги). Эта экономия средств привела к тому, что продукт (возможно, легально купленный, но без оплаченной поддержки) перестал выполнять свои функции. Для того, чтоб продукт актуализировать — нужно заплатить деньги. а деньги уже «съкономлены», поэтому либо нужно актуальный продукт «украсть», либо нагрузить штатного программиста, не отвечающего за этот продукт.
Если для работы продукта требовалось 50 миллионов в течение 10 лет, а их не платили — не кажется ли вам, что продукт слегка украли?
Мораль истории за пределами моих рассуждений. Я только про техническую возможность и высказывания автора.
Техническая возможность — это тоже штука скользкая. я вот сейчас реверсить ничего сложнее контроллера не возьмусь. хотя в юности операционки реверсили (cp/m, МикроДОС). Т.е вроде и есть возможность, и делал — но вот сейчас не возьмусь.
Ну и ответственность — для себя могу и «пропатчить КДЕ», а для завода — сто раз подумаю. тут вот упоминали «гиперответсвенность». поэтому когда из-за меня (ну, из-за моего отдела) вставала работа — для меня это был _личный_ вызов, личный факап…
Ну хорошо. Это не отменяет технической возможности таки сделать.
Если продукт куплен, то есть право его редактировать. Так что не украли, никак не украли, в т.ч. не украли слегка.
Расскажите об этом John Deere
Тут как бы вопрос не в способе нарушения чьей-то интеллектуальной собственности. Тут насяльнике сэкономил денег, и для пущей экономии отправляет Джамшута чинить высоковольтный трансформатор (тыж электрик?). В случае чего — никто никаких распоряжений не давал, он сам туда полез.
А что не так с ними? Они запрещают редактировать своё проданные копии?
habr.com/en/search/?q=John+Deere#h
Они запрещают ремонтировать самому купленную у них технику
Если продукт куплен, то есть право его редактировать.

Это законно только в России в рамках ГК РФ Статья 1280. Право пользователя программы для ЭВМ и базы данных.
В США нет.
Так мы не в Америке живём и разговор про наши реалии был.
А софт был куплен в Америке, вроде как Oracle упоминался, так что вы будете соблюдать их законы тоже
Ничего подобного, и пользователи Windows XP Home edition не дадут соврать, когда редактированием записей в реестре она превращалась в XP Pro. Но с лицензионной точки зрения — это было нарушение и любая проверка вас бы оштафовала.

Больше чем уверен, что в члучае ERP там в EULA написано, что любая модификация запрещена
Это как? Заплатить 50 миллионов за 10 лет лицензий на завод, вместо оплаты работа программист на месяц? )

Например, да. Но ERP за месяц не делается. MVP займет полгода времени в самом оптимистичном случае, если у нас есть десяток мидлов, парочка сеньоров, тимлид, три куалы, главкуала, и пиэм. И бюджет в 20 млн на эти полгода.
А через год ERP можно будет смело пускать в полномасштабнуую эксплуатацию.
И мы даже сэкономим 10 млн.
А что важнее — дальше не нужно будет сношаться с патчингом бинарного кода, будут исходнички, и она будет своя, родная. Правда, придется еще админов и девопсов нанять, так что расходы вырастут до 5 млн в месяц только на ФОТ, но у нас же завод, серьезная контора, а не какая-то шарага.

Хотя постойте… Если в ИТ-штате один программист от которого требуют ERP за месяц и без исходников — то все-таки шарага. И он правильно сделал что уволился — такие шараги должны гореть синим пламенем.

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

Не знаю ни одного такого. Вирусные аналитики вот имеют с ними дело, знаю. А программисты — нет. Вот с исходниками — сколько угодно.
У вас странное представление о бизнес процессах в компаниях. Этот хрен с горы не сам деньги платит.

Да нет, это у вас странное представление. Я-то с этими вашими ERP наелся по уши еще 20 лет назад. Из этого была даже выведена простая эмпирическая аксиома — «внедрить ERP невозможно, а разработать собственную — непосильно». Это просто способ удовлетворить закидоны руководства. В основном — для того, чтобы толстые серьезные дяди смогли посмотреть как у них сходится дебет с кредитом и где можно порезать косты.

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


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

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

Ага. Потом он умирает в середине нулевых, т.к. уже старенький, 60 лет — и ни документации, ни исходников. И предприятие встает колом и заслуженно материт покойника.
Это из личного опыта.
НУ это они зря. Ругать тут стоит не компетентное руководство.

… это смотря какой бинарник… бинарники разные бывают. И это вам не в hiew-шке пару байт переставить чтобы золото бесконечное было…

Любой. Вопрос только в затраченном времени.
Если задачу можно решить имея исходники, её можно решить не имея исходников.
сложность растет очень нелинейно в зависимости от объема задачи. Начиная с какого-то момента задача становится практически нерешаемой за разумное время. Теоретически решить можно, но решение будет уже никому не нужно. А значит это неприемлемое решение. Даже с исходниками-то не всегда удается понять что там имели в виду изначально
НЛО прилетело и опубликовало эту надпись здесь
В бизнесе когда ты отвечаешь возможно или невозможно — ты опираешься на то, есть ресурсы на решение задачи или нет.
Если стоимость твоего времени, которое надо потратить на эту задачу, в разы превышает стоимость требуемых лицензий на поддержку, то ответ «никак не выйдет поменять» — вполне допустим.
Неспециалист далеко не всегда сможет корректно оценить сложность задачи даже после детальных объяснений.
Исходные данные:
1. твоя ЗП… допустим 500К в месяц(!) (в реале 50К)
2. 1 час простоя линии завода — лям
3. 1 несданный вовремя финансовый период — 10 лямов
4. Неявные ошибки в финансовом периоде — 40 лямов с шансом присесть по УК

Правка бинарника энтерпрайз-системы завода? Да без букса, чо
Но ошибки не за мои же деньги, ведь так? По твоей логике — да

Какой ответ должен быть? Нет, это невозможно. Отвечать должны разработчики. Точка
зачем наёмному работнику заниматься воровством для дяди?
Поменять один откомпилированный исходник на другой — запросто.
Люди Word запросто меняют на LibreOffice Writer
Вот ВНЕСТИ ИЗМЕНЕНИЯ в откомпилированный код — намного сложнее.
Сначала прогнать дизассемблером, изучить и понять логику (особенно круто, когда кода — сотни мегабайт). Затем найти проблемное место и поменять логику.

Особенно круто, когда код написан на промежуточном языке и в код встраивается транслятор этого языка — угу, платформа дотнет для языка сишарп примерно это самое и представляет. Вызов функций библиотек дотнета осуществляется не на бинарном уровне. Просто код снаружи оформлен как бинарный, а внутри…
То же самое касается транслятора Java, весь промежуточный код которого выполняется внутри виртуальной машины — ты Eclipse не пробовал дизассемблировать?
Ну ладно, у него и так исходники открыты. Но есть ведь и другие примеры.

При наличии исходных текстов — запросто: внести изменения и перекомпилировать заново.
А вот при их отсутствии — только реверс-инжиниринг.

P.S. А твой метод не меняет существующий код, а встраивает новый.
Я так в своё время с DOS Navigator баловался: перед запуском он проверял нажатие клавиши и если что — не запускался. Изменения в dn.com я делал в AFDPro — это был 1996-й год.

P.P.S. Я не говорю, что это невозможно, но лично мне подобная задача кажется достаточно сложной. Тем более, мы не знаем, что там за проект и на чём написаны исходники.

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

Там проблема, что начальник просто редкостный мудак, а не в дисассемблере.

Поправка: не «поменять бинарник», а «внести изменения в бинарник».
Если честно, внести изменения в бинарник довольно просто.
Сложно понять логику программы и определить, какие изменения следует внести. И куда.

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

«Я вообще программист и это не моя работа; ищите вообще специалиста по реверс-инжинирингу или покупайте официальный продукт и требуйте у производителя переделать его под свои хотелки.»
Нормальный ответ?
Не дверями ли занималось оное предприятие?

Нет

Хочу продолжение истории! Что там с заводом и «умными» руководителями?
Ничего. Продолжает как-то работать. В лучшем случае нашли специалистов, которые всё довели до рабочего состояния. В худшем — перешли к режиму работы «до введения автоматизации».
Очередная статья от «чукчи-писателя» для подрыва пуканов. Жду минусов в карму )))

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

Так вот именно по этому он и утырок

Потому что не захотел взваливать на себя лишнюю ответственность за результат? Так и не должен был.
Потому что не пошел с этим сразу к директору?
Я бы не стал требовать от линейного разработчика анализа уровней ответственности в напряжённой ситуации и умения пойти об этом поговорить с высоким начальством. И уж точно не стал бы называть его утырком на основании этого.

Можно посмотреть на ситуацию по-другому: ответственность за проект возложили на разработчика, а полномочия предоставили лишь частично. Где проблема? Там, где полномочия и ответственность предоставляются, а не в исполнителе: первая ошибка в том, что проект закреплен за человеком, который заведомо не может его нормально выполнить, вторая — в том, что если бы он даже мог, он бы не смог это сделать из-за недостатка полномочий. Еще одна ошибка, уровнем выше, в недостаточно качественной оценке качества предоставленного решения, из-за которой и произошли две предыдущие. Все три ошибки — на уровне руководства.
Потому что не захотел взваливать на себя лишнюю ответственность за результат? Так и не должен был.

Так он же взялся за гуж, а потом сказал, что не дюж — и свалил.
Дык он так и сказал. Вместо него включили подрядчиков, и они построили красивую, но нерабочую систему.

Такие посты — просто перепись мудаков с самомнением.

Программист на этом заводе: image

Руководящий состав завода: image

Очередная сказочная история, про гипер-ответственного программиста и дурака-директора
(в жизни чаще наоборот, откровенные дураки высоких должностей не занимают)

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

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

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

Да ну что вы, как правило всё строго наоборот.
НЛО прилетело и опубликовало эту надпись здесь

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


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

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

ну дык у вас там особая садо-мазо игра. Причем тут умный-глупый.

НЛО прилетело и опубликовало эту надпись здесь
Надо было просто иметь выдержку в стиле: «У вас же ребятки приезжие все сделали на ура. А у них умная система, в которую я лезть боюсь. Куда мне до тех ребят. Мое дело — картриджи заправлять.» В итоге — сэкономил бы свои собственные нервы, руководитель бы понял, что «сам дурак», а остальные бы поняли, что ими руководит ненаигравшийся ребенок, а не серьезный менеджер.
Ну это со стороны так просто. И с опытом. А обычно происходит так:
"-О, ребята вроде крутые, а система такая простая, сча, я быстро разберусь…
(1 день спустя) -Не, они, конечно, понаворотили тут всякого, но починить можно, сейчас, отчитаюсь, что все будет готово, и сделаю…
(1 неделю спустя) -Блин, что за уроды делали этого неработоспособного франкенштейна, зря я подписался под то, что это будет работать, тут же на годы работы исправлять все это…
(1 месяц спустя) — АААААААААААА!!!!!"
Ну это со стороны так просто. И с опытом.
Не спорю. Именно опытом я и делюсь.
Сам был в такой же ситуации. И не раз. Но тут нужно найти баланс между «чтобы не уволили» и «чтобы го%но разгребал его автор или инициатор». Но в результате виноват ты, так как занимался вопросом. Теперь, чтобы иметь для себя своего рода страховку, я выстраиваю диалог с руководителями так, чтобы они сами сняли с меня ответственность. А потом говоришь: «Мы же с Вами говорили на эту тему. Вы сказали так-то и так-то.»
А он тебе в ответ: я такого сказать не мог.
Случай из жизни, одно время, почти каждую пятницу слышал эту фразу в течении 3 лет, иногда она была адресована мне.
Поэтому приходится акцентировать внимание на подобных вещах.
я такого сказать не мог
Ну, а уж если такое происходит систематически, то следует что-то менять. Такой чувак и отпустить к врачу может, а потом прогул напишет. Хотя скорее всего ему не позволяло признать вину собственное эго. У меня был противоположный случай: чудак говорил «Мы это обсуждали». «Когда? Мы только договаривались это обсудить.(Выдерживаю паузу) Тогда напомни, что мы решили по такому-то вопросу?!».
Эго там зашкаливало, вы правы. Оно никогда не позволяло признать свою вину, даже в мелочах, виноваты всегда были другие: не так сделали, не так поняли и т.п. Выбирая что изменить, выбрали вариант «сменить работу».
чудак говорил «Мы это обсуждали».

С такими, слава богу, не сталкивался. Даже представить не могу, зачем можно уходить от обсуждения.
зачем можно уходить от обсуждения.
думаю потому, что в этом случае нельзя было взвалить ответственность на него. Или сам подумал никому не сказал, обговорил с кем-то другим, сам со мной обговорил у себя в голове. В данном случае вероятен второй вариант, так как был подрядчик на работах. А не захотел обсуждать потому, что много рисовался (просто га№%он был в этом), ибо был устроен по блату. И также вину свою признавать не хотел. Тут уж нужно «выдержать» несколько атак и не пасовать, а наоборот давать отпор, причем «борзый»(либо другая неожидаемая реакция). Впрочем, не во всех ситуациях такой вариант подходит. Такие товарищи умеют нападать, а вот ответный удар держать — нет.
выбрали вариант «сменить работу»
Это прискорбно. К сожалению, положение обычных работников в нашей стране к выбору других вариантов не располагает. Но по-другому никак — будут просто выживать с работы, всю психику испортят.
О да, с резиновыми изделиями тяжело, они всегда считают, что все им должны. Даже не подумал про такой вариант.
Это прискорбно.

Да не сказал бы. Сменить владельца бизнеса невозможно, особенно когда ему 60+ и он профессор.
К сожалению, положение обычных работников в нашей стране к выбору других вариантов не располагает. Но по-другому никак — будут просто выживать с работы, всю психику испортят.

Зачем есть кактус? Особенно когда есть другие, готовые купить твое время. Не нравится? Уходи. Будет много уходов, либо привыкнут к текучке, либо будут что-то менять, а может так и было задумано и ты просто не вписываешься в новый «стиль работы».
Зачем есть кактус?
Дмитрий, ситуации бывают разные. Девушки, вышедшие из декрета (да и не из декрета — говорят «Вы же в декрет сразу уйдете.»). Студент без опыта работы и без профессиональных связей. Инвалиды. В конце концов просто забитые люди, которые боятся проявить инициативу в виду своего психического состояния. У них итак не все гладко, а еще и работу найти изначально сложнее. Им придется и приходиться терпеть.
Реально там проблема только при наличии крупных долгов, типо иппотеки. Большая часть остальных лечится психологом. Остаются пограничные лучаи, которые я не рассматривал, так как shit happens и от чудаков на букву М тогда никуда не деться, с этим я полностью согласен.

Но когда люди без серьезных проблем зачем-то терпят неадекватные условия работы, этого я не понимаю, а это встречается довольно часто. Либо конечно прибедняются, эта привычка у многих есть, а на самом деле их там все полностью устраивает. Ну и пограничный случай: человек латентный мазохист.
Совершенно не ясно, зачем этот программист в это вообще ввязался — надо было уходить сразу же по обнаружению критических расхождений с руководством, понятно же, что его в любом случае сделают крайним.
Это в общем-то не только данных ситуаций касается, когда у тебя критические неразрешимые или неразрешаемые (при внешней схожести это несколько разные вещи) расхождения с высшим руководством, то надо уходить самому как можно раньше, смысл биться в закрытую дверь?

Навык распознавания подобной ситуации приходит с опытом, не всем и не всегда это "понятно сразу же". Вот и всё

Я примерно в такого уровня ситуацию встрял на первом месте работы, но через 4 месяца убежал фактически.

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

Я могу объяснить такой подход.
Программист работал не на дядю, а на Завод. Завод тоже живой (как и любое другое предприятие) и бывает так, что некоторые люди чувствуют ответственность за "чужую" жизнь.

Я знаю, я работал «программистом на заводе».
Но в данном случае этот программист (если он конечно существовал), он принёс Заводу куда больше страданий, чем если бы ушёл сразу же.
Разверну — уйди он сразу, ну не встало бы там всё колом, начали бы в экселе распашонки клепать (кстати совсем не шутка, знаю я и такой завод) и вручную бумажки на каждую операцию печатать, а потом ручками сводить. Дальше бы и куроводство подтянулось бы, мы ж не знаем, что там было на самом деле, возможно директору навешали лапши на уши — это деньги были только за систему, а за внедрение он финансы зажал. Или был введён в заблуждение и не хотел иметь бледный вид перед владельцами бизнеса. Много вариантов на самом деле.
И что делает наш программист? Он ситуацию резко ухудшает — вместо того, чтобы поставить всех перед фактом «это не работает и я тут не причём», он по сути замыкает бизнес-процессы на себя (возможно так он может продолжать чувствовать себя незаменимым «заводским программистом») и возводит вокруг всего этого бастион из говна и палок, в котором без бутылки кроме него никто не разберётся. И вынуждая ВЕСЬ Завод работать в этом ущербном режиме — по своему веленью, что характерно, это НЕ нормально, такого не должно быть никогда и нигде. И вот лишь когда у всех окончательно лопнуло терпение — и вот только тогда этот нарыв вскрывается. И в общем-то уволили его совершенно закономерно.

Возможно. Но про "ситуацию резко ухудшает" — мне кажется мы читаем разные статьи.
Я вижу, что человек не дал прерваться круглосуточной жизни завода.
Даже поняв, что проиграл "вглухую" все партии "высшим" силам.


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

P.S. Программист был рад, что его уволили. Сам не уходил, потому что чувствовал ответственность, или даже гиперответственность за происходящее на заводе.

Я верю, что люди могут чувствовать гиперответственность

Ну да, разные. Его всё равно уволили и завод всё равно встал.* Только встал он уже на том, что нагородил он, а не на том, что нагородили без него.
*хотя по описанию в данной байке он не встал бы в обоих случаях, просто благодаря «гиперответственности» конкретного человека целый завод страдал фигнёй какое-то определённое время, которое как известно деньги.

Я верю, что люди могут чувствовать гиперответственность

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

Так было же в тексте предложение сделать его не-линейным сотрудником. Хопа — и уже "разрешённой" ответственности стало больше. Чем плохо?

Так было же в тексте предложение сделать его не-линейным сотрудником. Хопа — и уже «разрешённой» ответственности стало больше. Чем плохо?


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

А что редкая ситуация прямо такая, когда программист ходит на совещание руководителей подразделений, работу которых автоматизирует? Руководителю компании надоедает, что каждый из руководителей подразделений не может ответить на вопросы, назвать сроки и т. п. касательно автоматизации и приходится или откладывать вопрос или 10 раз за совещание звонить этому программисту. И уже приглашают заранее. Хотя формально он всё ещё "программист прикладной" и основная обязанность — писать код. Ну и руководители во фразе "я могу сделать эту фичу за день/неделю/месяц, просто чтобы работало, но перед любым изменением нужно будет ещё 2 раза по столько чтоб потом любой программист смог поддерживать" слышат только первую половину. Вот и становишься таким вроде бы линейным сотрудником, в компании на 1000+ человек, но который на многих оперативных и даже стратегических совещаниях руководство присутствует, вносит предложения, участвует в разрешении конфликтов подразделений, и подчинён де-факто руководителю компании напрямую. А в курсе проблем они только на уровне "ну да, но работает же пока, кое-как, а если что ты починишь же, да? потом будет время и сделаем нормально, может даже помощников тебе возьмём, мделай тебя руководителем разработки. но пока ни времени, ни денег нет, можешь идти, дальше мы без тебя"

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


Понял одно — Вы бы его уволили. Надеюсь, что когда-нибудь у Вас будет такая возможность.

Интересная байка. А как всё на самом деле было?

Пришел новый эффективный "менеджер" нанял новых подрядчиков с жёлтой программой и все заработало как у всех

"Так а что дальше? "


Программист не вынес позора и сделал сепукку. И директор тоже сделал сепукку. И все менеджеры тоже. А рабочие организовались в клан ниндзя.
Басня есть, а морали нет.

А на сплешскрине erp-системы теперь красуется цитата: «У самурая нет цели, есть только путь»
НЛО прилетело и опубликовало эту надпись здесь
P.S. Программист был рад, что его уволили. Сам не уходил, потому что чувствовал ответственность, или даже гиперответственность за происходящее на заводе. Через неделю работал на новом месте, с большей зарплатой.
да он просто лох, раз сразу сам не ушел.
В этой статье прекрасно все
НЛО прилетело и опубликовало эту надпись здесь

Жаль только, что это байка.

Каждый работник предприятия решает задачи в рамках своей компетенции и только отдел информационных технологий представленный одним программистом плачет горючими слезами. А всего лишь у программиста появилась 100% загрузка на все 40ч в неделю. Это время оплачено в согласованном с программистом объёме. А криков-то, будто его там плетьми порют.

Вам там выше написали, что ковыряние чужих бинарников — не компетенция программиста. Ни разу.
Программист из рассказа и не ковырял. Он поддерживал как мог и даже вполне получалось.

Один мой знакомый, работавший на заводе, говорит, что подобный программист, в одиночку тащуший целый завод, может получать по 300-500к в месяц. Там действительно такие зарплаты?

НЛО прилетело и опубликовало эту надпись здесь

Может. Пародокс в том, что только на данном конкретном заводе только он и может получать. Нигде больше ему столько не заплатят и никого на его место, случись что, за такие деньги не возьмут. Возьмут на меньшие, но возможно не одного, чтобы опять не завязывать работу завода на одного человека. Но очень вероятно, что через несколько лет опять попадут в такую ситуацию.

Сторонняя организация внедряла систему, вот пусть и занимается поддержкой. Всё остальное от лукавого. Местный программист сам себе нашёл ворох проблем на ровном месте.
Возможно, если бы сторонняя организация осуществляла поддержку данной системы, то услуги данного программиста были бы больше не нужны.
Странно что программист не ушел после первого, максимум второго прецедента. Это не гиперответственность, это уже граничит с болезнью.
Там не было речи что у него низкая зарплата, вероятно что в целом не так плохо было, тут же со слов стороннего наблюдателя. Может хороший коллектив, высокая востребованность, полный хозяин всего проекта, свобода действия на своем уровне, получение опыта как программиста, так и организационного. Проблема только руководитель с не корректными ТЗ. Возможно откатятся к предыдущей системе с ручным вводом показаний и начнут автоматизировать с учетом предыдущего опыта. Директор уже будет смотреть не только на «красоту», но и на то как поддержка организованна или полностью делегирует это на отдельного ИТ менеджера.
Подобные истории часты при внедрении ERP систем на предприятиях. Вкладывают достаточно крупные суммы, но не могут довести до рабочего состояния по разным причинам.

Одна из них: местные программисты не заинтересованы во внедрении

НЛО прилетело и опубликовало эту надпись здесь

Не стреляйте в программиста, он играет, как умеет и стреляет лучше вас :)

Но вердикт вышел другой – «вот видите, его надо уволить». За что?! Разумеется, за то, что система красивая. Но не работает. И виноват в этом программист.


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

Проверил.
Да, так и есть.

В данном же примере:
Человек прогнулся под указания — и оказался козлом отпущения.
Что и логично — откуда руководство предприятия, дающее указание сделать то то и то то, может знать в реальности что это сделать невозможно.

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

Если ты не можешь этого сделать, то с тобой не считаются, что и логично.
Если руководство фонтанирует бредом и не готово слушать тебя как специалиста, то ну их нафиг, вакансий много.
Заметил, что истории где программист попадает на завод — самые интересные. После этой хорошо заходит про колбасное производство и «великие цели».
… уволился бы еще в начале шухера, за нежеланием ростить себе головняк на ровном месте…

Напоминает историю про Левшу, блоху и эффективного менеджера ;)
Всё уже было, если не в Южном парке, то в русской классике :)

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

Оффтоп и флейм это

Статья получилась назидательная, но сложно поверить, что где-то есть такие глупые руководители, которые не способны выслушать подчиненных. Может у вас в мире 1с такой ад.
Обычно мои руководители сами в случае какой-то проблемы спрашивают «Почему произошёл факап? Что можно сделать, чтобы он не произошёл больше? Какие ресурсы тебе нужны? Назови срок, который тебе нужен, чтобы защититься от подобного?»
«Мир 1с» очень многообразен. в нем встречаются очень разные руководители, просто «участники событий», разной степени причастности, да и 1с-ники бывают тоже очень разные.
О бедном программисте замолвите слово…

Директор, конечно, самодур и дурак, но и программист, мягко говоря, сам влез в этот омут (и оказался в итоге виноватым).

А чего им обоим не хватает?
Грамотного проектировщика!

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

И скажите теперь, где, в каком месте, здесь присутствует его величество проект? В «красивой картинке» в голове у директора? Нет, это просто образ. В работе подрядчиков? Тоже нет. Они за немаленькое бабло сделали красивый симулякр и свалили (от греха). В жалких и героических попытках программиста оживить этого кадавра? Так ведь тоже нет.

Проекта НЕТ!

Его не было изначально. На уровне плана. Его не было в процессе написания программы. Его нет и не было в деятельности бедного программиста. Никто не знает, ЧТО именно должна делать эта система ЦЕЛИКОМ. И как она должна функционировать, как система.

А отсюда и все беды.

В договоре на работу подрядчиков, нет? Бюджет, сроки, суммы и критерии приёмки — это не проект?

Увы, нет.
Проект — это «образ». Образ того, что должно быть и как это должно работать. Схема, если хотите.
Вот критерии приёмки, в той или иной степени, к проекту имеют отношение, но всё зависит от того, кто предъявляет эти самые критерии для приёмки и в чём именно они заключаются. Если это «хотелки» одного лишь начальника (в данном случае — директора), то это, извините, никакой не проект, а всего лишь «картинка», типа, сделайте мне красиво, чтобы было как за границей.
Это — не проект.

Чтобы было понятней.
Допустим, наш директор побывал за границей и увидел там самолёт (предположим, что он их до этого никогда не видел). Вернулся он назад и приказал сделать себе такой же: чтоб летал!
Сказано — сделано! Нашлись подрядчики и сделали ему «самолёт» — и он — летает! Всё, как заказывал.
А дальше он этот самолёт передаёт эксплуатационникам и говорит, что там — за границей — на нём и людей возят и грузы разные, короче, лепота — и чтоб вы так же делали. А те — не могут… Почему? А потому что самолёт для этого не предназначен. Он — чтоб летал. И чтобы красиво…

А вот для того, чтобы самолёт не просто летал, а чтобы грузы там всякие перевозил, людей, опять же… нужен ПРОЕКТ, причем конкретный, с характеристиками там разными: скорость, грузоподъемность, манёвренность и т.д. и т.д. И чтобы на выходе реальный образец всем этим заявленным характеристикам соответствовал бы.
Вот это и есть ПРОЕКТ.

А так — это просто слова, ну или вот как в данном случае — красивая картинка в башке у директора. Но это — не проект.
Только хотел об этом написать, поэтому просто поддерживаю!!!
По этому же поводу у меня вопрос к автору. Статья понравилась и даже очень! Описание практического применения программных средств, да еще на производственном предприятии — это большая редкость. А вопрос в следующем: почему Вы сразу не провели аудит проекта или хотя бы знакомство? Сами же написали
Третий круг ада пришёл, откуда не ждали – из плоской таблицы со штрихкодами. В качестве демонстрационного стенда она смотрелась неплохо, но в реальной работе очень быстро вылезли все ошибки проектирования, и в плане техники, и в процессе использования.

Ведь очевидно, что проблема в проекте или его реализации. Почему же терпели до «третьего круга ада»? И почему в статье о проектировании более ни слова?
Программист тоже хорош! Кто принимал систему? Почему не участвовал во внедрении? Кто подписывал протоколы тестирования и акт приемки? А было ли вообще тестирование?
Я понимаю, что администрирование проекта, даже простой доработки, это нудно, не интересно, отнимает много времени. Но ТЗ на доработку — это не только защита от нападок руководства, но и заказчик прежде, чем подписать его, хорошо подумает зачем и как!
Проект, даже на простенькую доработку, даже в одну страницу — это те самые «семь раз отмерь — один раз отрежь!».
Проектируйте, господа, проектируйте!
Почему же терпели до «третьего круга ада»? И почему в статье о проектировании более ни слова?
потому, что иногда штатных сотрудников (программистов, торговиков, закупщиков, логистов — любую службу) ставят перед фактом: теперь будет так! (офис переезжает; или доставка будет только фурами; или пропускная система и штраф за опоздание; или внедряем ERP). Да, самодурство. Иногда — бывает полезным, иногда — вредным. Но, увы — это факт. Иногда топ или собственник «переболеет», все вернется. иногда — убеждают подойти к вопросу нормально — с проектом, регламентами и инструкциями, с бюджетом и планом перехода… Но, к сожалению, не всегда…
Все, что вы описали, знакомо, и встречается довольно часто. Но есть такая штука, как проектное управление. Это не просто метода написания текста проекта. Это методология разруливания любых жизненных ситуаций. В том числе и самодурства руководителя. Правда для её познания надо уметь не только кодить. А в универе надо было еще посещать нудные лекции нудного препода по проектированию систем. А на практике не спрячешься за новомодный эджайл со скрамом. В статье как раз описаны работа по этому манифесту, когда «Изменение требований приветствуется, даже на поздних стадиях разработки», а «Работающий продукт следует выпускать как можно чаще». Так-что в описанной ситуации все нормально.
А если серьезно, то, если этого несчастного программиста самодуры поставили перед фактом, как Вы говорите, то он должен воспринимать эту ситуацию, как новый проект. И далее действовать по методе проектного управления. Т.е. писать бумажку на инициализацию проекта. И там описать все последствия и риски. Как отреагирует Ваш самодур, не известно, но программист всегда может прикрыться этой бумагой. Поверьте действует! Да и самодуров на самом деле не так уж и много.
Да, без бюрократии жить невозможно! И так будет всегда.
Поэтому проектируете, коллеги, проектируйте!
Да известно это все. И — что странно — хотя кафедра была как раз «систем», лекции по «теории систем» мы (вчетвером, емнип) посещали на совершенно другом факультете, чем вызывали у тамошних то, что называется нонче «баттхерт» и «когнитивный диссонанс».
«воспринимать как новый проект...». да ему просто скажут: чувак, какой проект, какой устав проекта, какие риски — тут уже всё за тебя сделали.
принимай и сопровождай.
Программист тоже хорош! Кто принимал систему? Почему не участвовал во внедрении? Кто подписывал протоколы тестирования и акт приемки? А было ли вообще тестирование?

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


Я участвовал в подобной роли на подобном проекте. Проект был, всё как положено: цели, сроки, спонсоры, руководитель, заказчики, проектный комитет, заинтересованные лица. Вот только меня, такого программиста, единственного кто знал в деталях как операционная ИС предприятия работает, в число лиц, подпись которых должна быть на актах не включили. Только право писать замечания, сначала самому подрядчику, а потом и этого лишили, менеджеру с нашей стороны можешь сообщить и всё. Почти три года внедрения при мне, под конец разговоры, что такая "коробка" нам плохо подходит и, наверное, надо развивать таки существующую систему, а затраты на внедрение списать как убытки. Но недотерпел и ушёл: какая-то система у вас есть, деятельность почти не блокирует

Бывает! Я могу только посочувствовать. Но странно почему к Вам так отнеслось Ваше руководство? Тем более, что Вы были единственным,
кто знал в деталях как операционная ИС предприятия работает.

Ушли и это правильно! Теперь стало лучше? Нашли правильное руководство?

Наверное, потому что никакого желания лезть в административно-менеджерские задачи на тот момент не выказывал. Типа моё дело код писать, скажите что он должен делать и я напишу. Хорошо бы озвучить какую конкретно бизнес-задачу решаем — может предложу вариант получше, но нет так нет.


А теперь сам стремлюсь стать руководством :)

Во, как! И это правильно. Только учитывайте, что уже Ваш программист будет думать о Вас? Как бы не нарваться на зеркальную ситуацию.

Учитываю, конечно.

Но странно почему к Вам так отнеслось Ваше руководство?

Был в похожей ситуации. Когда началось ВНЕДРЕНИЕ, начал задавать неудобные вопросы. Больше меня на совещания не приглашали.
Всегда вначале обсуждаю Кто, конкретно будет пользоваться моими обработками и отчетами. Это очень важный вопрос, потому что обжигался. Если люди толковые, то одно удовольствие для них писать и стараться. Что-то подправлять, что-то улучшать. Потом одни спасибы и премии.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории