OpenQuality.ru

Качество программного обеспечения

Качество программного обеспечения: в главных ролях

Лента  Радар  Блог  Опыт  
Разум  Видео  Заметки  Эпизоды


Качество ПО и девушка мечты: дорогу осилит ищущий

Ночь. Жуткий ветер и проливной дождь. Вы ведете машину и на перекрестке останавливаетесь у автобусной остановки. Под открытым небом, прижавшись друг к другу, стоят три человека, совсем продрогшие:

•  старушка, которая выглядит так, как будто сейчас умрет. Ей нужно в больницу, и как можно скорее;
•  ваш старый друг, когда-то спасший вам жизнь;
•  девушка, о которой вы мечтали всю жизнь и отдали бы все за то, чтобы с ней встретиться.

Машина двухместная. Кроме водителя, в ней может поместиться только один пассажир. Кто это будет? Старушка? Вы можете ее воскресить. Старый друг? Когда-то он подарил вам вторую жизнь. Девушка? Возможно, вы ее больше никогда не встретите. Ваш выбор?

Любой проект – будь то спасательная операция или создание программного обеспечения – предполагает принятие решений. В случае выпуска ПО мы принимаем решения в пространстве со множеством критериев:

•  стоимость и продолжительность цикла разработки
•  возможность повторного использования кода и расширения функциональности
•  краткосрочные и долгосрочные перспективы компании, риски
•  специфика отдельно взятого проекта

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

Каждый раз это варево уникально. Каждый раз шеф-повар должен тщательно взвешивать “pro” и “сontra”, чтобы выпускаемый продукт оправдал ожидания всех заинтересованных лиц. Как правило, подобные задачи решаются сведением мнокритериальной задачи к однокритериальной: выбирается наиболее важный критерий, и целевая функция макси(мини)мизируется при некоторых “бюджетных ограничениях”, в роли которых выступают другие критерии. Еще один вариант: линейная свертка, при которой для каждого критерия задаются весовые коэффициенты, обозначающие степень их важности, а задача сводится к максимизации линейной комбинации целевых функций. В общем и целом, наш повар ищет оптимальное решение, при котором значение каждого критерия не может быть улучшено без ухудшения значений по другим критериям.

В проекте по разработке ПО мы стремимся в минимальные сроки и с минимальными затратами выпустить качественный продукт и при этом учесть первичные и вторичные потребности всех заинтересованных сторон. Есть множество инструментов для расчета оптимального пути в пространстве альтернатив. Что можно рассчитать? Критический путь? Да. Риски – да. Издержки – да. Но имеющиеся инструменты не способны предложить нестандартные, творческие решения, не способны расширить множество вариантов, из которых можно выбирать. Вот здесь на помощь придут другие методики, другие подходы. Например, ТРИЗ – теория решения изобретательских задач. Или Force multiplication – расширение боевых возможностей войск без увеличения их численности.

Качество программного обеспечения достигается не только и не столько поиском/исправлением багов, сколько принятием оптимальных решений на каждом этапе разработки приложения. Если у качества ПО высокий весовой коэффициент, то это уже полдела. Вторая половина – вдумчивый анализ, исследование альтернатив, явных и неявных. И тогда мы получим не только завершение проекта в срок, но и качественный, востребованный продукт.

Порой достаточно сильного внутреннего желания найти компромисс, и тогда настойчивость и здравый смысл сослужат добрую службу. Вспомним фильм “Игры разума”. Джон Нэш читает лекцию студентам. Окна раскрыты настежь. За окном работает экскаватор. Шум настолько сильный, что в аудитории ничего не слышно. Профессор закрывает окна вопреки мольбам студентов, задыхающихся в духоте. Решение, устраивающее Нэша, но не устраивающее студентов. Миловидная девушка (будущая жена профессора-отшельника) решительно встает, открывает окно и просит рабочих сделать перекур на 40 минут. Очаровательные девушки всегда добиваются своего, верно? :)

Как поступить нашему автомобилисту? Старушка, старый друг или девушка из мечты?

•  Увезти любого из трех. Или уехать, не в силах выбрать.
•  Дать ключи от машины старому другу, попросить его отвезти старушку в больницу, а самому остаться на остановке с девушкой своей мечты.
•  Пусть девушка везёт старушку в больницу, а два старых друга доберутся пешком. Девушка оценит рыцарский поступок и/или пройдет проверку на прочность – ведь машину надо будет вернуть. Или не вернуть :)

Всегда есть выбор. Оставайтесь с нами.

Отправить в Twitter, Facebook, FriendFeed, ВКонтакте | Опубликовано 01.04.2009 в рубрике "Подходы"

Комментарии (9)

  1. Автор комментария : Виктория | April 1, 2009

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

    2. Может, не учтено, куда я еду “ночью, когда ветер и проливной дождь”
    если в больницу…
    к другу…
    или домой…

    3. Для меня тема девушки сразу отпадает. В “добрых” старушек ночью на перекрестке у остановки слабо верится, она бы дома, в тепле, скорую помощь вызвала, и такси для этого на остановках имеются (если скорой долго нет, телефон не работает…)- сомнений много.
    Вот и получается, что выбирать не из чего.
    :)

    [Ответить]


  2. Автор комментария : Капитан Аляска | April 2, 2009

    Виктория, спасибо за комментарий!

    1. Рад, что ваш опыт идет вам на пользу. Главное, чтобы не было головокружения от успехов. Самокритика никому не повредит.

    2. Одно место все равно свободно. В больницу? Старушке как раз туда и надо. К другу? Что мешает захватить второго друга? Домой? Почему не пригласить девушку? :)

    3. В жизни (и в разработке ПО) бывают коллизии, которых не ждешь. Если ситуация ожидаема (”нет и не может быть старушки”, “нет и не может быть 1000 запросов к серверу в минуту”), то и выбирать не из чего либо выбор очевиден. Бывают бабушки на обочине, не от хорошей жизни. ОК, пусть вместо девушки будет принц из вашей мечты :)

    [Ответить]


  3. Автор комментария : Виктория | April 2, 2009

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

    С самокритикой проблема есть. Завтра обо мне положительную статью напишут в газете. Я на подъеме. В хорошем настроении и дела спорятся.

    А принц есть и рядом уже давно.

    В работе все должно быть без эмоций и чувств в части решений, хорошо если на понимании и доверии.

    [Ответить]


  4. Автор комментария : Капитан Аляска | April 2, 2009

    Виктория, спасибо за комментарий!

    И Вы, и в Евгений, и Маша по своему правы. Суть любой непростой ситуации состоит в том, что нет однозначного, “правильного” решения. Есть решение, которое принимает отдельно взятый индивид исходя из своих приоритетов. Которые, кстати, со временем меняются. Возможно, лет через 10 у каждого из вас на эту задачу будет совершенно другой ответ.

    Эмоции и чувства есть всегда, мы люди. Другое дело, чтобы они а) были положительными; б) было умение ими управлять.

    Успехов на Вашем Пути и положительных откликов на положительную статью! :)

    [Ответить]


  5. Автор комментария : Виктория | April 3, 2009

    Только для Капитана Аляска информация :
    статья, если интересно можно поиском найти в интернете или на сайте Северной ж.д http://szd.ru/ в разделе “транспортная печать” газета “Северная магистраль” от 3 апреля 2009, стр.15 статья “Женщина, влюбленная в шахматы”.

    Поздравили меня рано утром. Это любимая газета на дороге.

    [Ответить]


  6. Автор комментария : Капитан Аляска | April 3, 2009

    Виктория, статью нашел (http://szd.rzd.ru/). Поздравляю с “серебром” в личном первенстве и желаю в следующем году взять “золото”! Успехов во всех ваших делах и новых побед.

    [Ответить]


  7. Pingback : OpenQuality.ru | Три инструмента, изменивших OpenQuality.ru | July 15, 2009

    […] сколько выбором варианта в пространстве имеющихся альтернатив. Нужен инструмент для web-разработок? Возьми FireBug. Или Web […]


  8. Автор комментария : alex | April 11, 2011

    А что если, девушка жена друга, бабушка (ей не плохо, она устала, приняла лишнего) - теща. Ночью, засиделись в гостях. Как изменится ваш выбор? :)

    [Ответить]


  9. Автор комментария : Капитан | May 1, 2011

    Alex, спасибо за комментарий. С тещей хорошо дружить, поэтому повезу ее домой. Ну не отбирать же девушку у друга, даже если мечтал о ней всю жизнь :)

    [Ответить]



Добавить комментарий

Пожалуйста, исправьте результат: дважды два равно



КРАТКОЕ СОДЕРЖАНИЕ

Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.


ПУТЕВОДИТЕЛЬ

Список всех статей с краткой аннотацией и разбивкой по рубрикам. Открыть карту.

ПОДПИСКА

Доступ к самым интересным материалам по электропочте и RSS. Подробности.

ИЩЕЙКА