Как профессиональный разработчик программного обеспечения, вы интересуетесь всем, что связано с программированием. Вы следите за блогами, читаете книги и посещаете онлайн-курсы по программированию. Вы очень любите свою профессию. Замечательно! Но, к сожалению, должен вам сказать: этого недостаточно.

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

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

Вы знаете, я уже давно не программист. Я закончил всего 2 года назад факультет компьютерных наук и уже столько времени работаю веб-разработчиком. Но за этот короткий промежуток времени я участвовал в нескольких проектах в разных компаниях, с разными командами и технологиями. Мне больно говорить, но работать над некоторыми из этих проектов было совсем не весело. Случалось много вещей, которые я не считал правильными, но, поскольку у меня не было большого опыта, я продолжал говорить себе: «Это реальный мир, все идет не так гладко, как должно, и так оно и есть». ». Но несколько месяцев назад, проживая одни и те же ситуации снова и снова, я прочитал книгу, которая навсегда изменила мою работу: «Чистый кодер» Роберта К. Мартина, также известного как дядя Боб.

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

Вы когда-нибудь отправляли код, который не был должным образом протестирован? Вы когда-нибудь говорили «да» нереальным оценкам, зная, что на это не хватит времени? Вы программируете, основываясь на «вере», что это сработает? Вы только предупреждаете свою команду, что пропустите важный дедлайн за несколько часов до его истечения? Если вы когда-либо делали что-то подобное, вы работали неэтично. Это может показаться не таким уж ужасным, мы все видели такое поведение много раз. Но пока такие вещи продолжают происходить, мы будем работать в неблагоприятных условиях. Мы пойдем на работу недовольными, сгорим и навредим себе и проектам, которые должны построить. Но как мы это изменим?

Прежде всего, я считаю, что мы должны признать, что мы не машины и мы не программируем для машин. Легко потеряться в логической стороне программирования и забыть, что, в конце концов, то, что мы делаем, делается людьми и для людей. Каждая строка кода, которую мы пишем, повлияет на чью-то жизнь, и это большая ответственность. Отрицать это не только неэтично, но и безответственно. Великие программисты пишут код, который одновременно быстр и удобочитаем для людей. Несмотря на то, что это очевидный факт, мы и наши коллеги нередко относимся к себе как к машинам. Мы даже шутим об этом! Принимая человеческую природу программирования, мы можем позволить нашим рабочим местам быть менее напряженными и более полезными.

Этический профессионал не боится сказать «нет», когда это правильно. Управлять ожиданиями наших клиентов и коллег сложно, и к этому нужно подходить ответственно. Говорить «да», когда вы знаете, что ответ должен быть «нет», плохо не только для вас, это плохо для всех. Людям нужно знать, когда что-то не так, и они должны знать это как можно быстрее.

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

Может показаться крутым сказать, что программное обеспечение пожирает мир, но мы не можем забывать, что программное обеспечение — это всего лишь инструмент. Инструмент, который был написан людьми для других людей, а не что-то волшебное, что не несет ответственности за ущерб, который он может причинить жизни людей. Особенно в наши дни, когда новые стартапы создаются каждый день, и многие из них больше всего заботятся о том, чтобы расти как можно быстрее, чтобы привлечь много денег от инвесторов (к сожалению, иногда этика не очень хорошо сочетается с деньгами). Я хотел бы услышать несколько докладов о том, как крупные технологические компании решают этические вопросы, как в области программирования, так и на более широком уровне…

Быть этичным профессионалом непросто. В школе этому не учат, и JS-фреймворка для него нет (по крайней мере, пока! ;) ). Возможности поступать этично будут появляться каждый день, и, в конце концов, это личный выбор каждого из нас. Надеюсь, ты сделаешь правильный выбор.