2020

Programming contest @I T.A.K.E Unconference
As for every I TAKE Unconference edition, we want to give a chance to the software crafters from the audience to showcase their skills and learn more in the process. And because we appreciate passion, we offer a prize to those who convince a jury of well-known international developers that they are the most skilled in the room.
This contest is not meant to be easy. It will require you to practice beforehand, so please read the instructions carefully.
It will also require you to register before the event.
Mechanics
- IMPORTANT: Register to the contest latest one day before I TAKE Unconference by sending an email to steliana.moraru@mozaicworks.com
- On the first day of the event, after lunch, you have max 15′ to do a performing kata in front of the jury.
- The winner will be announced at the end of the second day
Constraints
To simplify the jury’s decision, the performing kata has to conform to the following constraints:
- Only the following programming languages are accepted: Java, C, C++, C#, Python, Visual Basic .NET, PHP, Javascript, Swift or Ruby
- Only solo contestants are accepted. Sorry, no pair programming this time
- The kata has to showcase refactoring skills.
- The kata has to last max. 15′
How we will judge
The jury will judge your refactoring skills.
The ideal kata looks like this – you will get maximum point if you:
- clearly state the smells you see in the code
- pick one of the smells
- clearly state your plan to fix the smell
- fix it in small, safe steps
- run tests after each step to prove you didn’t break anything
- commit after each step with a clear message explaining why you made the change
- fix as many smells as possible within the time constraint
You will loose points if you:
- make big or unsafe changes to the code
- break the behaviour after changing the code
- don’t improve the code a lot
- don’t improve the design by the end of the kata (hint: we judge design using SOLID principles and the four elements of simple design)
Recommendations
To help you, we’ve thought out what we would do if we participated to such a contest. Here’s what we recommend.
1) Use one of the following codebases for the kata:
- https://github.com/emilybache/GildedRose-Refactoring-Kata
- https://github.com/emilybache/Tennis-Refactoring-Kata
- https://github.com/emilybache/Yatzy-Refactoring-Kata
- https://github.com/emilybache/Parrot-Refactoring-Kata
2) Practice beforehand on the structure we presented for the ideal kata. Ideally find someone to practice with.
3) Watch other people refactoring. YouTube has many videos on the topic, including using the recommended code bases.
Glossary
A programming kata is a repeatable exercise used to practice specific skills.
Performing kata means doing a kata in front of an audience.
Refactoring means changing the internal structure of the code without changing its behaviour.

Remote pair programming
Enjoy the following series of interviews with the speakers, top-notch software crafters from across Europe, joining I T.A.K.E Unconference, Bucharest, 11-12 May. Discover the lessons learned and what drives them to challenge the known path in their field.
Raimo Radczewski is a freelancing software craftsman living in Berlin, Germany. He’s organizing Berlin’s Software Craftsmanship Community where he supports craftspeople with professionalizing and sharpening their skills, but also reflect on their current practices and how they can work better as teams. At #itakeunconf he will be sharing about Remote Pair-programming.
#1. Please share with us 5 things you did that helped you grow and become the professional you are today
I think the most important thing that shaped my career has been the Software Craftsmanship movement. I first went to an OpenSpace in 2012, then Coderetreats, then SoCraTes, then organizing OpenSpaces and such. The community has really supported me and helped me grow in every professional aspect I could think of.
#2. What challenges will the participants find solutions to during your session at I T.A.K.E Unconference 2017?
The most challenging part of working remote is keeping an inter-human connection to the person on the other side to make up for the tools that so rarely work. It also helps to use the least-broken tools and find a structure that works for the individuals that want to pair up.
#3. Recommend for the participants 3 sources you find inspiration from and would help them better understand you
I draw most of my inspiration from visiting and organizing events in the communities. Additionally, the Software Craftsmanship Slack Team is a great place to start discussing with craftspeople all over the world.
Want to join Raimo and ~300 software crafters from around Europe?
Register now for I T.A.K.E Unconference 2017!

Mocks are mocking at you?
Enjoy the following series of interviews with the speakers, top-notch software crafters from across Europe, joining I T.A.K.E Unconference, Bucharest, 19-20 May. Discover the lessons learned and what drives them to challenge the known path in their field.
Andreas Leidig, Developer & Agile Mentor MsgGillardon AG, and Robin Danziger, Software Developer, will join I T.A.K.E Unconference 2016 as speakers. They will share in their talk more about mocks and prototypical library for solving this problem in JavaScript: chadojs.
#1. SHARE TOP 5 THINGS YOU DID THAT HELPED YOU GROW & BECOME THE PROFESSIONAL YOU ARE TODAY
Robin:
- Regular participant and speaker at conferences & local user groups
- Coaching teams and organizing internal meetups about software development
- Working with different teams and companies (I’m a freelancer)
- Ask professionals how they would solve a problem
- Try to read the whole internet 😉
Andreas:
- Initiating a conference (SoCraTes)
- Visiting and speaking at conferences
- Listening and questioning my own views
- Working with different teams (during my previous job)
- Thinking outside the box
#2. What challenges will the participants find solutions to during your session at I T.A.K.E Unconference 2016?
Participants will learn about the possible pitfalls and gaps when using mock objects blindly. They will understand that this may lead to decreased safety for refactoring and this weakend trust initiates the need for creating more and more integration tests.
They will see the underlying principles and learn about ways and techniques to escape this trap.
3. What else would you like to share with participants
Robin:
I like to talk about different software development approaches. How can we use and maintain software tests from specifications and end-to-end-tests to unit-tests. And I would like to know how other teams share their knowledge and improve the collaboration inside the team.
Andreas:
Don’t be shy. Open your ears and eyes. Listen and ask.
Want to join Andreas & Robin and many more software crafters from around Europe?