Program

Conference program

Conference program is forming and call for papers was opened. We will publish all submitted talks here after initial review stage. Final version of the conference program will be published on November 1. If you have any questions related to the program and talk submission please send them to review@xpdays.com.ua.

Training days (December 3-4)

!!! Attention !!! Registration on training days and payment for them should be done separately from main conference days. Follow conference program and announcements on the conference site to choose the most suitable trainings.

December 3 December 4
9:30-18:30
sold out
9:30-18:30
9:30-18:30
9:30-18:30  

First conference day (December 5th)

Stage A (300 seats) Stage B (150 seats)
9:00-9:45 Registration, welcome coffee
9:45-10:00 Conference opening
10:00-10:50 Building a micro-services architecture with smart use cases

Sander Hoogendoorn (Netherlands)
New life inside monolithic application

10:50-11:00 Break
11:00-11:50 The responsible developer

Writing clean and DRY code for executable specifications

Vagif Abilov (Norway)
11:50-12:00 Break
12:00-12:50 Open Decision in Architectural Evolution

Continuous Development Pipeline

13:00-14:30 Lunch break
14:30-15:20 Why testing take so much time?

Automation testing of responsive design

15:20-15:30 Break
15:30-16:20 Quality of the product team

A=F(?): How lack of common sense kills projects

16:20-17:00 Coffee break
17:00-17:50 The Primacy of Testability

How not to run a Code Review

Viktor Malyi (Germany)
17:50-18:00 Closing of the first day
18:00-20:00 Whiskey party

Second conference day (December 6th)

Stage A (300 seats) Stage B (150 seats)
9:00-9:45 Welcome coffee
9:45-10:00 Opening of the second day
10:00-10:50 Practical Considerations for Microservice Architectures (part 1)

Refactoring Legacy Сode

Dmytro Mindra (Ukraine)
10:50-11:00 Break
11:00-11:50 Practical Considerations for Microservice Architectures (part 2)

The infrastructure of modern AngularJS web applications

Andrey Alpert (Ukraine)
11:50-12:00 Break
12:00-12:50 Continious Delivery for a complicated product

Writing tests: practical guidelines including patterns, anti-patterns and best practices

13:00-14:30 Lunch break
14:30-15:20 Quality Built In

Andrey Dzynia (Sweden)
A Database story by DevOps

15:20-15:30 Break
15:30-16:20 How we testing our software “Google way”

Legacy projects: how to win the race

16:20-17:00 Coffee break
17:00-17:50 Beyond breaking bad. The current state of agile in ten easy lessons

Sander Hoogendoorn (Netherlands)
Busting TDD myths

Serhiy Kalinets (Ukraine)
17:50-18:10 Conference closing

Submitted talks

Why testing take so much time?

Abstract: Most of you work by iterative development approaches and regression testing is done in each iteration (at least I hope so). And quite frequently we see following picture: in one iteration testing is finished in time, but in the next one it is only 50% completed. WTF? We added small increment of functionality in this iteration! From such incidents managers (if you still have them) start to “analyze and tune” performance of testers. They usually use stats and metrics… May be some testers are fired during this process… Or new “more performant” are hired… But situation continues to happen again and again. In this talk I will try to show why testing is really slowed down and how to fix it.
Format: Talk (50 minutes)
Language: Russian

Continuous Development Pipeline

Abstract: In the world of fast changing technologies and business requirements there is no way to stay with old-school approaches to develop software. Apply for automation, code quality analysis, continuous integration, deployment and delivery.

During this talk I’m going to walk you step-by-step through practical implementation of continuous development pipeline using modern approaches and tools like Gradle (build automation), Jenkins (CI server), SonarQube (code quality analysis), Docker (deployment, containerisation), Ansible (immutable infrastructure) together.

Format: Talk (50 minutes)
Language: Russian

Practical Considerations for Microservice Architectures

Abstract: So you’ve heard about the buzz behind Microservices and finer-grained architectures in general? Microservice architectures can lead to easier to change, more maintainable systems which can be more secure, performant and stable than previous designs.

But what are the practical concerns associated with running more fine-grained systems, and what are the new things you’ll need to know if you want to embrace the power of smaller services without the new sources of complexity making your life a nightmare?

This talk will delve deeper into the characteristics of well-behaved services, and will define some clear principles your services should follow. It will also discuss in more depth some of the challenges associated with managing and monitoring more complex distributed systems. We’ll discuss how you can design services to be more fault-tolerant, what technologies may exist in your own platform to get you started. We’ll end by giving some pointers as to when you should consider microservice architectures, and how you should go about introducing them in your own organisation.

Format: Master-class (1 hour 40 minutes)
Language: English
Speaker: Sam Newman

The responsible developer

Abstract: Developers are the translators between ideas and code. They translate ideas about functionality to code so the end users can benefit from a usable program. This translation has to be done in a careful and responsible way. It should be done by a responsible developer.

What is a responsible developer then?

It is a developer that writes clean, testable and maintainable code. A developer who can explain and describe his work. Someone that knows that he grows by helping his fellow developers and never settles for second best.

I will discuss the properties of a responsible developer and suggest ways you can improve to become a responsible developer.

Format: Talk (50 minutes)
Language: English

Beyond breaking bad. The current state of agile in ten easy lessons

Abstract: After having coached agile projects for over fifteen years, according to Sander Hoogendoorn, to look back and retrospect over what agile, Scrum and other agile approaches have brought us in real-life. In his well-known, high-speed style Sander will motivate why agile is dead, why you need to stay away from Scrum task-boards, how to stay away from estimates and deadlines, how to avoid red sprints, how to put your trust in metrics, how to draw an owl, that project managers needn’t be a total waste after all, and most of all that you are not Usain Bolt.
Format: Talk (50 minutes)
Language: English

Building a micro-services architecture with smart use cases

Abstract: Micro-services and micro-services architecture are the next hype in software development. Websites and blogs are full of introducing posts, the first books are being written and the first conferences organized. There’s big promises of scalability, flexibility and replaceability of individual elements in your landscape. However, when you are knee deep in the mud as a software architect at an insurance, it is very hard to find help on how to design applications and components in a micro-services architecture. During this talk Sander Hoogendoorn, discusses the long and winding road the insurance company where he’s acting as the lead software architect has taken to implement their business processes in a micro-landscape. Sander will show how this company is modeling requirements in a micro-landscape using smart use cases, and will explain the difficulties and the lessons learned, using many real-life examples.
Format: Talk (50 minutes)
Language: English

The Primacy of Testability

Abstract: An important responsibility for many software architects is fostering and defending non-functional software qualities. These qualities are numerous, and they can interact in complex ways, so techniques for keeping abreast of them are vital for gauging the health of an architecture.

In this presentation I will focus on a single quality attribute, testability, and in particular I will explore how maintaining testability will tend to improve many other attributes. Among other things, highly testable code is modular and loosely coupled by nature, is maintainable, supports scaling out development, and can improve feedback loops. By ensuring testability in a system you not only support these and other related qualities, but you also provide an important means to verify that they are being met.

Ultimately, I will look at how testability (and testedness) can be useful and reliable proxy or approximation for a wide range of qualities.

Format: Talk (50 minutes)
Language: English

Open Decision in Architectural Evolution

Abstract: Evolving software architectures involves balancing many factors, and maintaining that balance can be challenging for any architect. By opening up the decision process for evolution we can harness the insight of fellow developers, communicate plans and designs more effectively, and produce a useful record of the work we do. In this presentation we’ll look at a specific lightweight technique – Open Design Proposals – which has proven its effectiveness in many projects. We’ll examine implementations of this approach, see why it’s effective, and show how development teams can use it to manage their own architecture.
Format: Talk (50 minutes)
Language: English

Unit Testing – bug hunting tool or design tool?

Abstract: Unit Testing is the most popular engineering practice used by most of developers. But not all of them understand why do they need this practice: some think it is great tool to prevent bugs in their code, some think this practice move they toward better design decisions, QA guys think it is how developers reduce risks of stupid mistakes. Role of Unit Testing completely depends on how it is used by developer. In this talk we will review some real examples and try to give an answer to the main question why and how Unit Testing should be used.
Format: Talk (50 minutes)
Language: Russian

Legacy projects: how to win the race

Abstract: Many of us want participate in pure and all white project where every single technical decision is in our complete control. Yeah… what a beautiful dream. Despite our strong desire we usually end up with terribly written, barely documented, badly designed and critically loaded applications which cannot be re-written or re-factored due to catastrophic lack of time. Too well known situation, huh?
I have a decent experience with such projects and often after some work can be proud because the application receives a new life and a customer/product owner saves some budget. However, only few have the same passion for “deadly sick” projects so I would like to share the knowledge, how-to’s and recipes of handling those fragile but stubborn folks – legacy projects.
Format: Talk (50 minutes)
Language: Russian

New life inside monolithic application

Abstract: Even successful startups that are built according to XP practices after some time may suffer from architectural decisions made at the beginning, e.g. monolithic, single-tenant, etc. This presentation describes architectural and technical evolution of one successful startup that is beyond daily coding routine. Main intent is to share practical experience of our simple proof-of-concept migration from monolithic application to emergence of micro services inside it, which technologies, tools and XP practices were used.
Format: Talk (50 minutes)
Language: Ukrainian

Writing clean and DRY code for executable specifications

Abstract: Automation of specifications written in a subset of natural language requires translation layer. This layer often falls outside established TDD practice and may even be managed by people different from those writing production code. How to make sure it has clean code, avoids duplicates and easily maintained? Can we simplify translation layer by writing specifications differently? And what can we bring from development community? This is what this session is about.

A gap between high level system validation requirements and capabilities of component API opens testers for use of different methods and even different programming languages when implementing test infrastructure code. This code is not deployed to production, so testers often get more liberty in choice of frameworks and tools used to validate system behavior. In this talk we will show that such freedom can be turned into an advantage to keep the test code clean and non-redundant. The main focus will be on implementing scenario steps for specifications written in Gherkin – a widely adopted language for specifications and user requirements. We will walk through a series of examples and short case studies.

The talk is technology agnostic but most of examples are taken from systems running on .NET platform.

Format: Talk (50 minutes)
Language: Russian
Speaker: Vagif Abilov

Quality Built In

Abstract: Most of the people think that quality in software development is limited to manual testing on the latest stage before releasing a product. That might be true 20 years ago in the industrial era. But current world is much more dynamic than before. Time to market became the most crucial metric nowadays. Releasing code to production need to be done faster and faster. How to maintain quality on a sufficient level in this fast paced environment? How to find a time to work on quality improvements? Those are two main questions I want to answer during this talk. Do not expect a silver bullet or even receipt to success. But definitely expect a lot of information about continuous delivery/deployment/improvements with a case studies and lessons we learned at Spotify.
Format: Talk (50 minutes)
Language: Russian
Speaker: Andrey Dzynia

Quality of the product team

Abstract: As an engineer and manager with 15+ years experience of projects and teams management of different levels and qualification, I am aware the difficulty of the methodology synthesizing process, which considers both project and team peculiarities and which at the same time will work out and bring the expected result.

I will share with you the quality management system, born in our team for a project being the company business core. Step by step we will follow the value system, processes, development practices, solutions for various complicated situations and learning on our own errors process – including all difficulties and backflashes on the way to the set aim.

So, what about you? Do you know the signs of the mature team and product, the same as the moves which will keep you afloat? Let’s verify!

Format: Talk (50 minutes)
Language: Russian

Continious Delivery for a complicated product

Abstract: Just believe this – a major build delivered each one-two weeks for a complicated payment product, without all-out efforts, bug fixes tornado, crashes and downtimes – is a successful continuous delivery workflow. There were a lot of failures, stone walls and sleepless nights before we could say we won it. And it’s not an easy work keeping it this way.

I do hope the experience of my team will be very useful to the way of your team’s successful continuous delivery.

Format: Talk (50 minutes)
Language: Russian

How we testing our software “Google way”

Abstract: Many of us were inspired by the ideas described in “How Google Tests Software” by James Whittaker. Some of us decided to try to adopt some of the principles at their projects. I want to tell about our team “adventures” on our way to Continuous Delivery and testing code “google way”.
Format: Talk (50 minutes)
Language: Russian

Automation testing of responsive design

Abstract: I want to discuss an area of QA automation which always is out of the automation – responsive design. Automation of functional use cases become regular in modern web-applications. That’s mean automation scripts do some input via web interface and than check output which they also retrieve from web interface. But often this process doesn’t include check of UI by itself.

So the question is how to automate verification of UI features? In general automation testing tools are not smart enough to do this in entire sense of the context. Fortunately Galen Framework gives us a new hope, because it aimed to work with dimensions of web elements depends on browser window size. Hence we can add a new level of automation to our good old functional tests.

Format: Talk (50 minutes)
Language: Russian

A Database story by DevOps

Abstract: There are many systems where Database plays central role for business operations. More often than not performance and maintainability of your “Main” database is key factor of success of your business. In order to deploy DevOps culture in your organization you need to Trust your developers and give them access to Production Database. Developers could find great insights in database metrics so you would have opportunity to improve both performance and maintainability dramatically for moderate costs.

I am going to talk about catching and solving problems in Production Databases – how to increase performance and decrease costs in long time perspective. The talk is based on experience we’ve received in Production.

Format: Talk (50 minutes)
Language: Russian

Busting TDD myths

Abstract: Test Driven Development remains to be a hot discussion topic for years. It can be compared to religion with its adepts, heretics, different confessions and atheists. And like with any religion it has its own myths and legends.

  • Does TDD slows down development speed?
  • Are mocks evil?
  • Can one get 100% code coverage?

On this session Serhiy will either bust or confirm those and other myths basing on his experience as developer and engineering practices coach. Session is technology agnostic. Experience with TDD is not required.

Format: Talk (50 minutes)
Language: Russian

A=F(?): How lack of common sense kills projects

Abstract: We are happy to start new projects but soon we become sad because of lots of design errors. Why do we make architecture and design errors in very clear cases? Why our design soon become crap? In this talk I’ll show one of the error-prone approach – formal design process not based on common sense. The sad thing is that we often use it. The good thing is that we can rethink design to more agile and sober way. The main thing of this talk is that design is constraint-driven and you should consider real-life ones. So long live your system and business!
Format: Talk (50 minutes)
Language: Russian

How not to run a Code Review

Abstract: Almost everyone who works with agile software engineering practices is aware of Code Review, and most of you already had a chance to participate in such kind of acitivities. Unfortunately very few people realize that Code Reviews is not only an approach of making the architecture and code better, but also important communication point between peers, where ones judge and others get judged.

Teams which don’t follow the basic rules of efficient communication and problem solving during Сode Reviews, have a high risk of being affected by issues, which can lately ruin their team attitude and even personal relations between the colleagues.

Having faced with such negative experiences, I’ve collected a plenty of bad practices running a Code Review and asked my colleagues about their emotions after being “code reviewed” in unproper way.

With all of that we’ll try to understand the most dangerous pitfalls of weak Code Reviews, their influences on team morale and will also leave some place for your experiences with this approach from your side. As a result you’ll have a clear idea about how no to run a Code Review and avoid personal issues in your daily work.

Format: Talk (50 minutes)
Language: English
Speaker: Viktor Malyi

Writing tests: practical guidelines including patterns, anti-patterns and best practices

Abstract: In the world of development is used and recommended a variety of high-level abstractions and approaches to writing tests such as TDD, BDD, unit testing, functional testing, etc. But what happens when we open the tests on a real project? Scale of surprise and disappointment off scale. 90% of tests is written just to be written. I will talk about best practices and receptions that will help make the code of tests better and more practical. This talk will be accompanied by examples in JavaScript, but simple enough to be understandable by .NET, Java and PHP developers.
Format: Talk (50 minutes)
Language: Russian

The infrastructure of modern AngularJS web applications

Abstract: AngularJS today is one of the most powerful, user-friendly and popular JS frameworks to work on webapplications. Surprisingly, one of the main weaknesses of this framework is poorly structured documentation and the lack of ready-made solutions. In this report, we will try to work out the best approach to the organization of large and very large applications. We will also speak about the tools that will be useful at every stage of the application development and tools and practicesthat will help you to work in the continuous delivery mode.
Format: Talk (50 minutes)
Language: Russian
Speaker: Andrey Alpert

Refactoring Legacy Сode

Abstract: Every programmer has to face legacy code day after day. It might be ugly, it might look scary, it can make a grown man cry. Some will throw it away and try rewriting everything from scratch. Most of them will fail.

Refactoring legacy code is a much better idea. It is not so scary when you take it in very small bites, introduce small changes, add unit tests. When code is refactored and unit tests are added, changes to functinality can be introduced.

We will take an open source C# project and will refactor it showing step-by-step examples of the techniques. This session is full of tips and tricks you can start applying immediately. Although the code is in C#, the same principles can be applied in any language.

Format: Talk (50 minutes)
Language: Russian
Speaker: Dmytro Mindra
Mikalai Alimenkou

Mikalai Alimenkou

XP Injection / ZoralLabs, Ukraine

Java Tech Lead and Scrum Master. Expert in Java development, scalable architecture, Agile engineering practices and project management. Having more than 10 years of development experience, specializes on complex distributed scalable systems. Active participant and speaker of many international conferences. Founder and coach in training center XP Injection. Organizer and founder of Selenium Camp, JEEConf, XP Days Ukraine and IT Brunch conferences. Founder of active “Anonymous developers club” (uadevclub).

Sam Newman

Sam Newman

ThoughtWorks, UK

Sam Newman is a technologist at ThoughtWorks, where he currently splits his time between encouraging and sharing Innovation globally and working as the architect for internal systems. He has worked with a variety of companies in multiple domains around the world, often with one foot in the developer world, and another in the IT operations space. If you asked him what he does, he’d say ‘I work with people to build better software systems’. He has written articles, presented at conferences, and sporadically commits to open source projects. While Java used to be his bread and butter, he also spends time with Ruby, Python, Javascript, and Clojure, Infrastructure Automation and Cloud systems. He is currently writing a book on building Microservices, which should be available in the Autumn of this year from O’Reilly.

Thomas Sundberg

Thomas Sundberg

Think Code AB, Sweden

Thomas Sundberg is an independent consultant based in Stockholm, Sweden. He has a Masters degree in Computer Science from the Royal Institute of Technology, KTH, in Stockholm. Thomas has been working as a developer for more than 20 years. He has taught programming at The Royal Institute of Technology, KTH, one the leading technical universities in Sweden. Thomas has developed an obsession for technical excellence. This translates to Software Craftsmanship, Clean Code and Test Automation.

Thomas is a frequent speaker at different conferences and developer venues. Thomas runs a blog where he writes about programming, Software craftsmanship and whatever problem he wants to share a solution about. It can be found at thomassundberg.wordpress.com.

Sander Hoogendoorn

Sander Hoogendoorn

ditisagile.nl, Netherlands

Sander is the author of the best-selling book “This Is Agile”. He is an independent mentor, trainer, programmer, architect, speaker, and writer. Sander is a highly appreciated catalyst in the innovation of software development at many international clients. Sander has coached organizations, projects and teams, has written books on UML and agile, and published over 250 articles in international magazines. He is an inspiring speaker at many international conferences, and presents seminars and training courses on a variety of topics such as agile, Scrum, Kanban, software estimation, (microservices) software architecture, design patterns, modeling and UML, writing code, and testing.

Austin Bingham

Austin Bingham

Sixty North AS, Norway

Austin is a founding director of Sixty North, a software consulting, training, and application development company. A native of Texas, in 2008 Austin moved to Stavanger, Norway where he helped develop industry-leading oil reservoir modeling software. Prior to that he worked at National Instruments, at Applied Research Labs developing sonar systems, and at several telecommunications companies. He is an experienced presenter and teacher, and is an active member of the open source community. He’s the founder of Stavanger Software Developers, a social software group in Stavanger. Austin holds a MSc in Computer Engineering from the University of Texas at Austin.

Andrey Dzynia

Andrey Dzynia

Spotify, Sweden

Being passionate hacking out with his first personal computer Andrii decided to start his career as software tester. Within years worked on various projects with different product complexities, from small mobile startups to large Enterprise programs. Tried himself in different roles, such as: software tester, test automator, scrum master, team leader, test consultant. As well as initiatives: speaker, trainer, conference organiser, blogger. Currently working at Spotify with focus on improving development productivity of agile teams applying engineering practices in order to minimise delivery cycle and improve product quality.

Serhiy Kalinets

Serhiy Kalinets

Sigma Software, Ukraine

Sergey is a professional programmer and software architect living in Kyiv. Heavily advocates XP practices and strives to automate everything. TDD addict and console lover.Besides being .NET guy for years he tries to stay up to date with other technologies. Currently helps teams in Sigma Software to build cool products.

Izzet Mustafaiev

Izzet Mustafaiev

EPAM, Ukraine

Software engineer working in EPAM Systems with primary skills in Java, with hands on Ruby/Groovy. Fun of XP practices, crazy about automation, still trying to see continuous delivery in a real life. Advocating Clean Code and DevOps.

Victor Polischuk

Victor Polischuk

Infopulse, Ukraine

Java technical leader at Infopulse Ukraine. Production experience counts 13 years including about 11 years of Java development. Expert in Java и JavaScript. Smartass.

Taras Matyashovskyy

Taras Matyashovskyy

Lohika, Ukraine

Primary focused on the development of complex distributed systems, but enjoys life beyond programming. Agile & lean practitioner, Certified Scrum Master and simply “great product-oriented” developer. Currently interested in microservices architecture, reactive programming and searching of decent life partner. Founder of Morning@Lohika tech talks in Lviv.

Vagif Abilov

Vagif Abilov

Miles, Norway

Vagif Abilov is a Russian/Norwegian software developer and architect working for Miles in Oslo. He has more than twenty years of programming experience that includes various programming languages, currently using mostly C# and F#.

Vagif writes articles and speaks at user group sessions and conferences. He is a contributor to several open source projects, such as SpecFlow and Simple.Data, and a maintainer of several open source projects, such as Simple.OData.Client and MongOData.

Dmitriy Yefimenko

Dmitriy Yefimenko

Uniteller, Ukraine

15+ years experience. Product and team management. Software architecture and design. Business and system analysis. Sophisticated products with elusive goals.

Oleksiy Rezchykov

Oleksiy Rezchykov

Playtika, Ukraine

Java software engineer, currently working for Playtika. Testing Automation, Continuous Integration, Continuous Delivery consultant. Agile/Lean follower, XP supporter. Actively promoting Spring Framework usage.

Alexey Zvolinskiy

Alexey Zvolinskiy

Ciklum, Ukraine

Scala, Java developer and test automation engineer. Mathematician, programmer, wrestler, last action hero…

Anton Martynenko

Anton Martynenko

YouScan, Ukraine

Running Technical Operations at Youscan: Production monitoring, security, hosting & real time metrics. Virtual environments, automated releases, integration tests, build pipeline, artifact repository, configuration management and other tricks to support operations and rapid development cycles. Using .NET platform, Windows Azure, Amazon AWS, SQL Server and getting fun while implementation of business ideas around Social Media monitoring.

Viktor Malyi

Viktor Malyi

Garmin Deutschland, Germany

Having a passion of helping the people to deliver better software, I’ve been involved into various software testing and quality assurance activities since 2008. In parallel I’ve co-organized QA Dnepropetrovsk Community which helps software testing professionals to exhange their professional knowledge and experience. I’m also actively participating in evolving the local software testing community of Main-Rhein region in Germany and attracting the IT-students to the world of software testing.

Dmitriy Shekhovtsov

Dmitriy Shekhovtsov

Valor Software, Ukraine

By implementing a childhood dream and by doing my hobby a work his way up from Basic to C#, found his vocation in MEAN stack development and architecture of heavily loaded web applications.

Andrey Alpert

Andrey Alpert

DataArt, Ukraine

Andrey joined DataArt in 2012 as a Front End Developer. He actively conducts specialized seminars and trainings. Developer with more than eight years of experience in web dedicated technologies. Also has experience in development of single page adds with full stack. Practices software quality assurance; PHP-based projects development; MySQL database design; HTML layout; projects support.

Dmytro Mindra

Dmytro Mindra

Unity Technologies, Ukraine

Dmytro holds the position of Software Development Engineer in Test at Unity Technologies. He is one of the Toolsmiths who are developing tools for test automation. Prior to joining Unity, Dmytro has worked for Microsoft and Lohika. He is a frequent speaker at various conferences and User Group meetings.

Eugene Krivosheyev

Eugene Krivosheyev

SkillTrek, Russia

Eugene helps Russia IT companies from TOP-50 to become more flexible and effective. He supports Agile processes from bottom to top, implementing engineering practices and good approaches to design/architecture. At the moment involved into SkillTrek project, where he trains engineers for practical skills in real-life projects.