Программисты тоже ошибаются

Снова SOER подтолкнул меня на тему для видео и на этот раз это вопрос разного отношения к ошибкам в разных странах. Это действительно так. В России не принято ошибаться и с самого детства нас учат все делать правильно и даже идеально. Не знаю как при нынешнем образовании, а в моем школьном детстве снижали оценки просто за помарки, если я с первого раза написал неверно. Любые исправления наказывались снижением оценки. На математике давали лист для черновика, а на чистовик нужно было все писать идеально.

В Канаде дети в школе пишут карандашом и даже запрещают писать ручкой, поэтому что-угодно можно исправить когда-угодно. А даже если кто-то не исправит, то ничего страшного не будет. 

Не могу говорить за все школы, но у моих детей не было в школе грамматики. Они просто не проходили правописания и даже если в одном слове сделать три ошибки это не влияло на итоговую оценку. У меня дочка во время выпуска из школы получила грамоту за знание английского, потому что она писала лучше многих канадцев. 

Как мы заполняем документы в различных организациях? Не красиво написали букву? Идите переписывайте весь бланк. В Канаде абсолютно на любом бланке можно зачеркнуть что угодно и написать сверху что угодно. Даже на денежных чеках можно это делать. 

У нас пару недель назад менеджер одной команды делал презентацию по поводу оптимизации SQL запросов и на ней присутствовала сотня программистов в Zoom. Менеджер программистов перед всеми говорит, что в SQL Server ненужно создавать индексы, потому что это плохо влияет на производительность. 

Если бы в России кто-нибудь во время выступления перед программистами сказал что-то такое, то он бы услышал все самое нелицеприятное не только в свой адрес, но в адрес всех своих родственников. Майкрософт должны повеситься после такого заявления и удалить реализацию индексов из базы данных, потому что это зло по мнению не просто программиста, а менеджера в компании. 

И что же в Канаде? Стоня программистов на презентации промолчала, даже директора. Я не верю, что директора тоже считают, что индексы создавать не нужно. 

Месяц назад была ещё презентация, на которой рассказывали про Azure. В конце презентации только один парень спросил – а можно сделать комментарий и потом долго поправлял выступавшего. Знаете что интересно? Фамилия его заканчивается на ОВ и не просто так, он русский из Израиля. 

После презентаций в США и Канаде принято восхищаться и задавать вопросы, но не поправлять. За долгие годы я понял, что если хочешь указать на ошибку, то нужно попробовать корректно задать вопрос так, чтобы навести на нее, но если рассказывающий не дошел сам до проблемы, то оставляем так. 

Я считаю, что указывать на ошибки нужно. Нельзя просто сидеть и слушать как кто-то говорит что-то Абсолютно неверное или даже сказать бред. Но делать это нужно не для того, чтобы подчеркнуть ошибку или показать себя умнее, а с целью все же научить и показать. Люди слушают про то, что индексы зло и реально не создают их. У нас в компании почти нет индексов на таблицах. 

Когда на презентациях рассказывают про то, что индексы зло, то люди реально начинают так думать, а некорректно заученный материал хуже незнания. Я уже много раз говорил, что при незнании вы будете гуглить и узнаете правильный ответ. В случае неверного знания вы будете думать неверно. 

И тут возникает взрыв мозга – а как узнать, что то, что я знаю действительно верное знание? Вот поэтому я рекомендую читать техническую литературу и всегда разных авторов, разные каналы на youtube, чтобы получать информацию из разных источников и анализировать результат, пробовать на практике и т. д. 

Канадское молчание приводит к тому, что люди не учатся и совершают ошибки снова и снова, но люди не боятся делать эти ошибки. Восточной-европейский подход с наказаниями приводит к томную что люди боятся совершить ошибку и начинают перекладывать работу или ответственность на других. 

Какой подход лучше? Мне кажется, что лучше всего что-то посередине – на ошибки нужно указывать и нужно подсказывать, чтобы люди учились. Пул реквесты мы создаем не для того, чтобы покритиковали код, а для того, чтобы в нем нашли слабые места и подсказали. 

Кстати, пул реквесты. Очень много кто просто утверждает запросы без комментариев только потому, что боятся затронуть чье-то самолюбие, а программисты очень нежные и могут обидеться на критику. 

Видел, как в некоторых компаниях считают баги и их количество и это самое страшное. Я кажется уже где-то говорил, что это зло, которое приводит только к конфликтам. Если тестера поощряют за количество багов, а программиста наказывают, то они не будут помогать друг-другу, а будут конкурировать. 

Я к ошибкам отношусь нормально. Мне плевать, сколько будет багов, главное, чтобы результат был таким, чтобы клиенты были довольны программой. 

Соер в своем видео говорил об опыте работы в компании, где за баги наказывали и о программистах, которые совершают ошибки, но именно они толкают разработку. Вот я как раз отношусь к таким толкателям. У меня достаточно часто QA находят баги и бывает даже немало, но при этом я и реализовываю достаточно много. Я не боюсь совершать ошибки, потому что чтобы их не было, нужно просто ничего не делать. Это если перефразировать знаменитую фразу – не ошибается тот, кто ничего не делает. Я не могу заниматься ничем, я люблю на работе решать задачи и решать проблемы и конечно же в процессе совершаются различные ошибки – где-то что-то недосмотрел, где-то что-то не протестировал сам. 

Те, кто считают что за ошибки должны пинать, что ошибки есть и они будут. Программист, который досконально тестирует и проверяет свой код – это бред. Для этого и создали QA или просто тестеров, которые проверяют программиста на такие вещи, как ошибки и даже правильно ли он понял задание. Если в задании говориться “реализовать фишку X”. Программист реализует ее и вроде бы доволен, а qa читает задание и говорит – “да нет, тут же явно что-то другое написано и явно не соответствует реализации”. И вот тут начинаются баги, переделки и это нормально. Главное не количество, а качество и качество – это то, что выдает потом команда в конце своего пути. 

Есть мнение, что если программист заранее протестирует сам, то это сократит разработку. Да, если программист все же не будет бояться совершать ошибки. Если же он будет боятся, то количество времени, которое программист будет тратить на тестирование своего кода будет расти. Он будет кайфовать от работы. 

Из моего опыта хороший тестер лучше протестирует. Дайте программисту возможность ошибаться и тестеру возможность помогать исправлять эти ошибки и результат будет на много более качественным, а не количественным. 

Чтобы создать идеальный продукт, нужно пройти стадию проб и ошибок. Не бойтесь реализовывать, отдавать ее тестеру, получать обратную связь и делать продукт лучше. 



Внимание!!! Если ты копируешь эту статью себе на сайт, то оставляй ссылку непосредственно на эту страницу. Спасибо за понимание

Комментарии

Паника, что-то случилось!!! Ничего не найдено в комментариях. Срочно нужно что-то добавить, чтобы это место не оставалось пустым.

Добавить Комментарий

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне