31 October 2006

Паттерны ошибок: фальшивая черепица

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

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

Читать полностью »

рубрики: Инженерия ПО | Комментарии (0)

28 October 2006

Григорий Шикунов. Про кактусы и розы

Эта история - сатира о желаниях бизнесменов и работе консалтеров. Сама статья начинатся с определения слова Declaimer.

Disclaimer: 1) a renunciation of any claim to or connection with; 2) disavowal; 3) a statement made to save one’s own ass…
Kevin Smith, Dogma

Disclaimer (англ.): 1) отказ от любых претензий на что-л. или связи с чем-л.; 2) отречение; 3) оговорка, чтобы прикрыть себе задницу…
Кевин Смит, «Догма» (кинофильм)

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

рубрики: Юмор | Комментарии (0)

15 October 2006

Стратегия бабочки

Стратегия бабочкиВ детстве прочитал одну задачу из серии ТРИЗ. Условия задачи были примерно такими: Вы - бабочка-однодневка, и в ваш единственный день, как назло, идет дождь. Предложите наилучшую стратегию поведения. В качестве решения задачи бабочке предлагалось летать не в укрытиях, защищающих бабочку от дождя, а летать следовало на открытом пространстве, лавируя между каплями дождя.
Читать полностью »

рубрики: Инженерия ПО | Комментарии (0)

9 October 2006

an error occurred while processing this directive

Недавно прочитал такое предложение: “Пользователь - человек, а человеку свойственно ошибаться”. Если следовать этому правилу, то, наверное, программист и человек, связанный с разработкой программ, вообще, - это человек с большой буквы. :)
Под впечатлением от такого замечательного предложения захотелось найти и перечитать Теорию ошибок.

Итак…
Аксиома
В любой пpогpамме есть ошибки.

Читать полностью »

рубрики: Инженерия ПО, Юмор | Комментарии (0)

3 October 2006

Каждому танку - своя граната

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

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

Основные принципы SCRUM просты и интуитивно понятны:

  • Фиксация проблем, мешающих разработке и наискорейшее устранение этих проблем.
  • Функциональность, в которой заинтересован заказчик, должна быть реализована в первую очередь.
  • Ошибки нужно устранять сразу, как только они выявлены.

Также как и другие легкие методологии, SCRUM определяет короткие итерации (strint), в рамках которых реализуется заранее определенная функциональность, заданная в заранее зафиксированном перечне (backlog), а также предлагает механизм “обмена опытом” - ежедневные короткие совещания (scrum).

В чем же преимущества SCRUM? Посмотрите на замечательную картинку. Не правда ли из нее понятно, что SCRUM лучше других методологий? :)

На самом деле преимущества SCRUM - ее ориентированность на крупные сложные проекты, в которых требования постоянно “плывут”. SCRUM ориентирован именно на такие проекты и позволяет максимально эффективно отслеживать в процессе разработки целостность системы и выдерживать сроки и бюджет в рамках такого рода проектов.

рубрики: Инженерия ПО | Комментарии (0)

1 October 2006

7 принципов Леонардо

Кот да ВинчиЛеонардо да Винчи. Считается, что он на столетия опередил современников. Повышенный интерес к нему подогревается ореолом таинственности вокруг его работ, связанный прежде всего с историей его записных книжек и рукописей, которые после его смерти попали к частным коллекционерам и доступ к которым был ограничен. Только в конце XIX века начали расшифровывать и публиковать его дневники, в общей сложности около 7 тысяч листов. Чем объясняется такая плодотворность?

Ниже приводятся 7 ключевых слов - принципов, авторство которых приписывается да Винчи:

  1. Curiosita (любознательность): неуемная любознательность, как основной подход к жизни, и непрерывные поиски новых знаний.
  2. Dimostrazione (доказательство): опираться только на собственный практический опыт.
  3. Sensazione (ощущения): непрерывное совершенствование всех видов восприятия, в особенности видения.
  4. Sfumato (рассеяние): восприятие всего, как в жизни, где нет четких границ, все размыто, проникает одно в другое, и таким образом дышит, живет, пробуждает фантазию.
  5. Arte / Scienza (искусство/наука): поиск баланса между наукой и искусством, логикой и воображением.
  6. Corporalita (естественность): совершенствование гармонии, естественного баланса духовного и телесного.
  7. Connessione (тесная связь): стремление найти взаимосвязи между различными вещами и явлениями.

рубрики: Вне рубрик | Комментарии (0)