Presentation from IT Brunch "Learn from failures" conference (online, June 2012) about my experience and lessons learned from Tracer Bullet Development approach
Эллина Азадова, QA Lead и Антон Сирота, Expert QA Automation в DataArt, опираясь на свой менторский опыт, поделились ошибками, которые допускают начинающие тестировщики на практике или испытательном сроке и дали свои рекомендации по их предотвращению.
Эллина Азадова, QA Lead и Антон Сирота, Expert QA Automation в DataArt, опираясь на свой менторский опыт, поделились ошибками, которые допускают начинающие тестировщики на практике или испытательном сроке и дали свои рекомендации по их предотвращению.
Vision of the future learning strategy and some specializations for Department of Information Systems and Technologies of National University "Lviv Polytechnic". Created by Roman Hasko. 10.2015
How to succeed in software development. Following agile methodology principles helps to achieve much better results. Know more about eXtreme Programming, one of the famous agile software development methodology.
Presentation from ConfeT&QA Online conference (February 2012) about techniques and approaches for successful adoption of TDD (Test Driven Development) in functional tests with WebDriver.
Доклад для 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!
● Що таке "цикл зворотнього зв'язку"?
● Цикли зворотнього зв'язку у eXtreme
Programming
● Зміцнення та скорочення циклу
зворотнього зв'язку
● Декларація взаємозалежності
● Запитання та обговорення
TDD style proved itself as very reliable and quick way of business tasks solving with code. But most of examples on trainings and in the internet show how to apply TDD to simple input/output code or interface based dependencies with mocking techniques. What about other areas of application development like database related code? Could it be developed with TDD style? What does TDD bring to developer? I will try to answer these questions in my talk and show on practical examples how helpful TDD is for database code, how it reduces risks and opens the door for refactoring techniques.
We all know that Scrum proposes us only 3 roles: Product Owner, ScrumMaster and Team Member. During my work as a trainer I saw many teams that failed to manage project architecture, technical decisions and design solutions in new more flexible way. Without strong technical background team members make mistakes. Those mistakes are very hard to detect and prevent without strong technical leadership and well established engineering process. There should be somebody responsible for both of these things and Tech Lead is a very suitable role for this purpose. I believe that Agile projects can easily live without Project Manager but missing Tech Lead role will cost team much more.
Vision of the future learning strategy and some specializations for Department of Information Systems and Technologies of National University "Lviv Polytechnic". Created by Roman Hasko. 10.2015
How to succeed in software development. Following agile methodology principles helps to achieve much better results. Know more about eXtreme Programming, one of the famous agile software development methodology.
Presentation from ConfeT&QA Online conference (February 2012) about techniques and approaches for successful adoption of TDD (Test Driven Development) in functional tests with WebDriver.
Доклад для 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!
● Що таке "цикл зворотнього зв'язку"?
● Цикли зворотнього зв'язку у eXtreme
Programming
● Зміцнення та скорочення циклу
зворотнього зв'язку
● Декларація взаємозалежності
● Запитання та обговорення
TDD style proved itself as very reliable and quick way of business tasks solving with code. But most of examples on trainings and in the internet show how to apply TDD to simple input/output code or interface based dependencies with mocking techniques. What about other areas of application development like database related code? Could it be developed with TDD style? What does TDD bring to developer? I will try to answer these questions in my talk and show on practical examples how helpful TDD is for database code, how it reduces risks and opens the door for refactoring techniques.
We all know that Scrum proposes us only 3 roles: Product Owner, ScrumMaster and Team Member. During my work as a trainer I saw many teams that failed to manage project architecture, technical decisions and design solutions in new more flexible way. Without strong technical background team members make mistakes. Those mistakes are very hard to detect and prevent without strong technical leadership and well established engineering process. There should be somebody responsible for both of these things and Tech Lead is a very suitable role for this purpose. I believe that Agile projects can easily live without Project Manager but missing Tech Lead role will cost team much more.
Денис Тучин - Удачные и неудачные паттерны распределённого Agile (Agile Days ...Denis Tuchin
Видео выступления: https://www.youtube.com/watch?v=vOMSRSTl1Xo
Хотим мы этого или нет, но часто приходится работать с удалёнными командами, а иногда и с полностью распределёнными, когда все участники сидят в разных местах. На докладе разберём некоторые паттерны организации взаимодействия распределённых Agile команд, какие из них работают лучше, какие хуже и почему, а также посмотрим, что можно изменить, чтобы получился всё же Agile. Рассмотрим такие паттерны как:
- передача изолированных User Story удалённой команде
- Индивидуальные User stories
- Scrum of Remote Scrums
- Функциональные распределённые команды
- Scrum in spite of distributed team
В длительной перспективе ретроспективы – самая важная часть гибких процессов. Но очень часто у команд не получается запустить процесс непрерывного улучшения, либо через некоторое время этот процесс обрывается, когда команда думает, что все проблемы решены. Я расскажу не только теоритическую часть, которая позволит преодолеть эти проблемы, но и дам несколько десятков примеров конкретных практик, которые применяются на эффективных ретроспективах. Доклад рассчитан, как на начинающих ретроспективы, так и практиков гибких методологий.
Rise and fall of Story Points. Capacity based planning from the trenches.Mikalai Alimenkou
Люди в мире Agile используют Story Points - для Agile коучей и тренеров это самый простой способ объяснить, как следует проводить оценку и планирование в «новом мире». Но тогда эта простая концепция нарушает реальные практические кейсы. В настоящее время команды состоят из очень специализированных людей, работающих над бэкендом, фронтэндом, тестировании, инфраструктуре и прочим. Для них почти невозможно иметь общий уровень сложности. Это только одна из проблем, которые мы собираемся осветить в этом докладе.
Чтобы оставаться конструктивным, а не просто старомодным парнем из XP, Николай поделится своим опытом с более точной и прагматичной техникой оценки/планирования - планированием на основе возможностей.
We have spent many years testing our applications and systems manually and with test automation tools. During this time many bug root causes have been classified and could be detected automatically with special static analysis tools. Most of them could be applied at the early stages of development even before code is integrated into the main development branch. In this talk, I will go through available solutions and demonstrate what kinds of issues may be detected automatically reducing the time and effort of traditional testing.
Modern CI/CD in the microservices world with KubernetesMikalai Alimenkou
In this talk, we will go through the design process of modern CI/CD for the microservices-based system with Kubernetes support. We will discuss how to verify consistency between microservices, apply different levels of quality gates and promote artifacts between environments. Thanks to Kubernetes we will review different approaches of environment resources optimization for development needs during CI/CD cycles.
Saga about distributed business transactions in microservices worldMikalai Alimenkou
Most of people nowadays think microservices architecture is a great way to build any system. They visit conference talks, read books and review tutorials, where ‘hello world’ applications are built just in several minutes using microservices approach. But the reality is not so wonderful and one of the biggest pain is hidden inside distributed business transactions. In monolith application this topic is almost completely covered with DB level transactions. In distributed world you have to face many issues trying to implement reliable and consistent business logic.
In this talk we will review different types of problems related to distributed business transactions, popular SAGA pattern, frameworks and techniques to simplify your life without compromising quality of the system.
Effectiveness tips from Kubernetes trenches by Captain ObviousMikalai Alimenkou
Nowadays almost everybody knows about Kubernetes, some teams are using it and some are only dreaming about it. Despite the popularity, Kubernetes is not simple and there are so many ways of abuse this peaceful technology. In this talk I would like to present quite obvious set of tips, based on failures and ineffectiveness at different companies I have worked with during last several years.
Ride the database in JUnit tests with Database RiderMikalai Alimenkou
For a long time DB related testing in Java world has been a real pain and most developers tried to reduce number of such tests as much as possible. With good in-memory database implementations like H2, schema migration solutions like Liquibase or Flyway, containerization with libraries like TestContainers, database management is now much simpler. But test data management is still a pain. Some developers use SQL dumps, others insert data via JPA/JDBC or rely on prepared data sets. Good old DBUnit may be a good option, but it is not so developer friendly and not adopted well for modern annotations driven development style. Database Rider closes the gap between modern Java development environment and DBUnit, bringing DBUnit closer to your JUnit tests, so database testing will feel like a breeze. In addition to flexible data sets management this library provides other useful features: programmatic data sets definition, leak hunting, data sets export, constraints management, etc. As contributor and loyal user for many years, I would like to share my experience with Database Rider and demonstrate how to make database testing a fun again!
Wastful waste or why everything is so slow in developmentMikalai Alimenkou
I think almost everybody experienced cases when things are moving very slowly in IT companies or teams. You have many people, talented engineers, Agile process and development speed is still below expectations. We try to focus on performance and efficiency last 10 years, improving our practices and tools. But we are still there in terms of speed when they are applied to real life cases. How is it possible? In this talk we will review the concept of waste circles and understand what are the main sources of time waste in development process. This concept would help you to check your processess, focus on right things and achieve much better results in your organization or team.
Nowadays traditional layered monolithic architecture in Java world is not so popular as 5-10 years ago. I remember how we wrote tons of code for each layer repeating almost the same parts for every application. Add unit and integration testing to understand how much time and efforts has been spent on repeatable work. All cool ideas around DDD (domain driven design) and Hexagonal Architecture was just a nice theory because reality hasn’t allow us to implement it easily. Even Dependency Injection with Spring framework was completely focused on traditional layered approach, not even talking about JavaEE platform.
Today we have Spring Boot ecosystem covering most of our needs for integration with almost all possible technologies and microservices architectural trend, enabling completely new approach to build Java applications around domain model. It is so natural to build Java domain-oriented services and connect them with external world using ports and adapters, that Hexagonal Architecture is almost enabled by default. You just need to switch your way of thinking…
Wastful waste or why everything is so slow in developmentMikalai Alimenkou
I think almost everybody experienced cases when things are moving very slowly in IT companies or teams. You have many people, talented engineers, Agile process and development speed is still below expectations. We try to focus on performance and efficiency last 10 years, improving our practices and tools. But we are still there in terms of speed when they are applied to real life cases. How is it possible? In this talk we will review the concept of waste circles and understand what are the main sources of time waste in development process. This concept would help you to check your processess, focus on right things and achieve much better results in your organization or team.
DevOps checklist or how to understand where is your team in DevOps landscape ...Mikalai Alimenkou
DevOps become a buzzword in a last few years. Several companies, development and product teams have achieved quite impressive results in this area making cultural changes, transforming their processes and practices, introducing new roles, tools and techniques.
Do you think is achievable for you team or it’s still a bunch of drama? There is no common approach for measuring achievements and understanding how much DevOps’ich the current team/company is. In this talk I will provide attendees with basic checklist to start with and some reliable tools/techniques to monitor progress of “DevOps transformation”.
DevOps checklist or how to understand where is your team in DevOps landscapeMikalai Alimenkou
DevOps is a hot topic during last several years. Some companies, teams and products have achieved quite impressive results in this area making cultural changes, transforming their processes and practices, introducing new roles, tools and techniques. At the same time there is no common approach for measuring achievements and understanding “how DevOps” the current team/company is. In this talk I will provide attendees with basic checklist to start with and some reliable tools/techniques to monitor progress of “DevOps transformation”.
Практические трудности в разработке Медкарты для целой страныMikalai Alimenkou
Почти год мы в Whirl Software разрабатываем систему Медкарта в масштабе целой страны. За это время мы столкнулись с множеством интересных сложностей и проблем, часть из которых успешно победили, а для некоторых хорошего решения до сих пор не найдено. В этом докладе мы поделимся накопленным практическим опытом и некоторыми техническими решениями, которые могут быть полезны в рамках разработки электронных медицинских систем.
Hexagonal architecture with Spring Boot [EPAM Java online conference]Mikalai Alimenkou
Nowadays traditional layered monolithic architecture in Java world is not so popular as 5-10 years ago. I remember how we wrote tons of code for each layer repeating almost the same parts for every application. Add unit and integration testing to understand how much time and efforts has been spent on repeatable work. All cool ideas around DDD (domain driven design) and Hexagonal Architecture was just a nice theory because reality hasn’t allow us to implement it easily. Even Dependency Injection with Spring framework was completely focused on traditional layered approach, not even talking about JavaEE platform.
Today we have Spring Boot ecosystem covering most of our needs for integration with almost all possible technologies and microservices architectural trend, enabling completely new approach to build Java applications around domain model. It is so natural to build Java domain-oriented services and connect them with external world using ports and adapters, that Hexagonal Architecture is almost enabled by default. You just need to switch your way of thinking…
Almost any application or software system manages data. It is hard to imagine test automation that is not affected by this fact. There are many differenct approaches how to prepare system under test, providing predefined test data: use application UI, invoke API methods, run business logic directly, access DB from test scenarios, etc. In this talk we will review most of existing approaches, starting from the easiest and the most popular ones and finishing with really tricky ways to manage your test data for large distributed systems. There is no ideal solution for every case or silver bullet, but I hope your toolset will become wider after visiting this talk.
Agile antipatterns: review after 10 years of practiceMikalai Alimenkou
Вот уже более 10 лет Agile движение шагает по Украине и стучится практически в каждую компанию. Но приносят ли новые процессы, принципы и практики реальную практическую пользу? Получается ли изменить к лучшему команды, проекты, компании? Я в роли консультанта за эти 10 лет поработал с более чем 100 компаниями, поэтому повидал много хорошего и плохого. В данном докладе хочется пробежаться по основным проблемам, сложностям и анти-паттернам в переходе отечественных компаний на "Agile рельсы". Мы рассмотрим какие практики не очень хорошо приживаются, от чего страдает большинство команд, какие основные препятствия встречают на своем пути и как умудряются их обходить. Я надеюсь, доклад поможет зародиться множеству интересных дискуссий.
Nowadays traditional layered monolithic architecture in Java world is not so popular as 5-10 years ago. I remember how we wrote tons of code for each layer repeating almost the same parts for every application. Add unit and integration testing to understand how much time and efforts has been spent on repeatable work. All cool ideas around DDD (domain driven design) and Hexagonal Architecture was just a nice theory because reality hasn’t allow us to implement it easily. Even Dependency Injection with Spring framework was completely focused on traditional layered approach, not even talking about JavaEE platform.
Today we have Spring Boot ecosystem covering most of our needs for integration with almost all possible technologies and microservices architectural trend, enabling completely new approach to build Java applications around domain model. It is so natural to build Java domain-oriented services and connect them with external world using ports and adapters, that Hexagonal Architecture is almost enabled by default. You just need to switch your way of thinking…
Almost any application or software system manages data. It is hard to imagine test automation that is not affected by this fact. There are many differenct approaches how to prepare system under test, providing predefined test data: use application UI, invoke API methods, run business logic directly, access DB from test scenarios, etc. In this talk we will review most of existing approaches, starting from the easiest and the most popular ones and finishing with really tricky ways to manage your test data for large distributed systems. There is no ideal solution for every case or silver bullet, but I hope your toolset will become wider after visiting this talk.
Бытовая классификация тестировщиков с точки зрения разработчикаMikalai Alimenkou
Тестировщики часто говорят о противостоянии и конфликтах с разработчиками. Но ведь есть команды, где все живут в мире и согласии. Видимо что-то тут не так? Я хочу поговорить о том, как тестировщиков видят сами разработчики. В докладе будет проведена забавная классификация. Кроме известного всем тестировщика-обезьянки будут представлены тестировщик-муха, тестировщик-нацист, тестировщик-панда и многие другие герои. Высможете лишний раз задуматься над тем, как вас видят со стороны и, возможно, изменить ситуацию к лучшему.
Доклад будет также полезен менеджерам проектов и лидерам команд. Вы сможете быстрее распознавать те или иные шаблоны поведения тестировщикови принимать меры по повышению уровня командной работы. Приходите, будет интересно!
Code Review tool for personal effectiveness and waste analysisMikalai Alimenkou
Usually it is hard to analyze personal effectiveness and detect wastes in development process because developer’s work decomposition is not transparent and available for analysis. As a good sample of ineffective process imagine developer, who spends 1 day on task implementation and then reimplements it several times according to code review notes during next 2 days. Or another developer, who is waiting for code review during 2 days, switching context to other tasks, finally gets notes and switches back to initial task, trying to refresh all details in his head. And so on and so forth…
Code review tool usage helps to aggregate lots of useful information about any code change at any stage (static analysis, code review, rework, acceptance, integration into main branch). In this talk I’m going to demontrate how this information could be used for detailed analysis of development effectiveness and wastes detection. Based on mentioned analysis you could implement many improvements for your development process and then measure their success.
Funny stories and anti-patterns from DevOps landscapeMikalai Alimenkou
During last several years DevOps became strong buzzword used almost in every project, team and company. But almost everywhere it is used in very funny and strange context. For example, existing ops guys are renamed to DevOps just to sell them to the client for more money. Or DevOps is used as new job title for some magically powerful person who is able to operate cloud environment and modern infrastructure related tools, leading team of old school ops and participating in management meetings. In this talk I’m going to review all different anti-patterns and bad practices in DevOps landscape using stories from my personal experience as Delivery Manager and independent consultant.
2. Немного обо мне
• Java Technical Lead/Scrum Master в компании
Zoral Labs
• 7+ лет в разработке
• 5+ применяю Agile подходы
• Эксперт в Agile инженерных
практиках
• Основатель и тренер в XP Injection
• Организатор и идеолог конференций
Selenium Camp, JEEConf, XP Days Ukraine, IT
Brunch
9. Как это работало для нас?
1. Делим систему на
части
2. Продумываем
интерфейсы между
ними
3. Члены команды
работают независимо
4. Используем заглушки
для локальной
работы