IT Brunch - 12.11.2011 - Myths about Design

Preview:

DESCRIPTION

http://itbrunch.com.ua/program-agile-practitioners-2011-11-12/

Citation preview

@dmytromindra #itbrunch

Мифы о проектировании Дмитрий Миндра Microsoft Technologies Lab Leader Lohika, Odessa

@dmytromindra #itbrunch

@dmytromindra #itbrunch

Что такое хорошо и что такое плохо ? (с точки зрения заказчика)

Хорошо Плохо

@dmytromindra #itbrunch

Любое решение начинается с проблемы

@dmytromindra #itbrunch

Миф 1: В современной разработке ПО нет проблем.

@dmytromindra #itbrunch

Проблема №1: Завершенность

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

@dmytromindra #itbrunch

Проблема №2: Дефекты

Объем работы, связанной с устранением дефектов и ошибок в «завершенном» программном продукте, необходимой для того, чтобы сделать продукт готовым к использованию часто занимает значительное количество времени. Часто это время больше чем время разработки продукта.

@dmytromindra #itbrunch

Проблема №3: Требования Функциональность программного обеспечения редко соответствует требованиям конечных пользователей.

@dmytromindra #itbrunch

Проблема №4: Поддержка

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

@dmytromindra #itbrunch

Мир стал быстрее

@dmytromindra #itbrunch

Проектировщик - двойной агент

@dmytromindra #itbrunch

Ключевые цели гибкого архитектора

• Предоставить работающее решение

• Максимизация ценности для заказчика

• Найти решения, которые удовлетворяют всех заинтересованных лиц

• Учитывать дальнейшую разработку или эксплуатацию

• Управлять изменениями и сложностью

@dmytromindra #itbrunch

Миф 2: Мы докупим оборудование

@dmytromindra #itbrunch

Кризис

1948 1960

Стоимость разработки

Время год год

@dmytromindra #itbrunch

Миф 3: Архитектура - это …

разноцветные прямоугольники !

@dmytromindra #itbrunch

Диаграммы – это проекции

@dmytromindra #itbrunch

@dmytromindra #itbrunch

Дьявол в деталях

Нам нужно больше диаграмм ! Пиши, блин, код !

@dmytromindra #itbrunch

Миф 4: Архитектор не должен писать код

@dmytromindra #itbrunch

Архитектор разбирается во всем

@dmytromindra #itbrunch

Проектирование – борьба с неопределенностью

Основной инструмент Проектировщика ПО очень похож на инструмент метеоролога

@dmytromindra #itbrunch

К изменениям требований

@dmytromindra #itbrunch

Миф 5: Спроектируем все заранее Big Design Upfront (BDUF)

@dmytromindra #itbrunch

Похоже, проект не был готов к изменениям.

@dmytromindra #itbrunch

Миф 6:Не будем ничего проектировать вообще

No Design Upfront (NDUF)

@dmytromindra #itbrunch

Миф 7: Технический долг – это плохо написанный код

@dmytromindra #itbrunch

Технический долг быстро накапливается

@dmytromindra #itbrunch

Технический долг может привести к совершенно негибким решениям

@dmytromindra #itbrunch

Миф 8: Нет времени на модульные тесты

@dmytromindra #itbrunch

Рефакторинг без тестов

@dmytromindra #itbrunch

Test Driven Development

модульные тесты бесплатно

@dmytromindra #itbrunch

Миф 9: Сделаем сразу сложно

@dmytromindra #itbrunch

Факт: Сложно сделать легко

@dmytromindra #itbrunch

Вязкая напыщенная архитектура – не миф, а реальность

@dmytromindra #itbrunch

Agile - это баланс

@dmytromindra #itbrunch

В заключение

Программное обеспечение не ограничено физикой, как здания. Оно ограничено фантазией, дизайном, организацией. Короче говоря, оно ограничено свойствами людей, а не свойства мира. "Мы встретили врага, и этот враг мы сами".

-- Мартин Фаулер

@dmytromindra #itbrunch

Расширить ограничения мы можем только работая над собой.

@dmytromindra #itbrunch

Дмитрий Миндра

RnD Tech Lead

Lohika, Одесса

@dmytromindra

Dmytro.Mindra@gmail.com