it brunch - 12.11.2011 - myths about design
DESCRIPTION
http://itbrunch.com.ua/program-agile-practitioners-2011-11-12/TRANSCRIPT
@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
Расширить ограничения мы можем только работая над собой.