Инженер-системотехник компании Cumulus Networks Питер Лумбис пришел к на первый взгляд парадоксальному выводу, что некачественный или откровенно плохой код всегда лучше, чем отсутствие кода в принципе. «Имеют место ситуации, когда вместо того, чтобы довести проект до завершения, разработчики начинают страдать перфекционизмом. Эти ситуации характерны не только для инженеров, которые пишут программы для работы сетевого стека, но и программистов из других областей ИТ», — объяснил он свою точку зрения изданию InformationWeek.
По его словам, даже плохо написанный программный код, который, тем не менее, приводит к достижению результата, всегда лучше пускай совершенного, но вялотекущего проекта с неопределенным будущим. Конечно, четко прописанный код имеет решающее значение для критически важных проектов типа работы мониторов сердечного ритма или систем противоракетной обороны, но «если мне требуется переместить группу файлов для некоторых пользователей или создать описания интерфейсов сети, то я не вижу причин гнаться за недостижимым», — говорит Лумбис.
В целом функциональный код имеет множество недостатков — он может быть или нескладным или «безнадежно длинным». «Очевидно, что опытный программист может превратить двести строк кода в десять, но какое это имеет значение, если в итоге они помогают вам сэкономить время и упростить работу», — полагает эксперт. Перфекционизм прочно укоренился в сознании многих ИТ-специалистов, в том числе инженеров в области создания сетей. Более того, большинство людей, желающих обрести технические навыки, изначально обладают жилкой стремления к идеалу.
Иногда это создает проблемы и оборачивается тем, что сам процесс работы становится препятствием к получению результата. Иными словами, многим программистам сложно примириться с тем, что бывает некачественно написанный, но вполне функциональный код. Тем не менее, всё больше и больше инженеров, в частности из сферы сетевых разработок, начинают приглядываться к пусть недостаточно качественному, но быстрому и работоспособному коду. Это связано с ростом популярности программно-определяемых сетей (SDN), и тем, что инженерам, ранее не имевших опыта в кодировании, приходится сталкиваться с программированием.
Лумбис советует им не расстраиваться по поводу того, что написанный ими код может быть «грубым» и «неотполированным», главное — чтобы он отвечал основным требованиям проекта. «Вы должны понимать, что несмотря на то, что разработка ПО является отдельной дисциплиной и ранее не сильно пересекалась с технологиями сетевых инфраструктур, она потребуется для работы», — сказал Лумбис.
Он пояснил, что «плохое программирование» не стоит воспринимать как новую профессию с прилагающейся к ней зарплатой. «Это не значит, что вам нужно быть экспертом. Речь идет о создании нового набора навыков, частью которых когда-то стала виртуализация. Вы можете видеть растущее сообщество сетевых инженеров, которые обучаются программированию», — говорит Лумбис.
В течение ближайших трех-пяти лет мы станем свидетелями нарождающейся волны специалистов в области управлениями сетями, которые без отрыва от основной сферы деятельности смогут создавать некоторое количество «плохого» кода. Возможно, он пригодится не только для решения вспомогательных, но и основных задач.