Extreme banking

Post on 03-Dec-2014

940 views 0 download

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 of Extreme banking

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

Вадим Герасимов