Неопределенность качества информационных систем

forsalecarПредположим у вас есть команда лучших программистов в мире и они разрабатывают гениальный программный продукт. Лучший в своем классе. Способный после короткого 1,5-2 недельного обучения пользователей катастрофически повысить производительность их труда. К сожалению, вы вряд ли сможете выгодно продать такой программный продукт. Не сможете потому, что есть сотни или тысячи других людей, продающих информационные технологии. А заказчик (пользователь) он просто не очень понимает, какая программа, действительно, хорошая, а какая нет. Для него программное обеспечение как часы. Он видит только циферблат и стрелки, но не знает, как устроен механизм внутри часов.  Продавать хорошее программное обеспечение это как продавать хороший, но не очень новый автомобиль. Он не попадал в аварию и регулярно проходил ТО. Вы-то знаете, что за пять лет эксплуатации с машиной не было никаких проблем. Но покупатель этого не знает. Он видит перед собой еще сотню внешне таких же машин — кузов вроде не битый, салон в хорошем состоянии, моторный отсек чистый и 99% из них имеют скрытые проблемы (потому их и продают).  Вы никогда не получите за такую машину справедливую цену, так зачем же её продавать? 

Хорошие подержанные автомобили вымываются с рынка. На это обратил внимание Нобелевский лауреат по экономике Джордж Акерлоф в своей работе «Рынок «лимонов»: неопределенность качества и рыночный механизм» (выжатыми лимонами в США называют подержанные автомобили, которые выработали свой ресурс). Если не предпринять специальных мер, то такой рынок схлопывается  и со временем перестает существовать. Одни люди хотели бы продать автомобили, находящиеся в хорошем состоянии, а другие хотели бы их купить. Но ни первые, ни вторые не могут этого сделать. Рынок заполнен «выжатыми лимонами». Никто не хочет писать качественную литературу. Чтобы продать новую книгу, нужен известный автор, звучный заголовок,  красивая обложка, пара рецензий и реклама в метро. Никто не снимает хорошее кино. Достаточно пригласить несколько звезд и снять минутный рекламный ролик о фильме. Никто не будет делать качественное программное обеспечение. По крайней мере, до тех пор, пока мы не научимся отличать хорошее от плохого.

Есть еще один аспект хорошего программного обеспечения. Эрик Реймонд в знаменитой работе «Собор и базар» отметил, что «Каждая хорошая работа над программным обеспечением начинается с реализации персональных целей разработчика». Проще говоря, хорошее программное обеспечение не пишется за деньги на заказ, на основании требований пользователя. Реализуя ваши требования, программисты зарабатывают себе на жизнь, а хорошие программы пишут вечером после работы для собственных нужд. Даже если кто-то захочет нарушить такой порядок вещей, то в ситуацию вмешается проектный менеджер, у которого есть дедлайны и, как правило, отсутствует понимание внутреннего устройства информационных систем.

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