Этика индустрии разработки софта

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

Например, в начале рабовладения раб был просто военнопленным. Так что убийство раба не у кого не вызывало ни малейших эмоций. Ну, да, рачительный хозяин продал бы, неумно, но почему бы и нет. Ну, скажем, как выкинуть старую телефонную книгу в мусор, а не в recycling/макулатуру. Собственно, выкидывание старой телефонной книги в мусор вместо макулатуры где-нибудь в Германии сейчас вызовет куда большее общественное осуждение (а то и штраф), чем вызывало в тех же местах убийство военнопленного-раба, скажем, во времена ранней Римской империи. Но к поздней Римской империи уже сложились нормы, осуждающие убийство рабов за исключением небольшого всем известного списка. За некоторые формы убийства раба владелец мог даже отвечать по закону.

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

Начнем со сверурочных – overtime. Вообще-то, если честно, неоплачиваемые сверхурочные – это воровство. Фирма просто ворует время вашей жизни. К сожалению, сверхурочные так же распространены в индустрии разработки софта и вообще IT, как они были распространены на потогонных конвейерных линиях заводов Форда примерно сотню лет назад в начале прошлого столетия. Хуже того, у большинства фирм даже и выбора часто не так много – халявные сверхурочные воспринимаются менеджментом как стандарт индустрии, без которого просто невозможно выжить в конкуренции.

Конечно, есть исследования (почитайте, скажем, Тома ДеМарко), что сверхурочные на самом деле не увеличивают производительность программистов, но пока это дойдет до высшего менеджмента... Тем временем, простым смертным вроде нас с вами остается только или принять их как данность, или уйти в другую профессию. Ну, или искать редкие островки с умными менеджерами.

Но вот что я совершенно ненавижу и не принимаю, это менеджеры-халявщики, freeloaders, которые не только вынуждают людей работать по 10-12 часов в день, но еще и считают это должным и не стоящим никакой компенсации. Когда люди работают на вас изо дня в день на износ, они жертвуют очень многим ради вас. Имейте достоинство расплачиваться по счетам, хотя бы частично. Дайте несколько дней дополнительного отпуска после выпуска продукта, или, скажем, сделайте рождественскую неделю выходной, или дайте хорошую премию людям. Да, это не компенсирует все, что они потеряли, но хотя бы часть. И это покажет, что вы им благодарны. Если же все, что они получают взамен – это красивая табличка на стенку... Мне кажется, наша индустрия должна развиться до состояния, когда это приравнивалось бы к публичному хождению в туалет, если вообще не воровству.

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

А что еще, вам кажется, должно войти в этику разработки софта и, может быть даже, в законодательную базу?

***


blog comments powered by Disqus