Ентропія

Почну з невеличкого відступу. Цей блог Ñ– думки які я висловлюю на ньому Ñ” моїми, Ñ– вони не обов’язково Ñ” такими що списуються в загальноприйнятні (чи правильніше сказати загально вироблені) правила. Тому тут може бути щось що потенційно не вписується в ці правила.

Майже в кожному проекті в якому я брав чи беру участь я зустрічався з таким явищем як ентропія. Всі хто читав славетну книжку “Програміст прагматик” думаю знають що це таке. Для всіх інших, якщо коротко Ñ– не математично строго то ентропія це відхилення певних речей від нормальних (очікуваних) параметрів або перебування частини певних речей у невизначеному або напів-визначеному стані. Якщо наводити приклади з нашої галузі то це 2 не задокументованих методи з 7 у класі. Це наприклад 3 баги в джірі які не вирішуються пів року, це розділ важливого документу який не оновлювався рік, Ñ– Ñ‚.п. Ð’ “Програмісті прагматику” наводився приклад з будинками в депресивних районах. Розповідалось про дослідження в ході якого знайшли цікавий момент. Ð’ той час як багато будинків мали розбиті шибки, розмальовані стіни, залишались будинки які були повністю нормальні з не побитими шибками та стінами з оригінальною побілкою. Під час дослідження виявили, що якщо в будинку вчасно не вставляти побиті шибки та виконувати інші ремонті роботи то ймовірність нових ушкоджень різко збільшується. Вертаючись до нашої галузі – якщо в проекту Ñ” проблеми з якістю то ймовірність росту кількості проблем збільшується.
Звучить ніби ясно і зрозуміло, але от я не бачив багато людей які це сприймають в серйоз.
Слушне питання: а чому це взагалі важливо?
Тут варто вернутись в площину людських стосунків. Якщо мої попередники на проекті писали юніт тести не до всіх класів, то чому я повинен писати до всіх? Якщо на проекті взагалі не задокументовані алгоритми – то чому я повинен писати пояснення до своїх?
Такі думки звичайно в голос не висловлюються, але якщо я не інопланетянин то мабуть до вас також заглядали в гості подібні думки. До декого вони просто заглядають в гості, а до декого не просто заглядають – люди так Ñ– поступають.
Ця проблема Ñ” значно глибша чим просто низька кількість юніт тестів чи недостатня кількість документації. Наше суспільство хворе на ентропію (вибачте, правильного слова яке характеризує це явище для людей я не знаю, – якщо таке Ñ”, буду вдячний якщо поділитесь). Звичайно не всі, але достатньо багато щоб ми це бачили кожного дня. Як це проявляється? Наприклад двері в під’їзд які не закривають зимою, люди які коли виходять з маршрутки зразу закривають за собою двері не оглядаючись чи ще хтось виходить чи ні, пляшка вина (пива/горілки/…) куплена в магазині на якій Ñ” пилюка Ñ– Ñ‚.д.
Такі речі межують з багатьма якостями людини такими як охайність, вихованість, Ñ– Ñ‚.д. – але всі вони попадають під категорію ентропії – речі які можна зробити/виправити без над зусиль, але так як хтось це не робить то Ñ– інші люди це не роблять – Ñ– так вони накопичуються Ñ– накопичуються Ñ– ми з вами живемо власне в тому що видно за вікном…
Недавно читав дослідження як люди стають бомжами і чому не велика кількість людей вибирається з такого стану. В статті описувалось крайня ситуація до чого може призвести ігнорування реальності. До стандартних причин як алкоголізм, депресія, життєві повороти, додали ситуацію коли людина не вирішувала проблеми і вони додавались і додавались, і в певний момент їх стало так багато що на думку людини було вже просто не реально їй виправляти, і людина просто змирилась і перестала їх виправляти. Крапка.
Звичайно між ІТ Ñ– бомжами не дуже багато спільного, але так як це такі самі люди як Ñ– ми – то що може відбутись в крайніх ситуаціях досить близьке. Слава Богу мене не заносило на такі глибоко запущені проекті, але, перефразовуючи цитату з “Міфічного чоловіко-місяця”: “Як у вас назбиралось 400 багів?!?! – Дуже Просто, по 20 багів в день протягом двох місяців.
Хоча природа ентропії в країні є значно ширшою і глибшою рішення є те саме як і для ІТ.

«Гаразд, слуго добрий і вірний. У малому ти був вірний, поставлю тебе над великим. Увійди в радість пана твого» (Мт 25,21)

Це з Біблії, з притчі про талани. Притча про талани досить глибока Ñ– має застосування до багатьох частин життя. Одним з них Ñ– Ñ” наш випадок. Слова “У малому ти був вірний, поставлю тебе над великим.” можна також зрозуміти що людина яка при достатній кількості часу виконувала гідну роботу знайде ласку в очах Божих Ñ– Господь Ñ—Ñ— піднесе вище, якщо на це буде Його Воля. Також, так як тут іде мова про Бога, ця притча означає що перший кому звітуєш це Ñ” не твій керівник, а Бог, який бачить все.
Тобто людина яка виконувала свою роботу якнайкраще в рамках поставлених часом так щоб в першу чергу бути чистою перед Богом Ñ– дійсно виконати поставлене завдання, а не щоб просто поставити ще одну галочку в ту-ду списку – буде достойна тощо щоб Бог доручив їй щось більше.
Як це можна накласти на наше середовище?
Майже всі проекти є обмежені часом, і досить часто якість ставиться в компроміс вчасній здачі проекту. В таких ситуаціях звичайно не є розумну сидіти до 23.00 і писати джава-доки тільки тому щоб вони були коли керівництво проекту прийняло рішення що краще код без джава-доків але вчасно зданий проект.
Але. Давайте подивимось відверто. Не весь час на проекті Ñ” аврал. Мова якраз іде за цей час коли нас не контролюють. Майже на кожному проекті Ñ” “межичасся” – наприклад між версіями проектів коли менеджмент визначає що буде входити в наступну версію. Чи багато з вас цей час дописує юніт тести, читає статті по новим технологіям, дописує коментарі в коді? “А я що – дурний?” ;)
Є проекти де люди в настільки високому темпі працювали до того що просто не мають психологічної сили ще щось покращувати чи доробляти в “межичассі”. Але насправді таких проектів Ñ” не так вже Ñ– багато. На мою думку найпоширеніші дві причини Ñ” думка “чому я це маю робити якщо за це мені додатково ніхто не платить” та думка “я взагалі не повинен це робити бо керівник мені не сказав цього робити”.
Причини появи цих думок думаю є занадто інтимними щоб їх аналізувати. Тема не про це.
Важливо то що є досить часто дірки в якості проекту можна залатувати, але це не робиться і це поглиблює ентропію.
Вертаючись до Біблії. Що розуміється під “поставлю тебе над великим”? Знову наголошу що я маю на увазі не широке розуміння, а більш конкретніше застосування щодо ІТ. Якщо людина без “вказівки зверху” у вільний від роботи час почитає хорошу статтю по якійсь технології – вона стане більш кваліфікованою. Якщо візьметься за дописування юніт тестів – то під час дописування може наприклад поглибити знання по відображенню (reflection). Я це все веду до того що цей час Ñ– робота не Ñ” даремними Ñ– якщо це робити для Бога Ñ– в Його Славу то Він обов’язково віддячить. Під час роботи над чимось, якщо ми будемо робити не тільки то що нам кажуть, а дійсно то що має бути в кінці, інакшими словами, якщо ми будемо не просто виконувати поставлені завдання, а Ñ– по ходу виконання “вирівнювати” нерівності Ñ– самостійно аналізувати чи це дійсно Ñ” рішення проблеми – то ми обов’язково отримаємо нашу нагороду.
Крутого тех ліда від простого програміста крім ширини знань відрізняє також то що програміст може братись за 80% завдань з 100%, де 20% що залишаються є найскладніші. В той час як тех лід може братись за 100% завдань, включаючи 20% найскладніших (ці цифри з класичної формули 80/20). І якраз здобуток знань щоб братись за ті 20% найскладніших завдань є то що відрізняє одних людей від інших. Дуже рідко людині дають завдання які вона може не виконати. Тобто сама по собі система за звичай тримає людину в рамках тих 80% завдань. І якщо людина сама або через великий досвід, або через ініціативу не візьметься за 20% то множник до зарплати так і залишиться на позначці X1.
Тобто в рамках боротьби з ентропією як нагорода буде здобуток додаткових знань. Людина яка самостійно без контролю з верху покращує середовище Ñ– проект в додаток до сумлінного виконання поставлених завдань буде обов’язково нагороджена Богом.
Це все по аналогії можна накласти на будь яку галузь.
Ви мабуть скажете, – “звучить класно, але ж так ніхто не робить!”. Ну, якщо це дійсно так то у Вас Ñ” можливість стати першим у вашому середовищі Ñ– показати приклад іншим ;)
Можливо це з ходу Ñ– не покращить ситуацію, але сам намір, помножений на Божу увагу, якщо це буде робитись в Його Ім’я принесе дуже хороші Ñ– рясні плоди.


Comments

  1. добрий вечір
    Жовтень 20, 2008 - 9:17 am

    то не для мене.

  2. Дмитро
    Жовтень 20, 2008 - 11:57 am

    Респект автору, пост надихає.

  3. Свою роботу треба виконувати якісно. І дії попередників тут ні до чого. І це стосується не тільки ІТ.

  4. Я також скоріше буду змінювати себе щоб змінити світ, типовий інтроверт. Тема ентропії взагалі колосальна. Наприклад, чисто фізично, ти збільшував ентропію, писавши цей пост. Але говорячи про неї як про зло, ти змусив кількох задуматись і можливо збільшити порядок навколо себе. Дещо мені в цій всій теорії не подобається, але ще не знаю що :) Одним словом, respect.

  5. все правильно…

  6. ммм
    Виникло бажання дописати статтю)))
    “Ентропія” описана в проекті очевидно залежить не тільки від нижніх ланок(хоча й від них теж), але й від верхніх
    Думаю всі стикались з тим, що доводилось по вказівці зверху нехтувати якістю Ñ– швидко робити “щось робоче щоб показати”
    Ентузіасти на нижньому рівні не в змозі вирішити самотужки проблему, адже проблема системна
    Загалом все не так просто. Як писав java-hamster – свою роботу тре виконувати якісно, хоча це Ñ– не дає гарантії, що ентропії не буде, зате ви будете знати – свою роботу ви зробили якісно, а це вже немало

  7. Приєднуюсь до коментарів.
    Не все так просто, але свою роботу треба виконувати якісно Ñ– відповідально…Ð’ будь-якому разі, від цього гірше нікому не буде, хоча, думаю, для самого себе це рано чи пізно дасть позитивний результат.
    А якщо про ентропію, то, як-то кажуть, звісно, що ти сам не зміниш світ, але це не повинно зупиняти тебе перед спробами це зробити…

  8. Истинно человечный муж добивается всего собственными усилиями

  9. Будьте строги к себе и мягки к другим. Так вы оградите себя от людской неприязни

Залишити відповідь

Your email address will not be published / Required fields are marked *