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.

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: English
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

Toolbelt for pragmatic .NET development: from coding to release

Abstract: XP practices allow developers to get maximum efficiency and fun from their work. But poor tooling may get then upset instead. Comparing to other stacks a .NET seems to be not very attractive from that standpoint. It is considered to be built around tools provided by only one vendor and those are far from ideal to be honest.

However there are tons of other tools, developed by enthusiasts and used by thousands of developers accross the globe. And may of them are really cool.

In this session Serhiy will share his team’s experience in using tools for development of modern web based solution. We will cover the whole code lifecycle – starting from setting up developers environment, unit and acceptance testing, continious integratoin, and ending with deployment pipeline. List of tools will include not only .NET but frontend part of the system as well.

Format: Talk (50 minutes)
Language: Russian

Integration Testing from the Trenches

Abstract: When one uses Test-Driven Development, has more then 90% test coverage and the best Sonar metrics ever seen, and still finds regular bugs in his application, it is time for something more. Unit Testing is like testing a car’s every nuts and bolts while Integration Testing is like leading it on a test drive: one cannot achieve high internal quality without the other.

However, Integration Testing might seem very complex when put in place for the first several times; I have made many mistakes and have lost much time. In this presentation, I will present tools that helped me tremendously in Integration Testing, as well as proven tactics to get the best out of your tests.

Format: Talk (50 minutes)
Language: English

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