понедельник, 14 июня 2010 г.

[prog.thoughts] По следам разговоров о важности ошибок в программах

В конце прошлой недели довелось встрять в несколько споров, в которых ряд товарищей-лисперов (уж не знаю, случайно это или нет) высказывались в том плане, что борьбе с ошибками уделяется незаслуженно много внимания. Началось все в ЖЖ Сергея Зефирова (aka thesz), откуда я выцепил замечательную цитату. Продолжение последовало в блоге Андрея Москвитина (aka archimag).

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

Пока же меня поразили две вещи:

1. Программисты, которые не придают борьбе с ошибками важного значения. Этого я вообще понять не могу. Ведь работа программиста это что? Придумать, реализовать, отладить. Всего три основных занятия, одно из которых полностью посвящено поиску и устранению ошибок. И вот профессиональные программисты вдруг заявляют – ну и что, что ошибки, ну есть ошибки и что в этом страшного? Ну найдут ошибку, ну так исправим…

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

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

Что остается? Какой-нибудь бесплатное для пользователей ПО. Вроде интернет-браузеров. Когда сбоит GMail или в очередной раз падает Opera – это неприятно. Но тут уж ничего не поделать – бесплатный сыр он и есть бесплатный.

Может быть это какой-то внутрикорпоративный софт? Пишет себе контора какой-нибудь складской учет. Ну будет подглючивать время от времени АРМ у зав.сладом. Ну пожалуется, ну исправят. Главное, что он данные вводить в БД может. А то ведь требования постоянно меняются, новые типы товаров, новые виды отчетности. Программа должна успевать за ними. Если успевает, то глюки можно потерпеть. Вероятно, речь идет именно о таких проектах (косвенным подтверждением я считаю рассказ о разработке софта для сети гипермаркетов).

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

Хотя, с другой-то стороны… Если лично я буду озабочен качеством производимого мной кода, то я буду более ценным специалистом. Так что лучше я продолжу борьбу с ошибками, и буду дальше культивировать в себе нетерпимое отношение к ним. А остальные пусть сами решают, хотят ли они конкурировать с такими как я :)

Отправить комментарий