неділя, 8 листопада 2015 р.

XP Days Review

Some talks and their describtion


XP Days is a 2 days conference being held in Kyiv, Ukraine for 6 years now. This conference is mainly devoted to style of leading IT projects and is pretty much unique in its kind. I’ve visited it recently, so here is my overview of the talks and speakers.



There were almost no similar talks at the conference; here is the schedule, and generally that’s what I’ll be using to guide you.





The time each speaker had was 50 minutes per slot. Yan Drugalya talked for around 25 minutes, and next 20 minutes or so he was answering the questions. He works at a project with many platforms, huge number of users and deployments. Obviously, they have enormous quantity of tests with varying settings and peculiarities. Here are some tests managing solutions that he proposed:
- Use Perl for setting running tests
- Unified Test Runner (UTR): a single entry point for running all tests
- Hoarder Web Service, which integrates test execution data, both from local and Build Farm test runs.
The proposals are not for everyone, moreover I didn’t see the tools on the market. Still, it was interesting to find out about something really big. Here you can read more.

Viktor Farcic talked about scaling your services. He proposed to compose and decompose them using Docker, which allows creation and sharing software through Docker images that can be ran on any platform. He also suggested using immutable deployment rather than mutable one. The main idea is that you divide your software into stable blocks, and with every deploy one creates new instance of the software not destroying the old version. He also proposed to use tools that determine, on which server to deploy the container depending on its resources. Such tools are Kubernetes, Swarm, and Mesos DCOS. Docker + Kubernetes were better described in Carlos Sanchez talk.

For me, never having experienced Ruby myself, it was pretty interesting to attend Boris Tveritnev talk. He was explaining purely technical material through communication with public which as for me is one of the most working methods.  Here is what I’ve learnt:
- Duck Typing is when it doesn’t matter which type of an object is used. What  really matters are methods or actions that can be performed with an object. In Ruby it’s possible to try to apply the method to the parent object if one of its children has its implementation. The instance of the child will be determined during the runtime.
- DDD is domain driven design, which helps separate static and dynamic parts of the code.
- DCI, or data, context, integration, is about making what has to be done having domain data by applying roles to it. It also allows to mock parts easily.
Here you can look through the slides of the presentation, even though they’d look much better with audio.

Don't create what you can buy
Many people attended talks of Venkat Subramaniam; he was talking during 4 slots! The subjects were Towards an Evolutionary Architecture and TDD. Probably, the main thing I should say is that it doesn’t matter, which particular subject he’s talking about. He’d always lead you to some simple verity which you’ll memorize like a rule.
Don't split functionality between sprints, evaluate the priority by value and architectural changes
Wait to pay until you're sure

Andrey Dzynia gave a great talk about (automation) testing. Those who’re thinking over this job should see the talk. One of his points is that programmers and testers think in different ways, and programmer might never look on something tester would do during ad hoс testing. He’s also proposed to read Thinking, Fast and Slow by Daniel Kahneman. That’s what I’m interested in recently. There are people who are super fast and efficient, but sometimes they don’t notice some stuff on the way. Others are slow, and such kind of problems are generally eliminated.



Finally, I’ll tell about the talk, which was one of my favorites at the conference. It was about pair programming by Jon Jagger. The thing is that I’ve heard a lot about it before, even tried it myself and liked it. So I wasn’t sure if I should pick another slot. Nevertheless, some thoughts I’ve heard during the talk changed my view on project organization. For example, the project is well organized when enrolled employees have some spare time. Sounds easy and pretty rational if you’re not the customer who pays for this spare time I believe. Still if to take the statistics, on all my projects except for one, I either had almost no spare time or I had to overtime. So these words made me think why so, how it can be changed, and how much real work on the project is left when all the formalities that support bureaucracy are eliminated. He also proposed to give some time off (possibly, a week) to every employee every once in a while when he’s minimally enrolled in the project but studies something new. After this small vacation he might share the knowledge with all the team members, and as a result everyone learns something new and potentially useful for the project. This will lead to constant upgrading and bringing better job quality into life.


About the other talks I didn't attend (but have an opinion) 


Peter Goodliffe has a great last name, and I’ve got a feeling he also has a great life! I didn’t attend his talk, but I met him in person and chatted a bit. Not sure if this information is relevant, but he walks barefoot or in flip-flops, no matter how cold it is outside. He also prefers green nail polish. Sounds strange? Yes, same to me. When it comes to talking, he seems to be an interesting person, so I plan to watch his Becoming a Better Programmer talk when available.


Some speakers are always good. I didn’t attend the talks but I know who to watch in spare time. Mikalai Alimenkou and Viktor Polischuk are on my mind when I’m writing this. Also, Eduards Sizovs is an adorable guy. He talks a lot and pretty fast, so in one speech he gets an opportunity to cover even half related subjects, e.g. solving conflicts having beer in a bar. Not surprisingly, he also gets many questions after the talk. Eugene Krivosheyev is an Agile trainer and is the one who always gives lots of advice on how to make work more efficient.

Hope the conference videos will come soon, and I wish you nice watching time!







P. S. And certainly there were great presents from IntroPRO, Playtika, and Luxoft.