Друзья! Мы все любим (или ненавидим) говорить о шаблонах проектирования.
Лично мне они очень не нравятся, потому что.
Большинство из них вполне очевидны для более-менее опытного разработчика, а стереотипное мышление еще никому в жизни не помогало.
Но сегодня мы поговорим не о них, а о других закономерностях, а именно о закономерностях поведения, наших человеческих закономерностях, а скорее даже антипаттернах.
Чтобы подлить масла в огонь, хотелось бы немного расшифровать название этого поста.
В повседневной жизни я стараюсь не использовать слово «программист».
Для меня это имеет негативный оттенок и сразу напоминает 90-е годы, когда всех называли программистами.
Меняли картриджи для принтеров и помогали бабушкам-бухгалтерам освоить первый компьютер.
Помните это нетленное «Ты программист!»? В общем, это слово себя дискредитировало.
Я как-то привык называть своих людей разработчиками, и для меня программист — своего рода антипод разработчика.
Что ж, за годы опыта я усвоил большое количество антипаттернов для хорошего разработчика, которые ему следует использовать как можно реже.
Чем реже я их слышу, тем счастливее я.
Итак, давайте начнем.
001. И это работает на моем компьютере
Эта фраза знакома каждому, кто проработал в индустрии хотя бы несколько месяцев и должна быть просто исключена из лексикона любого разработчика.Чувак, если ты присылаешь на тестирование код, который не работает на твоем компьютере, то тебе не место в профессии! По определению, код всегда работает на вашем компьютере.
Как же может быть иначе? Но это не работает ни для тестировщика, ни для клиента, ни для кого-либо еще, потому что вы не учли какие-то нюансы, различия в среде, данных, погоде на Марсе, и ваша задача выяснить, что именно и исправить именно это, а не пытаться сразу перекосить и доказать свою невиновность.
Нет ничего плохого в том, чтобы что-то не принять во внимание.
В моей практике были случаи, которые можно было только принять во внимание.
Никто не мог!
010. Что за придурок это делает?
Чувак! Пользователи не придурки.Это люди, которые вынужденно или нет, пользуются творением ваших рук и, что самое интересное, платят за это.
Откуда у вас зарплата? Ты не знаешь? И я знаю.
Тот же Иннокентий Петрович, которого вы уже 3 раза обозвали мудаком, заплатил нам за годовую подписку.
Наши любимые пользователи круче любых тестировщиков и вытворяют такие штуки, что у всех голова кругом.
Но это не их вина, а наша.
Раз они это сделали, значит, мы позволили им это сделать и несем ответственность за последствия и разбираемся с ними.
В практике мировой индустрии программного обеспечения известен не один случай, когда убеждение «Какой придурок такое сделаетЭ» привели к потерям в сотни тысяч долларов.
Так кто же в итоге оказался мудаком?
011. Тестеры ничего не проверяли! Что они там делают?
Чувак! Запомните раз и навсегда, что тестировщики не несут ответственности за качество программного обеспечения.Все, что они делают, это измеряют его качество и говорят, является ли оно высоким, достаточным или полным дерьмом.
Ответственность за качество программного обеспечения несут прежде всего его дизайнеры и разработчики.
Если вы сделали хреновый билд и отдали его тестировщикам, а они пропустили критическую ошибку и выпустили в производство, то это в первую очередь ваша вина, а не их.
Хотя их тоже накажут за то, что они не заметили.
Ваша задача — разрабатывать код так, будто вы — последний рубеж и за вами только производство и миллионы пользователей.
Не стоит рассчитывать, что тестировщики выловят все ошибки и у вас будет возможность их исправить.
Никто не знает ваш код лучше вас.
Пишите тесты, задавайте вопросы, исключайте крайние случаи и да пребудет с вами сила! В мире много компаний, где нет тестировщиков в привычном понимании.
И ничего, они живут.
100. Какой идиот это написал?
Как ни печально, но есть значительная, ненулевая вероятность, что ответом на этот вопрос будет: «Я? Упс!» Нет идеальных людей, мы все совершаем ошибки, срезаем углы при жестких ограничениях и всю жизнь учимся писать идеальный код. Большинству нормальных разработчиков хочется блевать, когда они видят собственный код в начале своей карьеры.И это нормально.
Помните об этом и подумайте в следующий раз, прежде чем называть кого-то идиотом.
Разработка программного обеспечения — это командная игра, и не стоит разрушать командные отношения ради мелкой ерунды.
Лучше поговорить с человеком и объяснить ему, что не так, в приватной беседе.
Если он адекватен, он будет вам только благодарен.
Или вы увидите свет, что вовсе не невозможно.
101. 99% готово
Это просто классика.Победить это невозможно, но надо бороться.
Чувак, помни, когда я спрашиваю статус твоей задачи, меня в подавляющем большинстве случаев интересует ответ на единственный вопрос: «Когда задача будет выполненаЭ» Через час, 2 часа, завтра вечером или в пятницу.
Меня не очень интересуют интимные подробности ваших непростых отношений с очередным плагином jQuery. И уж тем более не говорите мне про 99%.
Как показывает моя практика, 1% может хватить и на час, и на день, и на неделю.
Качественная детализация, планирование и оценка сроков выполнения задач — одна из важнейших характеристик зрелого разработчика.
Поэтому в следующий раз, когда ваш тимлид спросит вас о готовности вашего задания, вы четко ответите ему: «Оно будет готово через 3 часа» и, самое главное, вы сдержите это обещание.
Если вы не готовы дать такую оценку, то нужно ясно и понятно объяснить почему, и правильно установить ожидания, чтобы никого не подвести.
110. Это невозможно!
Чувак.Прежде всего, мы оба знаем, что это возможно.
В отрасли нет проблем, которые не могла бы решить мотивированная команда или разработчик.
Когда нас что-то действительно интересует и нам это нужно, мы сворачиваем горы и делаем это.
Билл Гейтс написал FAT, находясь в самолете из Нью-Йорка в Сиэтл (я знаю, это история).
Если вы скажете мне: «Это невозможно», то это известный признак значительного разочарования, связанного с данной задачей.
Самое главное в такой ситуации – не пытаться придумывать надуманные аргументы и загонять проблемную ситуацию еще глубже.
Это может привести к серьёзному конфликту.
Вместо того, чтобы говорить «Это невозможно!» вам просто нужно сделать перерыв, подумать, остыть, а затем сесть со своим руководителем группы или менеджером и обсудить проблему.
Если у вас есть адекватный, то решение возникшей проблемы будет найдено и только укрепит вашу репутацию.
111. Я не буду делать такую ерунду.
По большому счету это вариация предыдущей задачи.
Как правило, это утверждение означает, что ты, чувак, просто не хочешь и/или не заинтересован делать то, что от тебя просят, или у тебя есть свое, совсем другое мнение о том, как это следует делать.
Если вы профессионал, это означает, что вам платят деньги за выполненную работу.
Если вас не устраивает предлагаемая работа, то будьте мужчиной, не будьте занудой и просто поменяйте ее.
И еще один важный момент. Вы не можете знать и понимать все.
Иногда нужно просто взять и сделать так, как тебя просят. Вам это может тысячу раз не нравиться, но тем не менее это будет правильное решение.
Часто клиентские менеджеры и руководители действительно знают лучше, поскольку они гораздо чаще, чем вы, общаются с клиентами, сталкиваются с их проблемами и, как правило, в конечном итоге несут ответственность за их удовлетворенность.
Спасибо за внимание, поздравляю с Новым годом и надеюсь, что этот пост сделает мир немного лучше! P.S. Извините за несколько резкий и фамильярный стиль изложения.
Так и должно быть.
П.
П.
С.
Предлагайте свои схемы в комментариях.
Я уверен, что еще не всему научился.
В опросе могут участвовать только зарегистрированные пользователи.
Войти , Пожалуйста.
Кто ты? 29,92% Программист 1056 43,72% Разработчик 1543 7,62% Atsky менеджер или руководитель группы 269 3,71% Эric Gamma 131 15,02% Сочувствующий 530 Проголосовали 3529 пользователей.
682 пользователя воздержались.
Теги: #люди #психология #разработка программного обеспечения #программисты #программирование
-
Кармагеддон Перевоплощается
19 Oct, 24 -
Еще Один Шаг К Pycon.ru — Ekb.py
19 Oct, 24 -
Красота Математики
19 Oct, 24