extreme banking
DESCRIPTION
Доклад для XP Days Kiev 2013. Many people think that Agile works only for small or unimportant projects. Forget it! We use extreme programming for developing Bank Saint Petersburg which hit the TOP-3 of Russia internet banks. During the session we will share our XP experience and demonstrate pair programming, TDD, and UI tests on a real example of internet bank. Still unbelievable? So come and see!TRANSCRIPT
eXtreme BankingВадим Герасимов
Андрей Солнцев
Интернет-банкБСПБ
i.bspb.ruдемо-версия: idemo.bspb.ru
В ТОП-3 российских ИБ по версии Markswebb
Интернет-банк в цифрах
4 программера
0 архитекторов
0 архитекторов 0 аналитиков
0 архитекторов 0 аналитиков
0 релиз- менеджеров
0 архитекторов 0 аналитиков
0 тестировщиков 0 релиз- менеджеров
GA спустя 5 месяцев после старта
первый in-house релиз через месяц
Релиз каждые 2-3 дня
180 UI тестов за 4 минуты!
Как мы до такого докатились
Java платформа
НО без энтерпрайз фанатизма
● EJB● ESB● JMS● Spring● WebLogic, Websphere,
JBoss● WAR● EAR
Простой
Наш выбор:
Простой Быстрый в разработке
Наш выбор:
Простой Быстрый в разработке
ИнспирированRoR-ом
Наш выбор:
Простой Быстрый в разработке
Перезагрузка классов на лету
ИнспирированRoR-ом
Наш выбор:
Простой Быстрый в разработке
Перезагрузка классов на лету
Легко масштабируемый
ИнспирированRoR-ом
Наш выбор:
для изменений базы данных
для написания UI тестов
Дисциплины и техники
Парное программирование
Пацан накодил-
пацан протестил
Парное программирование
TDDПацан накодил-
пацан протестил
Парное программирование
TDD
KISS
Пацан накодил-
пацан протестил
Парное программирование
TDD
Частые pair switching
KISS
Пацан накодил-
пацан протестил
Парное программирование
TDD
Частые pair switching
KISScontinuous refactoring
Пацан накодил-
пацан протестил
Прямое общение с заказчиком
Прямое общение с заказчиком
два раза в неделю skype стендапы
Прямое общение с заказчиком
два раза в неделю skype стендапы
раз в 1-1.5 месяца on-site встречи
Прямое общение с заказчиком
два раза в неделю skype стендапы
раз в 1-1.5 месяца on-site встречи
8 x 5 коммуникация через Skype
Минимум документацииDocument driven development
Интерактивная и самотестируемая документация
для интеграции онлайн продавцов с Интернет-банком
It’s DEMO time!
Сколько должно быть тестов?
● Unit● UI● Integration● ...
Unit
UI
Integration
Не жалей!
Unit
UI
Integration
Не жалей!
Бизнес-чувствительная функциональность, базовые сценарии
Unit
UI
Integration
Не жалей!
Бизнес-чувствительная функциональность, базовые сценарии
Критичная функциональность, есть возможность управлять состояниями в backend-ах (или не требует)
Что и как мы тестируемUnit тесты: интеграция с backend-ом, валидация
Что и как мы тестируемUnit тесты: интеграция с backend-ом, валидация
UI тесты: не покрывают backend
Что и как мы тестируемUnit тесты: интеграция с backend-ом, валидация
UI тесты: не покрывают backend
Интеграционные тесты: минимальный набор критических функций
Быстрые UI тесты
Свой in-memory backend
Быстрые UI тесты
Свой in-memory backend Переиспользуем сессию
Быстрые UI тесты
Свой in-memory backend Переиспользуем сессию
Быстрый логин
Быстрые UI тесты
Запускаем только под Chrome
Свой in-memory backend Переиспользуем сессию
Быстрый логин
Быстрые UI тесты
Запускаем только под Chrome
Свой in-memory backend Переиспользуем сессию
Быстрый логин
Оптимизация работы LESS
Билд и релиз
Jenkins CI
Билд и релиз
Jenkins CI
Zero branching
Билд и релиз
Jenkins CI
Zero branching
ранняя доступностьдля альфа-тестеров
Билд и релиз
Jenkins CI
UI тесты часть билда
Zero branching
ранняя доступностьдля альфа-тестеров
Билд и релиз
Jenkins CI
UI тесты часть билдаГотовность в любой момент выслать билд
Zero branching
ранняя доступностьдля альфа-тестеров
Билд и релиз
Jenkins CI
UI тесты часть билдаГотовность в любой момент выслать билд
Zero branchinggit log как release notes
ранняя доступностьдля альфа-тестеров
Итого
● Делай просто
Итого
● Делай просто
● Релизь часто
“Правопорядок в стране определяется не наличием воров, а умением властей их обезвреживать.”
Глеб Жеглов
Итого
● Делай просто
● Релизь часто
● Ты и клиент - единое целое
Итого
● Делай просто
● Релизь часто
● Ты и клиент - единое целое
● Не раздувай команду
Итого
● Делай просто
● Релизь часто
● Ты и клиент - единое целое
● Не раздувай команду
● Тесты - наше всё
Итого
● Делай просто
● Релизь часто
● Ты и клиент - единое целое
● Не раздувай команду
● Тесты - наше всё
● UI тесты должны быть быстрыми
Разработка Интернет-банка для нового клиента
Следующие шаги:
Разработка Интернет-банка для нового клиента
Сохранение и развитие единой платформы
Следующие шаги:
XP работает!
Андрей Солнцев
http://blog.codeborne.com/2012/12/5.html
Вадим Герасимов