michaelkoloboff: (Default)
[personal profile] michaelkoloboff
А я вам скажу почему программирование по ТЗ не работает. Потому что у исполнителя нет ни малейшего понимания процесса для которого он пишет. И это не только программистов касается.
Возьмем мой пример - монтаж компонентов. Грубо говоря есть 3 участника процесса: 1. Дизайн; 2. Производство; 3. Монтаж.
Дизайнер платы никогда на реальном производстве не был, изучил PCAD по серии книжек для чайников, и начал что-то рисовать на экране. Даже научился делать гербер-файлы просто как обезъяна выставляя параметры, рекомендованные производителем плат, в конце концов на его платы условыный резонит не плюется и он получает то что нарисовал. И паяет руками.
Когда эта плата попадет на монтаж ко мне - скорее всего я заебусь ее собирать, ибо нет реперов (производитель ПП не сказал - ему это не надо), компоненты не имеют точек Pick-and-Place - мне придется координаты каждого компоненты выставлять руками, если есть PnP - сами компоненты развернуты как было удобно дизайнеру, а не как они на ленте, значит все диоды окажутся включены в обратной полярности, и это тоже надо будет руками проверять прямо на станке, потом мне тупо не хватит емкости питателей, ибо под каждые 0.1мкФ 6.3В, 10В, 16В и 25В мне нужен отдельный фидер - дизайнер же не в курсе этого ограничения и т.д. Еще и ВОМ будет выполнен по ГОСТу что затрахаешся заказывать. Это что касается дизайна.
Но даже когда дизайн хороший, между нами есть еще производитель ПП, который тоже не в курсе моего производства. Он герберы получил, платы сделал, с гербером совпадает - к пуговицам претензии есть? А у платы нет технологических полей - мне ее не закрепить ни в принтере ни в установщике. Глобальные реперы на групповой заготовке не сделаны - он использовал локальные от дизайнера, и после нанесения пасты установщик не найдет черный репер на черной плате. Трафареты вырезали не по дизайнерским слоям пасты (кстати, дизайнеры в курсе как это сделать?), а по их внутреннему убеждению. Да, когда я заказываю ПП к ним в комплекте идет еще куча файлов:
1) собсно герберы платы
2) описание платы (материалы, размеры, акцент на особенностях, куда доставить, кому звонить с вопросами и т.д.)
3) герберы для изготовления трафаретов
4) чертеж групповой заготовки, со всеми полями, позициями реперов и проч.
5) к чертежу идет 5 файлов картинок чтобы наверняка - каждый угол заготовки и узел совмещения плат.
Это работает, не с первого раза, но худо-бедно удается объяснить (тем кто хочет понять). В конце концов в это ТЗ ткнешь носом, без разговоров переделают за их счет. Но время уже потеряно.
И щас вы скажете, ага! Хорошее ТЗ все решает. А вот нихуя. В эту кучу файлов вошло только то, в чем взгляды монтажника на процесс и производителя ПП не совпадают. Это наверно 5% всего, а совпадающие 95% нигде никем ни в каком ТЗ не описаны, это общее знание - ну зачем писать очевидные вещи вроде "Солнце встает на востоке, Волга впадает в Каспийское море, London is the capital of Great Britain". Ессно, рано или поздно появляеся программист новое дарование, которое три года училось чесать левое ухо правой пяткой, и закончило с красным дипломом, но общего знания у него нет (хорошо еще если спросит когда не знает "Гоги, бордо - это жёлтый, да?") и тогда ТЗ пополняется словами: если нарисовано отверстие - его сверлить, если площадка - не сверлить (реальный случай: пришлось объяснять, что дырочкам в трафарете соответствуют площадки на ПП).
(Здесь должна быть сцена в Египте из "Пятого элемента":
- Ты знаешь как это работает?
- Теоретически - да.
- Что значит теоретически?
- Я готов, но хуй не стоит.
- Знаешь как его активировать?
- Теоретически?)
В фильме это смешно. В реальной жизни совсем нет.
В чем разница между любителем и профессионалом? Любитель знает как, профессионал - зачем. Вот поэтому мне нужен программист в Малайзии, чтобы было понимание зачем проект делается, для чего его каждая часть нужна. Это реальная жизнь, реальная задача где надо увидеть своими глазами, потрогать руками и гайки покрутить. И чтобы мне не описывать на 500 страницах то что можно увидеть со всех сторон за 2 минуты. Мне от вас нужно понимание "зачем", а не один тупой скилл жонглирования операторами.
UPD ТЗ: Основная проблем в том что у исполнителя нет не только понимания, но нет и желания понять в принципе, отсюда все крики "заказчик сам не знает". Заказчик знает. У меня есть задача, требущая решения - я ее знаю, очевидно. Не знал бы о проблеме - вообще бы не суетился и спал крепко. И я ищу исполнителя, который 1) вникнет в задачу; 2) предложит решение; 3) его реализует - вот за это платятся деньги.
А исполнитель мне не решение предлагает, а требует "вы мне напишите решение, а я его на node.js перетолмачу". Это ни 1, ни 2 и даже ни 3++, это всего лишь перевод готового текста с человечского на процессорный. Причем за этот гугло-перевод почему-то ожидается получение денег как за 1+2+3. (Речь не о деньгах вообще и не о сумме в частности, а о подходе).

Date: 2016-12-31 10:37 am (UTC)
From: [identity profile] gapel.livejournal.com
в целом концепция то понятна. Но если честно у меня это все равно не работает. Я сам программирую, у меня в подчинении еще два программиста. Только я как инженер и как начальник проектов постоянно тыкаю и в ТЗ и в места, где полная лажа. Т.е. тыкание пальцем в конкретные узлы и места все равно не анацея. Но согласен, очень оживляет процесс. Тогда тут возникает вопрос, стоит ли ради этого ехать в Малайзию)))

Date: 2016-12-31 01:58 pm (UTC)
From: [identity profile] michaelkoloboff.livejournal.com
Выдать пиздюлей по скайпу не получается ))

Date: 2016-12-31 03:26 pm (UTC)
From: [identity profile] gapel.livejournal.com
о, а эту проблему я могу решить - электроошейник с дистанционным управлением. Жмешь кнопочку и программера бьет током))) Одновременно ругаешь его по скайпу

Date: 2016-12-31 03:28 pm (UTC)
From: [identity profile] michaelkoloboff.livejournal.com
Звучит как идея для старт-апа.
From: [identity profile] laoxia.livejournal.com
Я тебя сейчас вкратце просвещу:

>у исполнителя нет ни малейшего понимания
>.... поток сознания поскипан...


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

Отсюда имеем ситуацию - когда почесав ухо левой пяткой пару лет имеем зарплату. А вот выше этой зарплаты ни ты никто другой плаить не будет. Отсюда вопрос - нафига делать чего-то еще?
From: [identity profile] michaelkoloboff.livejournal.com
ИМХО основная проблем в том что у исполнителя нет не только понимания, но нет и желания понять в принципе, отсюда все крики "заказчик сам не знает". Заказчик знает. У меня есть задача, требущая решения - я ее знаю, очевидно. Не знал бы о проблеме - вообще бы не суетился и спал крепко. И я ищу исполнителя, который 1) вникнет в задачу; 2) предложит решение; 3) его реализует - вот за это платятся деньги.
А исполнитель мне не решение предлагает, а требует "вы мне напишите решение, а я его на node.js перетолмачу". Это ни 1, ни 2 и даже ни 3++, это всего лишь перевод готового текста с человечского на процессорный. Причем за этот гугло-перевод почему-то ожидается получение денег как за 1+2+3.
From: [identity profile] mixalych.livejournal.com
>>1) вникнет в задачу;
>>2) предложит решение;
аналитик для этого нужен, и технический дизайнер, чтобы спущенные вами бизнес-требования проверить на непротиворечивость, полноту, связность; чтобы разработать соответствующее функциональное описание и технические требования для разработчика(ов) и тестера(ов)
>>это всего лишь перевод готового текста с человечского на процессорный
1+2+3 в одном лице - кадры хорошего качества вы вряд ли найдете. Профессионалы чем дальше, тем сильнее специализированы.
From: [identity profile] michaelkoloboff.livejournal.com
Я же не говорю о рокет-саенс, таких задач мало где нужен штат аналитиков и прочее. Речь о тривиальных задачах типа автоматизации: юзер-интерфейс для ввода данных, обработка данных, и вывод юзеру. Никаких сложных алгоритмов, лишь здравый смысл, и здесь аналитик лишь вносит лишний уровень непонимания: мне надо сначала объяснить аналитику, он (неизбежно) поймет неправильно, еще более неправильно объяснит программисту, тот (в своей абстракции без привязки к реальности) неправильно реализует дважды неправильнео понятое. Потом это все двинется обратно ко мне - обратная связь и коррекция ошибок сильно усложняются. Я понимаю, что ошибки неизбежны, вопрос в том как их быстрее исправлять и минимизировать ущерб.
Разрыв между реальностью и виртуальностью весьма суров. Например, я знаю, что моя плата 15мм в диаметре, но когда вижу ее на 24-дюймовом мониторе это абстрактное знание не помогает - ессно умом все понимают разницу в размерах, но когда берешь эту плату в руки - испытваешь шок какая же она маленькая "на самом деле"™ в реальном мире.

Date: 2016-12-31 05:26 pm (UTC)
From: [identity profile] vlad-rulez.livejournal.com
А что понимается под "вникнет в задачу"?

Date: 2016-12-31 06:14 pm (UTC)
From: [identity profile] alexaggi.livejournal.com
О. Another one bites the dust. :)
Ты поймал суть.
Ну и так же правильная идея, чтобы программист сидел тут же, и видел как оно работает и тыкался мордой в свои "оптимизации". Еще лучше, если программист будет сидеть с тобой несколько лет подряд, просто чтобы новому каждый год не обьяснять всякие важные мелочи, которые нигде не написаны, но каждый работающий их знает.
И, таки, да - ТЗ ничего не решит, просто потому, что все возможные нюансы в ТЗ не помещаются, даже в хорошее.
И я это всё знаю исключительно потому, что работал с инженерами-проектировщиками вплотную. Сидел бы в "программитской фирме" - тоже бы рассказывал сказки про "настоящих профессионалов", которые одним движением брови решают любые инженерные задачи.
Сейчас вот, как раз, сижу в такой фирме и тихо ржу - индусские программисты пытаются придумать очередной велосипед в области, про которую они ничего не знают от слова вообще. Профессионалы, да :)

Date: 2017-01-01 02:50 am (UTC)
From: [identity profile] michaelkoloboff.livejournal.com
Я хотел сюда видео из Пятого элемента вставить: Знаешь как оружие работает? - Теоретически?

Date: 2016-12-31 06:32 pm (UTC)
From: [identity profile] mr-7cux.livejournal.com
Не скажу за программирование, а в сервисной геологии другая картинка, обратная вашей. У вас еще ничего.
Заказчики в массе своей не знают как проводятся работы, их порядок и особенности. Но хотят очень дешево, очень-очень быстро и удовлетворить все их капризы, ибо они платят ДЕНЬГИ(!!!). При этом какое-либо желание что-то узнать про работы - отсутствует в принципе.

Отсюда и катастрофическое падение качества проводимых работ.

Date: 2017-01-01 02:47 am (UTC)
From: [identity profile] michaelkoloboff.livejournal.com
Ты мог бы быть настоящим программистом ))
Мне как заказчику пофигу как вы проводите работы и ваши особенности, ибо вы решаете мою задачу, а не я вашу, вы и вникайте. Если вам чтобы выполнить работу нужно знание в моей области - это как раз то что я и предлагаю: приезжайте, я дам доступ к процессу в любое время и в сопровождении специалиста чтобы ответить на любые ваши вопросы.
Пример. Мне дают на монтаж проект, заказчика не интересует как я буду с ним трахаться чтобы выполнить - он не специалист, он просто платит деньги за решение его задачи. Я могу посоветовать изменить проект (если это возможно) чтобы упростить, ускорить и удешевить работу над ним - это и в моих интересах и в его. Аналогичного подхода я жду от своих исполнителей - я не собираюсь изучать РНР или геологию, на кой хуй тогда вы мне будете нужны?

Date: 2017-01-01 09:13 am (UTC)
From: [identity profile] mbr.livejournal.com
Очередное подтверждение того, что программистов нужно ебать каждый день. Либо ты это делаешь сам, либо за тебя это делают другие люди. ТЗ все-же работает в общении со средними и крупными компаниями. Не столько помогает решить проблему, сколько спасает от внутрикорпоративных дрязгов впоследствии.

Date: 2017-01-01 09:45 am (UTC)
From: [identity profile] michaelkoloboff.livejournal.com
Ну да. Я же не отказываюсь от ТЗ вообще, но его объем должен быть разумным. Как минимум оно должно сохраняться обозримым. И уж точно оно не панацея от проблем (каким бы объемным и подробным оно ни было).

Profile

michaelkoloboff: (Default)
michaelkoloboff

February 2026

S M T W T F S
12 34 56 7
8 91011121314
15161718192021
22232425262728

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 9th, 2026 06:22 pm
Powered by Dreamwidth Studios