- О корректности «работает — не трогай» и понятии «так правильно»
- Если работает – ничего не трогай! Как мы неосознанно помогаем себе сами
- Изучаем программирование. День 44. О принципе «Работает — не трожь!» и ещё об одном подобном принципе.
- «Работает — не трожь!»
- 1. Бизнес
- 2. Незнание продукта.
- 3. Новые фукнции.
- К чему я всё это?
- Не трогай что работает
- Дубликаты не найдены
О корректности «работает — не трогай» и понятии «так правильно»
Я для себя переформулировал его как «работает — не ломай» (улучшать можно, при условии, что . ), но это тоже несколько не то, отчасти из-за самоочевидности. И вот недавно в рассылке UAFUG пролетела такая цитата за авторством Michael Pigurnow:
Вот тут всё становится на свои места, особенно если вспомнить не менее известное «make it work, make it right, make it fast» (именно в такой последовательности, и каждое следующее не раньше имеющегося предыдущего). Остается только с виду незаметный, но очень важный вопрос — а что же такое правильно? Вроде всем понятное слово, но каждый под ним понимает что-то свое, обычно интуитивно понимаемое и расплывчатое. Более того, никакого абсолютного «правильно», общего для всех и всегда, нет и быть не может. Тогда что же это?
Я бы определил «правильно» как 3 компонента — цели, ценности и приоритеты. Они неразрывно связаны друг с другом.
- Правильно что-то делается или нет, зависит от цели, того, что требуется получить — что правильно в одной задаче, может быть неправильным в другой.
- При той же самой цели, делать что-то можно разными способами. Как выбирается способ? Между задачами соблюдаются какие-то более-менее постоянные ценности, принципы. Например, «деньги не пахнут» или «всё надо делать качественно». Ценности для человека — это то, что значимо, к чему он неравнодушен, на что ему не похуй. То, что можно описать словами «хорошо» и «плохо», в отличие от всех остальных вещей, к которым нет ничего, кроме равнодушия. Ну типа, «писать понятный читаемый код — это хорошо», «ломать мне посреди ночи работавший сервер, который я поеду чинить — плохо». (Замечу в скобках, что речь стоит вести не о декларируемых ценностях — если человеку плевать на утверждение «уступать старушкам место в автобусе — хорошо», реальной ценности для него это не представляет. Но эти темы уже совсем-совсем оффтопик.)
- Наконец, ценности как сами не равны между собой, так и могут вступать в конфликт с целями (точнее, обычно подзадачами, целями помельче, на которые бьется исходная). Или бывает, например, нехватка ресурсов или чего-то еще — так, что всё вместе удовлетворить нельзя. В этом случае приоритеты определяют, что из целей и ценностей сейчас важнее, а что, быть может, отбросить вовсе (скажем, в соответствующей ситуации «когда моим детям жрать нечего — плохо» перекроет собой «писать нечитаемый код — плохо»). Когда говорят «в той ситуации было правильно поступить именно так» (а обычно, мол, положено не так) — ноги растут именно отсюда.
Легко видеть, что, например, при наличии ценности «рабочий плохой код лучше перспективной идеи» получим следствие «если это не работает — это неправильно» (но при определенных обстоятельствах приоритеты могут изменить вывод на прямо противоположный, скажем, на отрезке в 10 лет).
Или что изо всех сил сидеть на FreeBSD 4.11 и бэкпортить патчи — неправильно, потому что трата времени админа на бэкпорты — не в целях и не в приоритетах.
И, возвращаясь к исходной фразе, становится понятно, когда же «трогать» — ведь и цели, и ценности, и приоритеты могут меняться со временем. Что было правильным год назад, может уже не быть таковым сегодня (ситуация меняется). Вот тогда влезать и менять работающее — не просто можно, а нужно.
Источник
Если работает – ничего не трогай! Как мы неосознанно помогаем себе сами
Наше бессознательное по-своему мудрое: оно чинит «поломки» в нашей психике и устраняет эмоциональные «баги» доступным ему способом. Правда, иногда это выливается в поведение, не вполне приемлемое с точки зрения общества. Например, в повышенную сексуальную активность.
Среди моих знакомых тьма программистов. Наверное, это оттого, что в мире их вообще сейчас тьма-тьмущая. Общаясь с ними, я немножко вникла в их особый юмор, фольклор и магию. Да-да, именно магию. Потому что любой программист расскажет вам массу историй о том, как ОНО работало – непонятно КАК и непонятно ПОЧЕМУ. А любой желающий разобраться в причинах бывал сурово наказан отказавшим раз и навсегда кодом (ранее прекрасно работавшим).
Лично мне эти работающие или не работающие вопреки всякой логике коды очень напоминают наше бессознательное. Оно тоже скрывает от нас принципы работы, выдавая взамен странные схемы самоизлечения, на которые мы не обращаем внимания, пока они не мешают нам жить.
В студенческие годы я дружила с необыкновенной девушкой. Она была умна и в то же время наивна. Много шутила, любила играть: в ассоциации, домино, лото. Такой ребенок в теле сложившейся женщины. Косички и гольфы, рюкзак в виде мишки. Она предпочитала детское, не женское. Магазину косметики – «Детский мир».
Кто-то из «заботливых» общих знакомых отозвался о ней в очень неприятном ключе: мол, в нашей общей компании не было ни одного мужчины, не исключая женатых, кто не побывал в ее постели. Я не ханжа. Мы живем в свободном мире, каждый поступает со своей жизнью так, как хочет. Но меня эти слухи удивили: как сочетаются плюшевые медведи и гольфы с таким сексуальным аппетитом?
Что-то было нарушено в ее «протоколе любовного этикета»
Я аккуратно обсудила с девушкой эту тему. Она оказалась открытой к таким разговорам. Сказала, что больше, конечно, врут, «приключений» было намного меньше – и тем не менее. С тех пор я стала ее поверенной в любовных похождениях и каждый раз слушала истории о том, как развиваются ее отношения. Что-то было нарушено в ее «протоколе любовного этикета».
В те времена я легко раздавала телефоны интересным молодым людям и потом отслеживала степень их вовлеченности: пригласит ли на свидание? Позвонит? Напишет СМС? Или просто хочет дружить? У нее все было наоборот: сначала секс, а потом интрига: возьмет ли телефон? Спросит ли, как зовут. Удивительное создание. Причем за нее почему-то совсем не было страшно.
Ее след потерялся в очередной компании, походе или поездке. Даже на Facebook мне не удалось ее найти, узнать, как она менялась, куда двигалась. Ее образ проявился в моем сознании из ниоткуда, на лекции. Я рассказывала студентам про сексуальную привязанность жертв к своим насильникам, про ту форму сексуальности, единственной целью которой становится поиск признания, любви.
Старая знакомая всплыла в сознании как идеальный пример того, о чем я говорила. Ее родители развелись, когда она была совсем маленькой, у каждого были дети в новых отношениях. Они намного больше были заняты своей жизнью, чем старшей дочерью, чьи черты и поведение напоминали им о прошлом, ошибочном браке.
Ей приходилось быть самостоятельной, взрослой. Ключ на шее, «поешь что-нибудь сама». Детства как такового не случилось – именно поэтому уже во взрослом возрасте ей так нравились все эти гольфики и косички.
Активное сексуальное поведение, готовность броситься в объятия к первому встречному – продолжение грустной истории детства и яркий пример того, как бессознательное человека стремится «починить» травму, не сообщая никаких сигналов «наружу». Недостаток любви в детском возрасте восполнялся активной сексуальностью в юности.
Помню, как девочки перешептывались и отпускали в ее адрес обидные слова. А я точно знаю: она всего лишь отчаянно – отчаяннее, чем мы все – нуждалась в любви. Сексуальная революция, темперамент экстраверта и привлекательная внешность делали свое дело. И ведь никто в ее окружении, ни одна живая душа не задала ей вопрос о том, зачем она так ведет себя. Зачем ей это нужно?
Возьмись кто тогда лечить эту девочку, и его снесло бы шквалом накопившейся тоски
Сейчас, наблюдя за похожими случаями в практике, читая научные статьи и общаясь со студентами, я понимаю, сколько внутри у той девочки было одиночества, грусти и боли. В тот момент контакт с иррациональными обидами был невозможен. Бессознательное захватило тоску в плен и боролось с ней самым благоприятным способом – приемлемым с точки зрения самого бессознательного, а на него принятые у нас социальные нормы не действуют.
Возьмись кто тогда лечить эту девочку, и его снесло бы шквалом накопившейся тоски. Несколько венерических заболеваний, шипение и сплетни за спиной – с точки зрения бессознательного все это было небольшой платой за сдерживание лавины.
Психолог работает с этими паттернами (схемами) только в том случае, если есть запрос. Но это происходит нечасто. Чаще такие люди попадают в терапию, когда плотину «прорвало», когда адаптивный механизм дал сбой. И работать в ситуации такого кризиса, безусловно, сложнее.
Но если заняться профилактикой или «поймать» проблему на ранней стадии, появляется шанс высвободить массу энергии, которую лучше потратить на радость и наслаждение. Не правда ли?
Источник
Изучаем программирование. День 44. О принципе «Работает — не трожь!» и ещё об одном подобном принципе.
Вчера у нас с вами была рубрика «Занимательный факт», где я рассказывал о бесплатных курсах по Python для начинающих от Google и Microsoft.
Сегодня мы поговорим о двух принципах, которые желательно соблюдать не только программистам, но и при работе на других работах, не обязательно связанных с чем-то техническим.
«Работает — не трожь!»
Так как трудовой стаж у меня большой и поработал я не в одной фирме, я очень много повидал примеров невыполнения этого принципа. Почему это так работает?
1. Бизнес
Самая, наверное, частая причина этого явления — «интересы бизнеса». Почему я написал это в кавычках? Ну потому что в 99% случаев к бизнесу такие «улучшения» никакого отношения не имеют. Пример: работает компания, хорошо работает, приносит прибыль, но неизменно появляется такой человек, которому нужно в налаженном процессе обязательно что-то поменять, чаще всего это какой-то новый человек, либо старый, занимающий высокую должность. И вот он приходит и говорит: делайте теперь вот так, прежний метод не подходит, если вы ему справедливо приводите аргументы и говорите, что предложенный способ не заработает и не будет лучше старого, «главный» человек в отделе/компании говорит: «ты ничего не понимаешь в бизнесе».
Знаете, чем заканчивают компании с таким подходом? Они закрываются или приходят в такое состояние, что лучше бы им закрыться. Опытным путём заметили такие процессы в своей компании — начинайте подыскивать себе другую компанию, в этой, к сожалению, ловить уже нечего.
2. Незнание продукта.
Эта причина актуальна, когда на работу, на управляющую должность берут человека, который пришёл совершенно из другой области и в вашем продукте не понимает ну абсолютно ничего. И он начинает «улучшать» инструменты и процессы, и улучшает он до тех пор, пока эти улучшения не угробят процесс. Компанию, в данном случае, также ждёт незавидное будущее, а человек этот уходит «улучшать» в другую компанию.
3. Новые фукнции.
Это уже ближе к нашему с вами вопросу. Есть у вас на работе, например, внутренняя система отчётности, она работает, не сказать, чтобы идеально, но работает, выдаёт нужные результаты, а сделана при этом абсолютно бесплатно. И тут в компании рождается улучшатель, который говорит, что система эта нам ну никак не подходит и нужно ее улучшить. «Улучшение» возможно в нескольких вариантах: нанимается новый сотрудник, дело которого улучшать, он покупает за огромные деньги систему отчётности, подключает её к внутренней системе, настраивает месяц и в итоге она выдаёт ровно те же результаты, за ровно то же время. Ничего нового не прибавилось, компания потеряла время и деньги. Но после все делают вид, что стало-то всё намного лучше на самом деле. Второй вариант: программистам даётся задание такую систему разработать, выделяются люди, выделяется бюджет и создаётся опять же ровно та же система, но она красиво оформлена и названия немного изменены. При этом компания так же теряет деньги, как и в первом случае. Бывает и такое, что после всех этих «улучшений» всё возвращается к старой системе, в её первозданном виде, потому что работало, но это лучший исход и он крайне редок.
И мы плавно приходим к очень частой ошибке it-компаний, которая вытекает из вышеописанного — «Чинить не там, где сломано».
Очень показателен недавний пример в одной фирме. Имён я называть не буду, чтобы ненароком кого-нибудь не обидеть. Было приложение, работало не без проблем, но работало. Одно время в нём старались что-то исправлять, но потом как-то всё затихло и многие старые раздражающие ошибки так и остались на месте. Но тут приходит новость, приложение решило «улучшиться» — оно сменило имя. Как только я услышал эту новость я сразу сказал жене:»Ну вот и конец пришёл приложению N». Не далее, как сегодя, захожу в Play Market и совсем неудивлённый читаю огромную кучу возмущенных отзывов, которые появились ровно на следующий день после «улучшения». Мало того, что ничего не «улучшилось», так ещё и сломалось там, где до этого работало.
Вместо того, чтобы исправлять ошибки в существующем приложении, они его решили сделать новым и принесли за собой ещё большую кучу ошибок.
К чему я всё это?
Вы вступаете в мир, где вы будете создавать продукты для конечного пользователя, чаще всего это будут бизнес-продукты. Бизнес-продукты приносят прибыль только тогда(если это конечно не какие-нибудь мошеннические продукты), когда они направлены на удобство пользователя, а не когда какой-нибудь самодур, простите, захотел поменять что-то и по его мнению «улучшить». Все вот эти «улучшатели» остались от времён, когда выбора у человека(конечного пользователя продукта) не было и он был вынужден пользоваться одним продуктом. Сейчас выбор у человека есть, но «улучшатели» об этом, видимо, не догадываются. Так вот, прежде, чем принимать решение о будущих изменениях в продукте, проведите опрос, среди сотрудников, среди клиентов, а удобно ли было бы им введение такого улучшения? Принесёт ли оно пользу? В эту ловушку попадаются не только маленькие кампании, но и мастодонты из мира IT, вспомните, например, Windows Vista и Windows 8.
Люди не против изменений, люди против изменений, которые не несут ничего полезного и лишают удобства пользования.
То же можно сказать и про ваш код, если он хорошо работает и отлажен, не нужно его чинить. Чините там, где у вас сломано, а не там, где хорошо работает.
Как всегда, приятного вам обучения!
Если понравилась статья, поставьте, пожалуйста, лайк! А если вы ещё не с нами, то обязательно подписывайтесь, тут полезно и интересно.
Источник
Не трогай что работает
Извиняюсь если баян, только дошел до этого сериала) Корона. 1-4. 56:30
Дубликаты не найдены
Джун: — Этот код так запутан, щас я тут все перепишу
очередной новый программист:
— тут всё плохо, много легаси/спагетти/говнокода и костылей. ща быстро всё заново перепроектируем по-нормальному, перепишем. потребуется два дня две недели месяца два, не больше.
*проходит два года, баги, падения прода, пиздюли от менеджмента, гневные клиенты, стрессы, переработки*
*выгорает и увольняется*
очередной новый программист:
— тут всё плохо, много легаси.
В отделах, где занимаются разработкой есть волшебная должность под названием «Руководитель„ Именно этот человек говорит: » Делать нужно именно так, как я тебе сказал. Если не согласен — забирай свой коврик для мышки и пиздуй на хуй!„
Чини потом баги за этими переписывателямми =)
Купитман дело говорит
я так могу в две смены
– Ваше величество, если вы возьметесь судить это дело, люди воспримут это как поддержку той или иной стороны. – Старики закивали, закряхтели, уныло заерзали в своих неудобных креслах.
– Объявите Веттерланта невиновным, и в этом увидят кумовство и покрывательство, что усилит позиции всевозможных изменников вроде ломателей, которые воспользуются этим случаем, чтобы обратить против вас простонародье.
– Однако если вы решите, что Веттерлант виновен… – Городец угрюмо подергал себя за бороду, и остальные старики поддержали его беспокойным ворчанием. – Знать сочтет это публичным оскорблением, атакой на свои позиции, предательством! Это даст козырь в руки вашим противникам в Открытом совете, и это в тот самый момент, когда мы пытаемся обеспечить вам беспрепятственную передачу власти!
– Порой мне кажется, – резко произнес Орсо, потирая намятые короной места над висками, – что последствия любого решения, которое я приму в этом кабинете, неизбежно окажутся одинаково плохими, так что наилучшим выходом для меня будет вообще не принимать решений!
Хофф снова обвел взглядом стол:
– Для короля, – изрек Первый из магов, – предпочтительнее держаться в стороне от любых сторон.
И все закивали, словно удостоились услышать глубочайшую мудрость всех времен
Источник