среда, октября 01, 2008

От улыбки станет всем светлей

smile Сегодня, 1 октября -- Международный День Улыбки. Вообще-то поводом для учреждения этого праздника стало изобретение "смайлика", но это всего лишь повод, а праздник посвящается самым настоящим человеческим улыбкам.

И сегодня же я прочитал новый пресс-релиз компании Microsoft, в котором анонсируется выход Visual Studio 2010.

Знаете, какую цель поставили перед собой создатели новой версии VS? Приносить радость разработчикам. Замечательная цель, правда?

А знаете, каково одно из основных нововведений в VS, которое должно помочь в достижении этой цели? Улучшение функций тестирования и значительное упрощение инструментария, который позволяет внедрять этап тестирования непосредственно в жизненный цикл программного продукта. Microsoft заботится о том, чтобы тестировщики могли приносить ещё больше радости разработчикам, причём на всех этапах жизненного цикла. Вот так!

Но давайте, коллеги, не будем ждать милости от Microsoft, давайте уже сейчас, сегодня, сообщая разработчикам о новом обнаруженном дефекте, сделаем это не с угрюмым выражением на лице, а с приветливой улыбкой :)

Улыбайтесь чаще! И шире :)))))

пятница, августа 01, 2008

TrainingLabs 2008: отчёт эксперта

Я побывал в роли эксперта на конференции TrainingLabs 2008. Поскольку организаторы не дали никаких специальных указаний относительно того, по каким принципам оценивать тренинги, я постарался самостоятельно выработать систему оценок. Ниже приведено описание этой системы и собственно оценки тех четырёх тренингов, в которых я принимал участие.

Описание системы оценок

Тренинги -- это особый жанр в обучении. Цель тренинга -- выработка и/или закрепление определённых навыков, а не "доведение до сведения слушателей" какой-то информации. Причём сделать это нужно как правило в сжатые сроки -- типовые тренинги занимают от нескольких часов до нескольких дней и не размазаны по времени. После тренинга человек может быть и не поймёт сразу, почему тот или иной приём работает, но всё равно будет в состоянии выполнять его и добиваться результата. А понимание придёт потом (может быть :) ). Именно этим тренинги и ценны. Я практически не встречал руководителей, которые бы отправляли сотрудников "послушать лекции". Другое дело тренинг -- три дня и человек может делать то, что раньше не мог. Например, его научили умножать и делить столбиком, хотя не объяснили, почему при этом получается правильный результат. Или калькулятором научили пользоваться, уж конечно не рассказывая, как он устроен внутри.

И я пришёл на TrainingLabs 2008 для того, чтобы увидеть именно тренинги, а не презентации, не лекции, не семинары.

Отличительной чертой тренингов является наличие достаточно большого количества активных форм -- самостоятельных и групповых заданий, различных способов получения обратной связи -- работа у доски, мини-доклады, дискуссии, майевтика (метод Сократа), ролевые игры и т.п. Во-первых, потому что долго делать одно и то же никто не может, нужно менять формы, иначе слушатели просто не выживут. Во-вторых, потому что у разных людей преобладают разные каналы восприятия, и чтобы научить всех -- нужно учить разнообразно.

Кроме того, личность тренера тоже играет большую роль, потому что это человек, который на время тренинга (а это может быть несколько дней) становится лидером группы, и не обязательно это может быть выражено явно, он может как "серый кардинал" незаметными действиями направлять группу в нужную сторону.

Именно на этих трёх китах (тренировка конкретных навыков, наличие активных форм, личность тренера) и базируется нижеприведённая система оценок.

Ну и конечно же я принимал во внимание, что перед тренерами стоит весьма непростая задача -- мало того, что им предоставлено всего полтора часа времени, так за это время они должны не просто провести мини-тренинг, а всячески продемонстрировать свою тренерскую крутизну, анонсировать другие свои тренинги, а также порекламировать свою тренинговую компанию.

Итак, вот мой оценочный лист:

1. Тренер
1.1. Представление тренера и тренинговой компании
1.2. Знакомство с аудиторией -- аудитория хоть и заинтересованная, но уровень её подготовки и мотивация неясны
1.3. Представление темы, содержания и цели и формата тренинга
1.4. Регламент -- насколько хорошо тренер контролирует время и управляет ходом событий
1.5. Риторика -- текст (что тренер говорит) и речь (как тренер говорит)
1.6. Экспертиза -- как тренер отвечает на вопросы, в том числе смежные с основной темой тренинга, как тренер способен подстроиться под уровень знаний аудитории

2. Тренинг
2.1. Соответствие названия содержанию
2.2. Наличие и разнообразие активных форм обучения
2.3. Прослеживаемость навыков, на тренировку которых нацелен тренинг, сфокусированность

3. Другое
3.1. Количество слушателей в аудитории.
3.2. Активность аудитории
3.3. Про другие тренинги -- анонсы, реклама
3.4. Общее впечатление

Оценка выполнялась по четырёхбалльной шкале: PASS, PASS/FAIL, FAIL/PASS, FAIL.

Александров А., ТЦ Люксофт, Управление тестированием, источники и сдерживание рисков

1. Тренер
1.1. Представление тренера и тренинговой компании: PASS.
1.2. Знакомство с аудиторией: FAIL, тема тренинга достаточно специфичная, скорее менеджерская, поэтому было бы весьма желательно хотя бы узнать, кто в теме, а кто нет. Конечно, можно предполагать, что в аудитории все в теме, а остальные ушли на другие тренинги. Тем не менее, с ходу посыпались термины "митигирование", "элиминация", куча англоязычных терминов без перевода и пояснений.
1.3. Представление темы, содержания, цели и формата тренинга: PASS/FAIL, отлично рассказано про структуру как представленной укороченной версии, так и полного варианта тренинга, но цели не сформулированы.
1.4. Регламент: PASS, никаких претензий, очень чёткий контроль времени, пресечение лирических отступлений, грамотная работа с вопросами, которые могут увести в сторону (про это ещё будет ниже, в разделе Активные формы).
1.5. Риторика: текст -- PASS; речь -- PASS/FAIL, недостаточно громко, даже для маленькой аудитории (точнее сказать, в конце предложений звук часто понижался до уровня слабой слышимости, а в целом громкость всё таки приемлемая).
1.6. Экспертиза: PASS, очень, очень высокий уровень.

2. Тренинг
2.1. Соответствие названия содержанию: PASS
2.2. Наличие и разнообразие активных форм обучения: FAIL/PASS, из активных форм была представлена только традиционная возможность задать вопросы и послушать ответы тренера. Следует признать, что с вопросами тренер умеет обращаться очень грамотно, отвечает те вопросы, на которые действительно имеет смысл ответить. Вопросы, уводящие в сторону, или такие, на которые ответ станет ясен из последующего изложения, фиксируются на флип-чарте и откладываются. Тем не менее, для такой интересной темы можно было бы придумать какие-то более сложные формы -- небольшие ролевые игры или самостоятельные задания, например, разбор модельных ситуаций и обсуждение.
2.3. Прослеживаемость навыков, на тренировку которых нацелен тренинг, сфокусированность: FAIL, навыки явно не выделены, упражнений нацеленных на их выработку нет.

3. Другое
3.1. Количество слушателей в аудитории: 20-22.
3.2. Активность аудитории: достаточно высокая.
3.3. Про другие тренинги: рассказано, и достаточно подробно.
3.4. Общее впечатление: хороший материал, прекрасно изложен, но в традиционной лекционно-семинарской форме, то есть это вообще нельзя назвать тренингом в полном смысле этого слова, потому что тренировка конкретных навыков просто отсутствует. Можно порекомендовать для тех, кто любил в вузе ходить на лекции и семинары и не спал на них. Для людей с альтернативными формами восприятия уровень полезности будет значительно снижен.

Булгаров В., ТЦ Люксофт, Автоматизация функционального тестирования посредством FITPro

1. Тренер
1.1. Представление тренера и тренинговой компании: PASS.
1.2. Знакомство с аудиторией: FAIL
1.3. Представление темы, содержания, цели и формата тренинга: FAIL, с ходу начался рассказ про то, что такое FITPro.
1.4. Регламент: PASS
1.5. Риторика: текст -- PASS/FAIL, текст как будто не подготовлен для публичного выступления, а сочиняется на ходу, как при рассказе коллеге, сидящем за соседним компьютером, то есть в целом по теме, но иногда не очень связные переходы; речь -- FAIL/PASS, быстрая и слабо акцентированная.
1.6. Экспертиза: PASS/FAIL, тренер весьма хорошо владеет темой "на знакомой территории", в данном случае -- при обсуждении автоматизации веб-приложений, но теряется при ответах на "заковыристые" вопросы, выходящие за рамки темы. В такой ситуации, впрочем, может спасти применение специфических тренерских приёмов (можно вопрос зафиксировать и отложить в кулуары, или предложить к обсуждению, а самому в сторонке послушать и подумать тем временем), но тренер не продемонстрировал владение этими приёмами.

2. Тренинг
2.1. Соответствие названия содержанию: PASS.
2.2. Наличие и разнообразие активных форм обучения: PASS/FAIL, тренинг посвящен освоению инструмента FITPro, инструмент показан, всем слушателям предоставлена возможность с ним поработать. Тем не менее, в основном это повторение действий за тренером, самостоятельных упражнений не было.
2.3. Прослеживаемость навыков, на тренировку которых нацелен тренинг, сфокусированность: FAIL/PASS, навыки явно не выделены, просто продемонстрированы различные возможности инструмента.

3. Другое
3.1. Количество слушателей в аудитории: 8.
3.2. Активность аудитории: достаточно высокая.
3.3. Про другие тренинги: информация не представлена.
3.4. Общее впечатление: хороший материал, очень удобный для организации тренинга, но навыки не выделены и самостоятельных упражнений мало, в основном повторение за тренером. Больше похоже на мастер-класс, а не на тренинг.

Мартыненко С., независимый тренер, Основные подходы к созданию тестовых сценариев

1. Тренер
1.1. Представление тренера и тренинговой компании: PASS.
1.2. Знакомство с аудиторией: PASS, очень хорошо собрана информация об аудитории.
1.3. Представление темы, содержания, цели и формата тренинга: PASS/FAIL, рассказано, но как-то невнятно.
1.4. Регламент: FAIL, не уложились в отведённое время. Можно конечно сделать вид, что это просто часть полного тренинга, его начало, но тогда так и надо было сказать -- сегодня у нас в плане только вот это и это, а вот то и то -- в полной версии.
1.5. Риторика: текст -- PASS; речь -- PASS, тренинг построен как "разговор по душам", а не как публичное выступление, текст и речь соответствуют выбранной форме.
1.6. Экспертиза: PASS, никаких претензий, тренер даже немного бравирует своим высоким уровнем :) .

2. Тренинг
2.1. Соответствие названия содержанию: FAIL, до сценариев вообще за отведённое время не добрались, застряли на уровне тест-кейсов.
2.2. Наличие и разнообразие активных форм обучения: PASS, очень широкий спектр применяемых приёмов -- диалог с аудиторией, организация работы в группах, самостоятельные задания, работа как с бумагой, так и с компьютером, работа слушателей у доски. Отлично, просто отлично!
2.3. Прослеживаемость навыков, на тренировку которых нацелен тренинг, сфокусированность: PASS/FAIL, навыки заранее явно не выделены, но по ходу тренинга на них акцентируется внимание.

3. Другое
3.1. Количество слушателей в аудитории: 15.
3.2. Активность аудитории: высокая.
3.3. Про другие тренинги: информация не представлена.
3.4. Общее впечатление: замечательный тренинг, печалит только то, что "в реале" его не существует -- Сергей в перерыве сказал, что у него не хватает времени на проведение тренингов. И очень жаль. Но может быть, если как следует попросить....

Воротягин М., Нагрузочное тестирование, обзор инструментария для тестирования

1. Тренер
1.1. Представление тренера и тренинговой компании: FAIL/PASS, я так и не смог понять (ни из рассказа, ни из презентации и раздаточных материалов, ни с сайта конференции), является ли Михаил независимым тренером или представляет какую-то компанию.
1.2. Знакомство с аудиторией: FAIL/PASS, почти отсутствовало.
1.3. Представление темы, содержания, цели и формата тренинга: PASS/FAIL, рассказано и про укороченную версию, и про полный вариант тренинга, однако цели не сформулированы.
1.4. Регламент: FAIL/PASS, тренер пытался контролировать время, но технические сбои его подвели. Тем не менее, это не является достаточным оправданием, LoadRunner надо было установить на все машины заранее, а не включать это как лабораторную работу в укороченный вариант тренинга.
1.5. Риторика: текст -- PASS; речь -- PASS/FAIL, слабо акцентированная, монотонная.
1.6. Экспертиза: PASS, никаких претензий.

2. Тренинг
2.1. Соответствие названия содержанию: FAIL, тренинг про инструмент HP LoadRunner, а вовсе не про нагрузочное тестирование само по себе, обзор инструментов тоже весьма непредставительный -- помимо HP LoadRunner упоминается только IBM Performance Tester и всё, причём речь идёт главным образом про тестирование веб-приложений, а для них как раз инструментов полным полно.
2.2. Наличие и разнообразие активных форм обучения: FAIL/PASS, вообще говоря, в полной версии тренинга анонсировано целых восемь лабораторных работ, но в укороченной не удалось попробовать почти ничего, так что трудно оценить, насколько хорошо они подготовлены. Но даже если все они хороши -- они всё равно нацелены на освоение возможностей определённого инструмента, а не навыков нагрузочного тестирования как такового, но про это см. предыдущий пункт.
2.3. Прослеживаемость навыков, на тренировку которых нацелен тренинг, сфокусированность: PASS/FAIL, навыки выделены, контроль достижения есть, но иногда вызывает некоторое недоумение. Ну и опять таки надо учитывать сказанное в пункте 2.1.

3. Другое
3.1. Количество слушателей в аудитории: 14.
3.2. Активность аудитории: высокая.
3.3. Про другие тренинги: информация не представлена.
3.4. Общее впечатление: тренинг получился очень сумбурный и скомканный, вероятно причиной этому технические накладки с установкой HP LoadRunner, но впечатление всё равно подпортилось.

В дополнение. общие замечания

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

Тем не менее, у меня сложилось впечатление, что тренеры не очень хорошо поняли поставленную перед ними задачу. Во всяком случае, это понимание разошлось с моим. Они не продавали свои тренинги, а просто проводили их. Ну вот если бы вы пришли на выставку оборудования для торговли -- витрины там разные, холодильники, а там стоят люди за этими витринами и продают мясо и овощи, хорошо продают, весело, с шутками-прибаутками -- но не то продают, не то!

Если бы это была настоящая конференция -- докладчики должны были бы рассказывать про новые методы обучения, про способы организации учебных групп, про оборудование классов и прочее такое. Нет, это было больше похоже на выставку. А что на выставке главное? Заинтересовать клиента. То есть за отведённые полтора часа нужно было не научить слушателей тестировать, а как-то донести до них мысль о том, что "мы можем научить вас тестировать, приходите на наши тренинги!" И вот этого как раз не было.

Когда будем делать вторую попытку?

четверг, мая 22, 2008

Parasoft готов "принять с повинной" клиентов Agitar

Недели две назад компания Agitar объявила о сворачивании операций. На сайте компании, правда, пока ничего об этом не сказано, оповещение отправлено только кредиторам. Сворачивание операций -- это такая мягкая форма банкротства, кредиторам предложено "полюбовно" закрыть тему.

На самом деле, как ни крути, это провал, продать стартап не удалось. В том, что Agitar -- это просто мыльный пузырь, мы нисколько не сомневались с самого момента её появления. Когда-то давно компания Sun Microsystems сделала инструмент для тестирования на основе формальных спецификаций ADL, который использовался для внутренних нужд, а потом ушёл в опенсорс. Компания Agitar заявила, что умеет делать следующий шаг в автоматизации -- генерировать эти самые формальные спецификации. Но секретных технологий никому не рассказывала, что вполне естественно, и инструменты свои попробовать широкой общественности тоже не давала -- а вот это уже было подозрительно. Вместо этого было сделано несколько "продаж" в достаточно солидные фирмы, которые дали весьма хвалебные отзывы, а также наняты "для представительности" такие известные товарищи, как Кент Бек и Роберт Биндер, которые, впрочем, нигде и никогда явно не рекламировали Agitar. Компания участвовала буквально во всех конкурсах и получила кучу наград. Они сделали достаточно интересный корпоративный блог. В общем, раскручивались вовсю. Мы ожидали, что  кто-нибудь вскоре купит Agitar, и только после этого он тихонько сдуется но нормальных размеров (какой-никакой, но инструмент они всё же разработали). И вдруг -- хлоп! Неожиданно.

Хм, а причём тут, собственно, Parasoft?

А притом, что они здорово воспользовались этой ситуацией, объявив, что им жуть как жалко невинно пострадавших клиентов Agitar, и потому всем, пришедшим с 20 мая по 15 августа с повинной, будет объявлена амнистия и их с радостью примут в число клиентов Parasoft.

Молодцы, поляки!

вторник, мая 20, 2008

Я буду "экспертом" на Training Labs 2008

28 июня 2008 года в Москве пройдёт необычное мероприятие -- Training Labs 2008. Необычность -- в смешении стилей. То ли это конференция, где вместо традиционных докладов будут проходить тренинги, то ли выставка тренингов в формате конференции. "Докладчики", они же "тренеры" будут демонстрировать своё мастерство, не рассказывая про свои умения, а показывая их на практике. "Слушатели" будут не просто слушать произносимые с трибуны речи, как на традиционных конференциях, а активно принимать участие в проводимых тренингах. А цель всего этого действа -- познакомить потенциальных заказчиков как лично с тренерами, так и с обучающими компаниями.

Но есть и ещё одна необычность -- помимо тренеров и слушателей в этой конференции будут ещё участвовать так называемые "эксперты", и я буду одним из них. Эксперт, с одной стороны, может быть полезен тренеру, который может использовать его как подсадную утку (чтобы оживлять участников, задавать в нужном месте нужный вопрос и т.п.), а с другой стороны эксперту вменяется в обязанность "подначивать" тренеров, чтобы посмотреть, как они будут реагировать в нестандартных ситуациях. Ну и ещё эксперты должны будут после конференции написать отзыв про каждый тренинг, в котором они участвовали.

Короче, очень интересно и нестандартно. Приходите, будем зажигать! :)

пятница, мая 16, 2008

Баг в контакте

Наткнулся на любопытный баг "В Контакте". Судя по всему, там можно создать группу с пустым названием. Например, вот такую: http://vkontakte.ru/club717740 . Но само по себе это не является ошибкой. А вот если такая группа встречается в результатах поиска -- происходит смещение полей, выглядит это вот так:

2008-05-16_1038

(можно поискать по ключевому слову "Тестирование", указав дополнительно тип группы "Клуб" и тему "Разное" -- тогда указанная группа окажется первой в результатах поиска)

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

понедельник, мая 12, 2008

В википедии открылся Software Testing Portal

В википедии открылся Software Testing Portal. Я обрадовался, побежал посмотреть - и был разочарован. Оказалось, что информации про тестирование в википедии крайне мало.

Мы тоже в рамках проекта software-testing.ru предпринимали попытки сделать базу знаний, но не преуспели. Оказывается, и для буржуев это пока не по зубам.

Имеется ещё одна попытка создания базы знаний про тестирование - http://www.testingperspective.com/tpwiki/ , но пока что ещё менее наполненная информацией, увы...

Ну почему тестировщики так не любят писать тексты на профессиональные темы?

пятница, апреля 11, 2008

Конференция SQADays 2008 - открыта регистрация

27 мая 2008 года в Москве пройдёт третья международная конференция SQA Days 2008, на которую приглашаются специалисты по тестированию и обеспечению качества программных систем, а также другие заинтересованные лица. Конференция посвящается вопросам, связанным с тестированием и обеспечением качества веб-приложений.


Для тестировщиков
Сейчас количество людей в России и ближнем зарубежье, занятых в области тестирования и обеспечения качества программных систем, быстро растёт. В условиях быстрого роста отрасли именно конференции дают возможность организовать наиболее динамичное распространение информации и эффективный обмен опытом. Конференция SQA Days 2008 является преемником конференции SQA-2, получившей большой отклик в среде тестировщиков. Мы надеемся, что в новом формате конференция станет ещё интереснее и информативнее.


Для разработчиков
Тот факт, что конференция, посвященная вопросам тестирования и обеспечению качества веб-приложений, совмещена с конференцией для разработчиков веб-приложений, далеко не случаен. Тестирование и разработка -- это две стороны одной медали. Обеспечить высокое качество программных систем можно только совместными усилиями, а для успешной коммуникации разработчики и тестировщики должны понимать, какие проблемы волнуют их партнёров по команде. Поэтому мы приглашаем разработчиков на нашу конференцию, а также настоятельно рекомендуем тестировщикам посещать конференции для разработчиков.


Для их начальников
Хотите организовать отдел тестирования? Хотите узнать, какие инструменты стоит покупать, а какие нет? Хотите узнать, какие методы тестирования сейчас наиболее популярны? Хотите повысить профессионализм ваших тестировщиков? Хотите найти подрядчика для выполнения независимого тестирования или, наоборот, заказчика на свои сервисы по тестированию?


Добро пожаловать на конференцию SQA Days 2008!

среда, апреля 09, 2008

Конференция SQADays 2008 - Call for Papers

27 мая 2008 года в Москве пройдёт третья международная конференция SQA Days 2008, на которую приглашаются специалисты по тестированию и обеспечению качества программных систем, а также другие заинтересованные лица. Конференция посвящается вопросам, связанным с тестированием и обеспечением качества веб-приложений:

  • функциональное тестирование;
  • тестирование производительности;
  • автоматизация тестирования и инструментальные средства;
  • конфигурационное тестирование;
  • тестирование удобства использования (usability);
  • тестирование защищенности (security);
  • статические методы обеспечения качества;
  • измерения и мониторинг;
  • тестирование и обеспечение качества как часть процесса разработки;
  • аутсорсинг тестирования.

Формы участия

Доклад - оригинальная работа, непосредственно связанная с тематикой конференции, представленная в форме выступления продолжительностью 20-30 минут, сопровождаемого показом слайдов.

Флип - короткое (5-10 минут) выступление на тему, связанную с тематикой конференции или близкую ей, с использованием доски или флип-чарта и фломастеров, либо устно, без использования специальных технических средств.

Форма и сроки подачи и рассмотрения заявок

20 апреля - крайний срок подачи заявок на участие в форме доклада;

27 апреля - срок рассмотрения заявок и формирования программы конференции;

11 мая - срок предоставления докладчиками готовых к показу слайдов.

Желающие выступить с докладом на конференции должны не позднее 20 апреля представить на рассмотрение программного комитета тезисы своего доклада: 1-2 страницы печатного текста.

Все материалы необходимо отправлять на адрес программного комитета: 2008@sqadays.ru

Заявки на участие в форме флипа будут приниматься без ограничений, в том числе непосредственно в день проведения конференции. Отбор флипов будет производиться непосредственно участниками конференции, для чего будет организована некоторая форма голосования.

Дополнительную информацию о конференции можно получить на официальном сайте http://www.sqadays.ru/

четверг, января 17, 2008

Software Testing – Cost or Investment? Часть 2.

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

Как весьма справедливо заметил в комментариях Евгений Пророк, значительную часть моих сентенций можно суммировать одним предложением -- обоим сторонам выгоднее заключить Service Level Agreement (SLA), чем заниматься "работорговлей". Да, это верно, но этого недостаточно. Заключение SLA вместо продажи FTE не превращает автоматически расходы в инвестиции. Потому что, по определению, инвестиции -- это долгосрочные вложения, целью которых является получение прибыли или увеличение активов в будущем. Заключение SLA в долгосрочном проекте можно интерпретировать как одну из форм инвестиций. Но ведь и в краткосрочном проекте тоже можно заключить SLA. Однако это было бы неправильно считать инвестированием, потому что никаких долгосрочных вложений в этом случае не делается.

Так что же, краткосрочные проекты -- это всегда чистый расход? Нет, нет, и ещё раз нет! Так может показаться только в том случае, если принимать в расчёт только финансовые активы. Однако современная экономическая наука трактует активы более широко. Например, в соответствии с концепцией сбалансированной системы показателей (balances score-card) следует рассматривать компанию с четырёх перспектив (групп показателей):

  1. "традиционная" финансовая,
  2. клиентская (лояльность клиентов, "популярность" и т.п.),
  3. внутренние процессы (зрелость, гибкость, инновационность и т.п.),
  4. персонал (развитие и рост).

Да, действительно, краткосрочные проекты практически не предоставляют возможностей для инвестирования в "финансовую" часть. Но при этом другие виды вложений отлично работают в долгосрочной перспективе! Повышайте лояльность клиентов и появятся долгосрочные проекты, зарабатывайте хорошую репутацию и придут новые клиенты, совершенствуйте внутренние процессы, предоставляйте людям возможности для профессионального роста и совершенствования -- это всё инвестиции, хотя и не финансовые.

суббота, января 05, 2008

Жизненный цикл разработки программного обеспечения -- что бы это значило?

Каждый год я рассказываю студентам, что такое ЖЦПС (жизненный цикл программной системы), что такое ЦРПС (цикл разработки программной системы), и в чём разница между ними. И всё было хорошо, пока в этом году один из студентов не пришёл ко мне и не сказал, что он дескать прочитал сделанное Сергеем Орликом переложение SWEBOK на русский язык, и там вводится другой термин (со ссылкой на Скотта Амблера) -- жизненный цикл разработки программного обеспечения. Пытливый студент хотел понять, как этот самый "ЖЦРПО" соотносится с теми двумя понятиями, про которые я рассказывал на лекциях.

Студента пришлось разочаровать, объяснив ему, что термин "жизненный цикл разработки программного обеспечения" вообще не имеет права на существование, потому что он внутренне противоречив. И что там скорее всего имелся в виду термин "цикл разработки программного обеспечения", а слово "жизненный" затесалось туда по недоразумению. Именно это объяснение я и собираюсь здесь привести.

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

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

Таким образом, противоречие в термине ЖЦРПО возникает из-за того, что неясно, какой процесс имеется в виду -- процесс существования (жизни) программной системы или процесс её разработки.

Первый способ разрешения противоречия заключается в выкидывании слова "разработка", тогда остается вполне осмысленный и часто употребляемый термин "жизненный цикл программного обеспечения" или "жизненный цикл программной системы". В этом случае речь идёт о наличии циклов в процессе существования (жизни) программной системы.

Говоря о жизненном цикле некоторого объекта или явления, мы можем иметь в виду один из двух смысловых вариантов.

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

Второй вариант -- мы рассматриваем процессы существования (жизни) нескольких различных однотипных объектов или возникающее и исчезающее явление и можем выявить повторяющуюся во всех этих процессах последовательность состояний. Например, процесс жизни растения или животного от зарождения до гибели.

Бывают ситуации, когда применимы оба варианта одновременно, то есть и процессы существования различных однотипных объектов схожи, и в процессе существования единичного объекта можно выделить некоторые циклы. Например, процесс жизни многолетнего растения можно интерпретировать как по второму варианту (зарождение, рост, размножение, гибель), так и по первому варианту, рассматривая циклические сезонные изменения.

Аналогичным образом, оба смысловых варианта могут применяться, когда мы говорим о жизненном цикле программной системы. Если мы рассматриваем разные программы (либо интерпретируем версии одной и той же программы как разные программы) и замечаем, что они проходят через одинаковую последовательность состояний (замысел, создание, внедрение, эксплуатация, утилизация) -- работает второй вариант. Если же мы рассматриваем одну программу в её развитии -- появление новых версий, новых ветвей, перенос на новые платформы, то работает первый вариант.

Второй способ разрешения противоречия -- выкидывание слова "жизненный", так что получается другой осмысленный, хотя уже и не очень часто употребляемый термин "цикл разработки программного обеспечения" или "цикл разработки программной системы". Этот способ подразумевает, что речь идёт о процессе разработки программной системы, который является частью, или подпроцессом, всего процесса её существования, причём из контекста ясно, что Скотт Амблер имел в виду именно этот вариант.

Напоследок хочется отметить, что поиск в русскоязычном Интернете показывает достаточно широкое распространение термина ЖЦРПО, причём в большинстве случаев подразумевается как раз второй вариант уточнения (ЦРПС), а слово "жизненный" просто выступает в роли слова-паразита.

Но в англоязычном Интернете ситуация гораздо хуже -- я вообще не понимаю, как они сами разбираются, что означает термин Software Development Life Cycle (SDLC). Скажем, Википедия при открытии страницы http://en.wikipedia.org/wiki/Software_development_life_cycle перебрасывает на страницу "Software development process", то есть эти понятия трактуются как полностью идентичные, а кроме того, указывается, что синонимом являются также термины "software lifecycle" и "software process", всё смешано в одну кучу. Имеется также страничка "Systems Development Life Cycle", на которой опять таки объявляется, что синонимом этого термина является "Systems Life Cycle". А наряду с этим существуют (видимо, специально для индусов) разъяснения, согласно которым SDLC вообще является синонимом линейной (водопадной) модели процесса разработки ПО. Такие дела.