Що найбільше не люблять програмісти?

На модерации Отложенный

Розкриваючи цю сторінку, відразу усаживайся зручніше, дорогий читачу. Будеш здавати іспит.
Спробуй відповісти на поставлене в заголовку питання. Бачу роботу думки на твоєму злегка нахмуренном лобі. Давно нічого не дав? Чи ця чаша тебе минула? Зараз це неважливо. Отже, почали.
Ось ти стрепенувся і з радістю подивився на мене… точніше, на назву статті. Звичайно ж, створення складної програми, і термінової до того ж! Відповідь - неправильний. Мова, звичайно, не йде про тих, для яких наша робота - каторга. Для них - будь-який крок може бути тягарем, крім отримання грошей, зрозуміло. Я кажу про увлеченном програміста, якого складність заворожує, а терміни розбурхують уяву. Він, по суті, і є справжнім програмістом. З проблемою впорається і отримає колосальне задоволення разом з… невеликими грошима.
Бачу, вступник замислився. Друга спроба. Коригування чужий програми! Лоб разгладился. На обличчі - розуміюча посмішка. І правильно! «Влазити» в чужу програму часом набагато складніше, ніж з нуля написати свою. Не всі на це швидко вирішуються. Але якщо треба? Тоді доводиться. Чужа думка, чуже мислення. Увібрати в себе не завжди вдається. Можна виправити одне, а зачепити зовсім інше. Так, ось у чому складність, подытожишь ти. У жодному разі! Освоєння програми звільнився співробітника - процес все-таки досить цікавий, хоча і дуже складне. При перемозі (а куди ж вона зникне, якщо з усіх боків насіли?) - тріумф куди більше. Одним словом - це тяжко, але не смертельно.
Пауза довше. Задума глибше. Нарешті, honda! Слово «тяжко» - воно говорить сама за себе! Перетягувати важкі речі. Техніку, столи при ремонті приміщення або переселення в іншу аудиторію. Для цього відривають від улюбленої справи, іноді на день або два, а то й більше. Не хочеться? Звичайно! Стороння робота знаходить не тільки особи чоловічої статі. Жінкам доводиться підмітати, витирати все від пилу і оберігати горщики з квітами, щоб «хлопчики» їх ненароком не зачепили. Пам'ятаю, як у нас в бюро робили терміновий ремонт до приїзду іноземних партнерів. Без нашої участі, звичайно, не обійшлося. Ми всіляко намагалися прискорити процес, тим більше що тулитися в «гостях» у сусідів було вкрай незручно. Ми навіть самі прокладали мережний кабель, не дочекавшись відповідної служби. У мого начальника добре виходило працювати і молотком і дрилем, а я терпляче тримав під ним стілець, щоб ця дриль ненароком не впала… Інших чоловіків бюро не було… Не було і почуття невыносимости. Врешті-решт все закінчилося, і ми приступили до свого звичайного справі, задоволені і радісні.
Непростий іспит, так? Відповіді не проходять, думки вже плутаються, а я навис над душею чи не матеріальної оболонки і вимагаю, вимагаю… Ага! Дійшло! Робота з замовниками! Якими відразливими і невгамовними вони бувають! Всі соки вичавлять і ніколи не скажуть, що задоволені. Просто промовчать. Дзвонять тільки тоді, коли щось не йде. Але і з ними програміст може впоратися. Викрутитися, домовитися, а якщо надати малу дещицю випереджального уваги, то клієнт - твій! Дзвониш йому трохи раніше, ніж він, і питаєш, як веде себе розробка. А він часто не готовий відповісти, тому що ще не брав у руки мишку і до клавіатурі відучора не торкався. Відповідає мало не вибачливо. А потім, коли зіткнеться з проблемою, вже не прилетить на тебе, як бомбардувальник, а буде м'яко просити.
Бачу, що-то хочеш вставити, дорогий читачу. Знаю, що. Промовчи, будь ласка. Сам скажу. Впровадження програми. Знову помилишся. Воно не без підводних каменів, суперечки немає.

Але це самий чудовий етап у житті програміста. Всі вже налагоджено. Не треба болісно думати, винаходити, пристосовувати. Продукт готовий (з точки зору виконавця, звичайно), треба тільки прив'язати його до іншої техніки. Навіть якщо виявилися проблеми, непривязанным він довго бовтатися не буде. Програміст зрозуміє, де, що потрібно і кому потрібно.
Ось і все. Програма створена, доробки зроблені, ремонт в рідному приміщенні теж, замовник приручений, впровадження успішно пройшло. Так де ж справжня суперважка труднощі? Мовчиш, читач? Добре, допоможу. Крім всього вищеописаного є одна невід'ємна частина, без якої ніхто програму експлуатувати не буде.
Інструкція! До неї потрібна докладна і зрозуміла інструкція! Це і є камінь спотикання для досі не унывавшего програміста. Він може швидко зрозуміти, що потрібно користувачеві і з нальота добитися результату. Поставлена задача майже моментально переводиться в оператори конкретної мови. І цього ніхто не помічає! Деколи навіть сам програміст. Але кілька папок писанини, яку необхідно здати, він не помітити не може. Нехай, не писанини, а комп'ютерного набору тексту, нехай не кілька папок, а всього одна. Все одно, для звиклого літати різке приземлення рівносильно катастрофи.
Пам'ятаю, як я сам, на великій швидкості відлагодивши чергову програму, зібрав усю силу волі для написання інструкції. Я поспішав швидше скинути з плечей ненависний вантаж, роблячи масу помилок і не дуже виразно описуючи режими робіт. Начальник довго сидів зі мною, змінюючи, де міг, обороти і приводячи «праця» до сносному увазі. Внутрішньо я дуже сердився. Потім була наступна програма (як цікаво!) і наступна інструкція (скоріше б відбутися!). На якому етапі я навчився їх випльовувати, а, точніше спльовувати. Але що не домовлявся, а що-то відображалося укрупнених планом. Не думаю, що я був самотній.
Часто опис чудово працюючих систем з світовим ім'ям буває лаконічним і залишає питання без відповіді. Правда, орфографія і стилістика там краще. Але нюанси часто опускаються, а останні зміни в програмах часом не встигають відображатися. Програмний продукт завжди хоч трохи випереджає свою інструкцію. Нерідко буває, що робить програму одна людина, а документацію зовсім інший, більш до цього пристосований. Природно, виникають неузгодженості, які ставлять в безвихідь користувача.
найдивніше, що я зустрічав і програми, вихідні тексти яких були схожі на інструкцію щодо їх створення. Акуратні коментарі описували, що робить кожен оператор. Уявляю, скільки часу пішло на те, щоб виконати вимогу начальника. Ці програми, щоправда, було легше виправляти. Але як далеко можна було просунутися без коментарів! Хоча робота велася за принципом «повільно, але вірно і зручно в майбутньому». Програми ЄС-овско = СМ-овское час робилися на десятки років, а актуальність вони втратили набагато раніше, через два роки.
У творах асів часто не зустрінеш не те що коментаря, а й логічно зрозумілого стилю. Все так своєрідно накручено, що небезпечно торкатися, і дивуєшся, на яких принципах програма працює? А вона працює правильно, поки її не зворушиш. Чим вище рівень програміста, тим менше тяга до написання документації. Він завжди готовий пояснити на пальцях зрозумілі для себе речі і щиро здивований, що вони не завжди зрозумілі іншим.
Ось ми і відповіли на поставлене питання. Іспит закінчено. Але куди ти, любий читачу? Давай заліковку. Як навіщо? Поставлю відмінну оцінку. Чому відмінну? Ти так старався. Перебрав всі варіанти, думав. А поки ти думав, я і сам остаточно зрозумів, що саме тяжкий для програміста…