Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Extreme banking

1,323 views

Published on

Доклад для 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!

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Extreme banking

  1. 1. eXtreme Banking Вадим Герасимов Андрей Солнцев
  2. 2. Интернет-банк БСПБ i.bspb.ru демо-версия: idemo.bspb.ru В ТОП-3 российских ИБ по версии Markswebb
  3. 3. Интернет-банк в цифрах
  4. 4. 4 программера
  5. 5. 0 архитекторов
  6. 6. 0 архитекторов 0 аналитиков
  7. 7. 0 архитекторов 0 аналитиков 0 релизменеджеров
  8. 8. 0 архитекторов 0 тестировщиков 0 аналитиков 0 релизменеджеров
  9. 9. GA спустя 5 месяцев после старта первый in-house релиз через месяц
  10. 10. Релиз каждые 2-3 дня
  11. 11. 180 UI тестов за 4 минуты!
  12. 12. Как мы до такого докатились
  13. 13. Java платформа
  14. 14. НО без энтерпрайз фанатизма ● ● ● ● ● EJB ESB JMS Spring WebLogic, Websphere, JBoss ● WAR ● EAR
  15. 15. Наш выбор: Простой
  16. 16. Наш выбор: Простой Быстрый в разработке
  17. 17. Наш выбор: Простой Быстрый в разработке Инспирирован RoR-ом
  18. 18. Наш выбор: Простой Быстрый в разработке Инспирирован RoR-ом Перезагрузка классов на лету
  19. 19. Наш выбор: Простой Быстрый в разработке Инспирирован RoR-ом Легко масштабируемый Перезагрузка классов на лету
  20. 20. для изменений базы данных
  21. 21. для написания UI тестов
  22. 22. Дисциплины и техники
  23. 23. Парное программирование Пацан накодил пацан протестил
  24. 24. Парное программирование Пацан накодил пацан протестил TDD
  25. 25. Парное программирование Пацан накодил пацан протестил TDD KISS
  26. 26. Парное программирование Пацан накодил пацан протестил TDD KISS Частые pair switching
  27. 27. Парное программирование Пацан накодил пацан протестил TDD KISS continuous refactoring Частые pair switching
  28. 28. Прямое общение с заказчиком
  29. 29. Прямое общение с заказчиком два раза в неделю skype стендапы
  30. 30. Прямое общение с заказчиком два раза в неделю skype стендапы раз в 1-1.5 месяца on-site встречи
  31. 31. Прямое общение с заказчиком два раза в неделю skype стендапы раз в 1-1.5 месяца on-site встречи 8 x 5 коммуникация через Skype
  32. 32. Минимум документации Document driven development
  33. 33. Интерактивная и самотестируемая документация для интеграции онлайн продавцов с Интернет-банком
  34. 34. It’s DEMO time!
  35. 35. Сколько должно быть тестов? ● ● ● ● Unit UI Integration ...
  36. 36. Integration UI Unit Не жалей!
  37. 37. Integration UI Unit Бизнесчувствительная функциональность, базовые сценарии Не жалей!
  38. 38. Integration UI Unit Критичная функциональность, есть возможность управлять состояниями в backend-ах (или не требует) Бизнесчувствительная функциональность, базовые сценарии Не жалей!
  39. 39. Что и как мы тестируем Unit тесты: интеграция с backend-ом, валидация
  40. 40. Что и как мы тестируем Unit тесты: интеграция с backend-ом, валидация UI тесты: не покрывают backend
  41. 41. Что и как мы тестируем Unit тесты: интеграция с backend-ом, валидация Интеграционные тесты: минимальный набор критических функций UI тесты: не покрывают backend
  42. 42. Быстрые UI тесты Свой in-memory backend
  43. 43. Быстрые UI тесты Свой in-memory backend Переиспользуем сессию
  44. 44. Быстрые UI тесты Свой in-memory backend Переиспользуем сессию Быстрый логин
  45. 45. Быстрые UI тесты Свой in-memory backend Переиспользуем сессию Быстрый логин Запускаем только под Chrome
  46. 46. Быстрые UI тесты Свой in-memory backend Переиспользуем сессию Быстрый логин Оптимизация работы LESS Запускаем только под Chrome
  47. 47. Билд и релиз Jenkins CI
  48. 48. Билд и релиз Jenkins CI Zero branching
  49. 49. Билд и релиз Jenkins CI Zero branching ранняя доступность для альфа-тестеров
  50. 50. Билд и релиз Jenkins CI Zero branching ранняя доступность для альфа-тестеров UI тесты часть билда
  51. 51. Билд и релиз Jenkins CI Zero branching ранняя доступность для альфа-тестеров Готовность в любой момент выслать билд UI тесты часть билда
  52. 52. Билд и релиз Jenkins CI Zero branching git log как release notes ранняя доступность для альфа-тестеров Готовность в любой момент выслать билд UI тесты часть билда
  53. 53. Итого ● Делай просто
  54. 54. Итого ● Делай просто ● Релизь часто
  55. 55. “Правопорядок в стране определяется не наличием воров, а умением властей их обезвреживать.” Глеб Жеглов
  56. 56. Итого ● Делай просто ● Релизь часто ● Ты и клиент - единое целое
  57. 57. Итого ● Делай просто ● Релизь часто ● Ты и клиент - единое целое ● Не раздувай команду
  58. 58. Итого ● Делай просто ● Релизь часто ● Ты и клиент - единое целое ● Не раздувай команду ● Тесты - наше всё
  59. 59. Итого ● Делай просто ● Релизь часто ● Ты и клиент - единое целое ● Не раздувай команду ● Тесты - наше всё ● UI тесты должны быть быстрыми
  60. 60. Следующие шаги: Разработка Интернет-банка для нового клиента
  61. 61. Следующие шаги: Разработка Интернет-банка для нового клиента Сохранение и развитие единой платформы
  62. 62. XP работает! Вадим Герасимов Андрей Солнцев http://blog.codeborne.com/2012/12/5.html

×