/
The only technology agnostic conference in Central and Eastern Europe!
We will write code, talk code and present code. You will find out new concepts and ideas.
You will learn new techniques to be better!
For all of you who care about good software and techniques for software excellence.
We invite you programmers, testers, architects, technical managers and CEO's to attend.
All of you that want to learn to become the best.
We love all technologies and languages the same! We focus on the fundamentals of software.
The conference will be about coding, testing and architecting.
During Open Space you will talk code with everyone.
Your title, subtitle and this very content is editable from Theme Option. Call to Action button and its destination link as well. Image on your right can be an image or even YouTube video if you like.
Rebecca Wirfs-Brock president of Wirfs-Brock Associates and IEEE Software's Design Columnist, is a well-known and respected object-oriented practitioner. She invented the way of thinking about objects known as Responsibility-Driven Design and is the lead author of Object Design: Roles, Responsibilities, and Collaborations (2003) and the classic Designing Object-Oriented Software (1990).
Through her writing, teaching, consulting, and speaking she popularizes the use of informal techniques and thinking tools for architects, designers, and analysts.
Rebecca is a past board member of the Agile Alliance and co-founder of the Agile Open Northwest conference. Most recently she reviewed enterprise architectures and major designs, developed courses on agile use cases, enterprise application design and developing and communicating software architecture.
She mentors teams on agile design, object modeling, architecture, agile use case writing, meshing usage scenarios with use cases and agile user stories, and managing incremental, iterative object-technology projects. She practices what she teaches!
Rebecca blogs about software design and agile practices at The Responsible Designer. You can find her design columns, papers, and presentations at wirfs-brock.com/Resources.html.
Software craftsman , author of Software Craftsmanship: Professionalism Pragmatism Pride and founder of the London Software Craftsmanship Community (LSCC).
Sandro started coding at a very young age but just started his professional career years later, in 1996. He has worked for startups, software houses, product companies and international consultancy companies. Having worked as a consultant for the majority of his career, he had the opportunity to work in a good variety of projects, different languages, technologies and industries.
Currently he is a director and a software craftsman at UBS Investment Bank, where he writes code, look after the quality of the applications, mentor developers and help teams around the world to get better at delivering quality software.
Radu Marinescu professor of software engineering at the Politehnica University of Timisoara, is a researcher focused on the areas of quality assurance and software evolution. He has authored the Object-Oriented Metrics in Practice (2006) book, a practical guide on how developers and architects can use metrics to assess and improve software design.
He strongly believes that research must ultimately flow into software products that will change the state of the practice in software companies. That’s why he co-founded Intooitus, a spin-off that provides disruptive tools for assessing design quality and detecting technical debt symptoms. These tools are currently used by thousands of developers in several Global Fortune 500 companies.
In 2006 he received an IBM Eclipse Innovation Award for his new idea of a continuous approach to assess design quality. In 2009, a prestigious a jury that included Fred Brooks, Erich Gamma and Grady Booch granted him the IBM John Backus Award for "having done the most to improve programmer productivity".
For the past fifteen years, Radu has worked as a consultant and trainer for companies like IBM, Siemens, Nokia, Alcatel-Lucent, and Telelogic. His research ideas on quality assessment were integrated in mainstream tools like JBuilder or PMD.
Samir Talwar is a developer who’s focused on two things: doing the right things in the right way.
A member of the London Software Craftsmanship Community, he tries to help people (including himself) challenge their definitions of “good enough” by running workshops, pairing with anyone and everyone and constantly asking questions. He’s a firm believer in using the right tool for the job, and constantly tries to remind people (including himself) that the job in question is never as small as they think it is.
Samir has bounced through different industries, starting in web development, then wandering into the finance world. He currently works for Palantir Technologies on their data analysis platform. His work as part of the Software Craftsmanship movement is focused on trying to improve himself as fast as possible.
Developer with passion for more than 12 years in startups, software vendors and banks, Cyrille is co-founder and technical director of Arolla, a company specializing in software development. Still addicted to development, he dedicates a large part of his energy for clients, hands-on in the code, yet also deeply involved in the business analysis in finance.
Passionate about design in every aspect (TDD, BDD, DDD), he also founded the Paris Software Craftsmanship community and is a speaker in Paris and internationally as well.
Stefan loves everything about programming. He has been working with Java, Python and PHP, but eventually he found himself at home with Ruby. He has been doing the corporate thing, the start-up thing and the agency thing, but currently he is working in a small consultancy with a couple of dear friends.
He loves all programming languages equality (well, almost). Over the last couple of years he has been developing a deep fascination for everything that appears in the fringe like Haskell, Clojure and Io. He loves learning and he teaches regularly, sometimes at the University of Sofia, sometimes elsewhere.
As an avid Vimmer, he spends most of his life in the terminal. He loves his awesome (as in the window manager) desktop as much as he loves his Macintosh (as in the computer, not the apple) laptop. When he is not working, he tends to spend his time optimizing his workflow in various ways.
Aki Salmi is a hiking guide of Suomen Latu and soon-to-become hiking guide trainer. As when Aki is doing things he loves while earning some money out of it, he works as programmer at Ambientia.
Aki does not believe in magic - he makes it happen. And the magic often embodies wisdom on how to inspire the teams he works with to do their best. Together, as a team. His listening skills are well known by his friends and colleagues.
He is also a community builder - working within Finland by organising different events for software craftsmen to meet and to learn together. For Aki, work is about learning, learning is collaboration.
Aki participates to I TAKE unconference to learn more about himself, how he collaborates with people and to challenge his assumptions and ideas.
Emmanuel Gaillot works as a team coach, (extreme) programmer, facilitator, trainer and systems jiggler. For the last 10 years he has been helping software makers to be better at, prouder of, and happier about the work they produce.
A regular speaker at many conferences on Agility, Emmanuel also co-organizes the annual Agile Open France conference. He is one of the founders (and still assiduous member) of the Coding Dojo in Paris.
Emmanuel works in Paris at /ut7, a co-operated business he learns to hack with his fellow colleagues. He currently focuses his energy and passion on learning and teaching exotic languages, on shaping self-organizing structures and setting up co-learning spaces.
Aimee is a travelling software crafter and developer in test, with many years experience in web programming and behaviour driven development.
Aimee helped to test and deliver the BBC's Interactive Video Player for the Olympics, and is currently working in Brighton, helping to build HTTP web services for an exciting new photo sharing service.
Aimee lives in a motorhome and enjoys travelling the UK, playing bass guitar, writing music and taking photographs.
I am a passionate software developer, continuous learner, mentor and teacher. I am a polyglot programmer, I love challenges and I use whatever techniques I know to overcome them. This is how I learn.
Some info about me:
If you need a person to chat about technical challenges, I'm your guy.
Adrian was involved in developing software for domains like energy, ecommerce, banking, customs and ERP/CRM. He has been working with companies from Netherlands, Romania, Italy, France and Germany, and he is knowledgeable in software technical domains like: clean code, unit testing, test driven development, simple design, emergent design, working effectively with legacy code.
As a continuous learner and challenger of existing ideas and concepts, Adrian is a supporter of movements that give new ideas on how to continuously improve software and that embrace the values of software quality and efficiency. He facilitated many code retreats in Romania, Belgium, France, Germany, Netherlands, Finland, Bulgaria and has a keen interest in serious games and using gamestorming for continuous improvement.
As a constant participant to conferences and workshops, he is recognized for challenging ideas and getting people out of their comfort zone, not out of disrespect or lack of reverence for his peers, but out of his desire to show people that there are always things to learn.
I love helping other people out, it's something that has been important for me as long as I can remember. I used to tutor people while I was still in school, helping out fellow students whenever I had the chance. It wasn't that weird that after a few years of professional experience, I ended up teaching class. I have trained and coached several teams on different subjects, ranging from process oriented topics like scrum, kanban and effective collaboration through gamestorming to more technical focused topics like test automation, test driven development and software craftsmanship principles.
As of last year I have started an adventure in the areas of lean startups and customer development around that. These kinds of volatile ventures also benefit a lot from the agile mindset and craftsmanship principles knowledge I've built up the last decade.
Péter "HP" Halácsy is the founding father of Prezi technology. He saw Adam Somlai-Fischer's hand-coded zooming user interface in 2008 and approached Adam about creating a commercial editor so others could use the software. Soon after, HP identified the third co-founder, Peter Arvai, and together these three Hungarians formed an idea: to help people share their stories in a more memorable and engaging way. Today, their idea is known as "Prezi."
Prior to Prezi, HP was a lead developer at Origo.hu, a new media lecturer at Budapest University of Technology, and cofounder of Kitchen Budapest, a cross-disciplinary environment where researchers create experimental projects involving technology and urban spaces.
HP's expertise runs the gamut and Prezi relies on him to champion rapid growth challenges, be an engineering coach, continually integrate our technology, and take agile product development to the extreme. He's also our resident speaker about all things technology and innovation.
Currently an Agile Coach at Avira, Vasco Duarte is an experienced Product and Project Manager. Having worked in the software industry since 1997, Vasco has also been an Agile practitioner since 2004, he is one of the leaders and catalysts of Agile methods and Agile culture adoption at Avira and previously at Nokia and F-Secure.
Vasco's contributions to the development of the Software industry and professions can be read at his blog: http://SoftwareDevelopmentToday.blogspot.com. Or you can follow Vasco on Twitter: @duarte_vasco
Speaking ![]() All the talks will based on code. We will not focus on specific technologies, but we will focus on the best practices, essential to know for any technology. You will find out how other experienced profesionals work. |
Open Space ![]() Learn from others and innovate. During the Open Space sessions, you will be able to propose topics you would like to discuss. Also, you will be able to attend more sessions in parallel you find useful. The sessions are informal parallel ‘gatherings’ governed by the Law of Two Feet: If at any time during our time together you find you are neither learning nor contributing, use your two feet, go someplace else. |
Workshops ![]() Practice in a group with awesome facilitators. You will write code, usually in pairs, on topics like unit testing, legacy code, techniques to be more efficient, techniques to improve the code. The groups will be small enough (max 20) so that everyone can have enough time to understand the idea. The workshops are thought to speed up learning. |
Product development ![]() You will produce software live. The conference attendees will be your customers. We will have sprints of one hour, and you can leave after each sprint. We will use the usual techniques: continuous integration, unit testing, test driven development, coding review, etc all for having a fast feedback cycle. |
Kata Lounge ![]() Perfect practice makes perfect! You will receive some requirements. You will have a timebox that you need to respect. When the timebox is over somebody will review the code with you and give you ideas for improvement. The best code will receive a special prize! |
|
---|---|---|---|---|---|
8:30 to 9:00 |
Welcome coffee, registration | ||||
9:00 to 9:30 |
Intro | ||||
9:30 to 10:30 |
Rebecca Wirfs-Brock ![]() ![]() Rebecca Wirfs-Brock president of Wirfs-Brock Associates and IEEE Software's Design Columnist, is a well-known and respected object-oriented practitioner. She invented the way of thinking about objects known as Responsibility-Driven Design and is the lead author of Object Design: Roles, Responsibilities, and Collaborations (2003) and the classic Designing Object-Oriented Software (1990). Maintaining Your Code Clint Eastwood Style ![]() SummaryThis talk explores options for revising, repairing, and extending good, bad, and ugly code. Sometimes we get the opportunity to create some really good code. But as we continue implementing more functionality, our notion of goodness evolves. So is code entropy inevitable, or are there things we should do to minimize code decay? Most people work with code that has both good and bad parts. The challenge with such a mix is how to modify what’s there without damaging the good parts, making bad things worse, or ugly situations even uglier. Sometimes we get an opportunity to make major repairs. But more often, we can only make small, incremental improvements. What we can do is constrained by cost, consistency, and compatibility concerns. Living with good, bad, and even ugly code is never easy. But as Clint Eastwood says, “Sometimes if you want to see a change for the better, you have to take things into your own hands.” |
||||
10:30 to 10:45 |
Break | ||||
10:45 to 11:45 |
Antoine Vernois ![]() ![]() Perpetual learner, software craftsman, agile anarchist. I help teams and companies to find their own organisational and technical way to create and deliver software for that will delight their users. Unit Test, Test First and TDD ![]() SummaryMore and more developers are writing unit test. And that's really great. They are a great way to ensure code's correctness. But writing test after is often difficult : code may not be testable, "it works, why bother with test. Let's do real stuff !",... Testing first could be a solution to those problems. TDD goes further. Unit tests do not only test the code, they become a tool to design a better, cleaner and safer code. |
Open space slot 1 | Rebecca Wirfs-Brock ![]() ![]() Rebecca Wirfs-Brock president of Wirfs-Brock Associates and IEEE Software's Design Columnist, is a well-known and respected object-oriented practitioner. She invented the way of thinking about objects known as Responsibility-Driven Design and is the lead author of Object Design: Roles, Responsibilities, and Collaborations (2003) and the classic Designing Object-Oriented Software (1990). Agile Architecture Techniques and Values Workshop ![]() SummaryComplex software often has lot of moving parts, dependencies, risks, and challenges. A primary goal of agile teams is to be responsive to change. Yet producing working code (at the expense of a fragile architecture) isn’t sustainable either. On an agile project, software architecting needs to fit with and support critical project efforts while enabling change. How much architecting should be done on an agile project, when and by whom? The answer varies from project to project. During this workshop, you will learn techniques for monitoring your system’s architectural health and doing “just enough” architecture at the most opportune times. |
For two days or just one hour, join other attendees and create a team that develops an application for conference participants, incrementally delivering value each hour. |
Pick a random coding problem from a bowl. Practice anytime you want. Get feedback on your code from an experienced person. |
11:45 to 12:00 |
Break | ||||
12:00 to 13:00 |
Sandro Mancuso ![]() ![]() Software craftsman , author of Software Craftsmanship: Professionalism Pragmatism Pride and founder of the London Software Craftsmanship Community (LSCC). Testing and Refactoring Legacy Code ![]() SummaryWorking with legacy code is tough: no tests, no documentation, and fear of breaking other parts of the code. The only way to deal with that is to test and refactor merciless. For the majority of us, legacy code is part of our life and learning how to embrace it can make things far more enjoyable. In this live coding session, Sandro will be demonstrating how to overcome the most common problems found when testing legacy code. He will be taking a piece of messy Java code, test it until is 100% covered and then show how to refactor it in order to bring the business language and requirements to life. This session is full of tips and tricks you can start applying immediately. Although the code is in Java, the same principles can be applied in any language. |
Open space slot 2 | Rebecca Wirfs-Brock ![]() ![]() Rebecca Wirfs-Brock president of Wirfs-Brock Associates and IEEE Software's Design Columnist, is a well-known and respected object-oriented practitioner. She invented the way of thinking about objects known as Responsibility-Driven Design and is the lead author of Object Design: Roles, Responsibilities, and Collaborations (2003) and the classic Designing Object-Oriented Software (1990). Agile Architecture Techniques and Values Workshop ![]() SummaryComplex software often has lot of moving parts, dependencies, risks, and challenges. A primary goal of agile teams is to be responsive to change. Yet producing working code (at the expense of a fragile architecture) isn’t sustainable either. On an agile project, software architecting needs to fit with and support critical project efforts while enabling change. How much architecting should be done on an agile project, when and by whom? The answer varies from project to project. During this workshop, you will learn techniques for monitoring your system’s architectural health and doing “just enough” architecture at the most opportune times. |
||
13:00 to 14:00 |
Lunch | ||||
14:00 to 14:45 |
Cyrille Martraire ![]() ![]() Developer with passion for more than 12 years in startups, software vendors and banks, Cyrille is co-founder and technical director of Arolla, a company specializing in software development. Still addicted to development, he dedicates a large part of his energy for clients, hands-on in the code, yet also deeply involved in the business analysis in finance. When FP meets DDD good things happen ![]() SummaryDomain-Driven Design (DDD) and Functional Programming (FP) have a lot of good things in common: DDD has borrowed many ideas from the FP community, and both share a common inspiration on established formalisms like maths. For the software developer, the result is a style of code that mixes the best of DDD, OO and FP. Even in non functional languages like Java or C#, this combined set of practices helps craft simple and powerful code that reads well and that is very easy to test. In this talk we will have a closer look at some of these ideas, in the context of domain models inspired from real-world projects. From basic FP hygiene like immutability and closure of operations to more mathematical inspirations from abstract algebra like monoids, we will show how all that translates into beautiful code. WARNING: This may influence your coding style... |
Open space slot 3 | Vasco Duarte ![]() ![]() Currently an Agile Coach at Avira, Vasco Duarte is an experienced Product and Project Manager. Having worked in the software industry since 1997, Vasco has also been an Agile practitioner since 2004, he is one of the leaders and catalysts of Agile methods and Agile culture adoption at Avira and previously at Nokia and F-Secure. TDD for Managers - Pimp up your Excel skills and learn TDD + Continuous Integration, all at the same time! ![]() SummaryIf you are like me you ended your programmer career before the cool kids came up with Test-Driven Development and Continuous Integration. I envy the programmers of today because they have so much more support than I did! But there's no reason why a manager like me cannot benefit from what has been learned in the last 20 years in our industry. In this workshop you will learn what TDD is in practice, what is Continuous Integration and most importantly why that makes your life as a manager easier! Also, as a bonus you will learn what your best programmers are talking about, and can have an informed conversation with them. We'll look at a very practical example of how TDD can drive better design and higher quality. You will need some coding skills (basic experience is enough) and an open mind to try out new things. |
For two days or just one hour, join other attendees and create a team that develops an application for conference participants, incrementally delivering value each hour. |
Pick a random coding problem from a bowl. Practice anytime you want. Get feedback on your code from an experienced person. |
14:45 to 15:00 |
Break | ||||
15:00 to 16:00 |
Radu Marinescu ![]() ![]() Radu Marinescu professor of software engineering at the Politehnica University of Timisoara, is a researcher focused on the areas of quality assurance and software evolution. He has authored the Object-Oriented Metrics in Practice (2006) book, a practical guide on how developers and architects can use metrics to assess and improve software design. The Good, the Bad and the Ugly of Dealing with Smelly Code ![]() SummaryWe all have a burning desire to write clean code. Every morning we wake up, look in the mirror, and promise ourselves that today we will follow the principles and best practices learned from Uncle Bob and his disciples. But we live in a cruel environment, surrounded by millions of smelly lines of code, reflections of a stinky design... and these constantly challenge our pure-hearted desire for writing clean code. In such an environment, the stubbornness to practice daily the writing of clean code is vital. But is it enough? Can we avoid getting lost in a sea of smelly code and design? In this talk I will try to persuade you that, in dealing with large-scale systems, craftsmanship must be supported by proper techniques and tools that can help us to quickly understand, assess and improve the sea of smelly design that surrounds us. I will present a pragmatic approach on how design anti-patterns (e.g. God Class, Feature Envy, Refused Bequest, Shotgun Surgery) can be automatically detected using a set of metrics-based detection rules, by analyzing the history of the system, and by using intriguing software visualizations. The presentation will also include a live demo of tools that can automate the entire approach to a high-extent. These tools are so robust that they can deal with systems of several million lines of code; but they are also friendly enough to provide you with customized hints that help you deal with each and every case of an "unclean" code. |
Open space slot 4 | |||
16:00 to 16:15 |
Break | ||||
16:15 to 17:15 |
Stefan Kanev ![]() ![]() Stefan loves everything about programming. He has been working with Java, Python and PHP, but eventually he found himself at home with Ruby. He has been doing the corporate thing, the start-up thing and the agency thing, but currently he is working in a small consultancy with a couple of dear friends. Productivity tricks ![]() SummaryBeing able to do stuff is half of the story. Actually getting it done is as hard. Becoming productive in your environment is extremely important to you as a knowledge worker. Especially in the age of many distractions and short attention spans. This session is about being productive. Since different things work for different people, it will cover a broad array of tricks and approaches. While everything won't be applicable to anybody, everybody will find something useful. The talk will have four parts:
|
Open space slot 5 | Alex Bolboaca ![]() ![]() I am a passionate software developer, continuous learner, mentor and teacher. I am a polyglot programmer, I love challenges and I use whatever techniques I know to overcome them. This is how I learn. Adi Bolboaca ![]() ![]() Adrian was involved in developing software for domains like energy, ecommerce, banking, customs and ERP/CRM. He has been working with companies from Netherlands, Romania, Italy, France and Germany, and he is knowledgeable in software technical domains like: clean code, unit testing, test driven development, simple design, emergent design, working effectively with legacy code. Your Easy Start to TDD ![]() SummaryWe are teaching unit testing and TDD for a few years now. During this time, we have discovered a few practices that all advanced practitioners do, usually without realizing it. I believe these practices are the key for a good start with TDD. We will introduce these practices in a short talk and we'll also if we will have enough time we will do a practice session. You will need to bring your laptops with a unit testing framework installed. You need to have good knowledge of the programming language you will use and know how to use the unit testing framework of choice./p> |
||
17:15 to 17:45 |
Péter Halácsy ![]() ![]() Péter "HP" Halácsy is the founding father of Prezi technology. He saw Adam Somlai-Fischer's hand-coded zooming user interface in 2008 and approached Adam about creating a commercial editor so others could use the software. Soon after, HP identified the third co-founder, Peter Arvai, and together these three Hungarians formed an idea: to help people share their stories in a more memorable and engaging way. Today, their idea is known as "Prezi." Be a functional coder ![]() SummaryEveryone is familiar with the gains in programmer efficiency from using dynamically-typed languages like JavaScript, Python and Ruby. It is obvious that, compared to the strict, inflexible ways of the Java/C++ world, dynamic-typing is vastly more expressive. I argue that this is a false dichotomy. My talk will show how a well-designed and flexible type system can prevent important mistakes without holding you back, and a functional programming language can be more expressive than even the most popular dynamic languages. At Prezi.com, we have grown our web-based software to 20M+ users, and learnt how to scale up the hard way. I will show examples of how a strong compiler would have prevented outages, and how using functional paradigms can save time for both front-end and back-end developers. Lots of people are afraid of new programming paradigms that are so different from what they are used to. However, I believe that to build faster and larger applications, everyone must step out of their comfort zone and be a functional coder. |
Open space slot 6 | |||
17:45 to 18:00 |
Retrospective of the day |
Speaking ![]() All the talks will based on code. We will not focus on specific technologies, but we will focus on the best practices, essential to know for any technology. You will find out how other experienced profesionals work. |
Open Space ![]() Learn from others and innovate. During the Open Space sessions, you will be able to propose topics you would like to discuss. Also, you will be able to attend more sessions in parallel you find useful. The sessions are informal parallel ‘gatherings’ governed by the Law of Two Feet: If at any time during our time together you find you are neither learning nor contributing, use your two feet, go someplace else. |
Workshops ![]() Practice in a group with awesome facilitators. You will write code, usually in pairs, on topics like unit testing, legacy code, techniques to be more efficient, techniques to improve the code. The groups will be small enough (max 20) so that everyone can have enough time to understand the idea. The workshops are thought to speed up learning. |
Product development ![]() You will produce software live. The conference attendees will be your customers. We will have sprints of one hour, and you can leave after each sprint. We will use the usual techniques: continuous integration, unit testing, test driven development, coding review, etc all for having a fast feedback cycle. |
Kata Lounge ![]() Perfect practice makes perfect! You will receive some requirements. You will have a timebox that you need to respect. When the timebox is over somebody will review the code with you and give you ideas for improvement. The best code will receive a special prize! |
|
---|---|---|---|---|---|
8:30 to 9:00 |
Welcome coffee | ||||
9:00 to 9:30 |
Intro | ||||
9:30 to 10:30 |
Sandro Mancuso ![]() ![]() Software craftsman , author of Software Craftsmanship: Professionalism Pragmatism Pride and founder of the London Software Craftsmanship Community (LSCC). Software Craftsmanship ![]() SummaryAfter over ten years since the Agile summit, software projects are still failing and developers are still behaving and being treated as factory workers. The software development industry is still very amateur when compared to other professions. How can we change this? Why Agile was not sufficient? Why so many clients are unhappy with their software projects? Why is it so difficult to find good developers? Our industry needs more professionalism and that's what Software Craftsmanship brings to the table. In this talk Sandro will be explaining: what Software Craftsmanship really is, the value of technical practices, what it means to be a professional software developer and what to do to satisfy our customers. |
||||
10:30 to 10:45 |
Break | ||||
10:45 to 11:45 |
Samir Talwar ![]() ![]() Samir Talwar is a developer who’s focused on two things: doing the right things in the right way. A member of the London Software Craftsmanship Community, he tries to help people (including himself) challenge their definitions of “good enough” by running workshops, pairing with anyone and everyone and constantly asking questions. He’s a firm believer in using the right tool for the job, and constantly tries to remind people (including himself) that the job in question is never as small as they think it is. Four Rules of Simple Design --> Higher-Order Functions ![]() SummaryQuoting @jbrains, "A design is simple to the extent that it:
I want to demonstrate how object-oriented principles can only get you so far in simplifying your design. Starting with a clean yet completely imperative code base written in Java, I will explain how we can improve the code by applying functional principles—primarily extracting functions as objects and passing them around. Along the way, I will be pointing out how each refactor simplifies the code according to one or more of the four rules. We will start by removing duplication, even where duplication isn't apparent from an OO point of view, before making the code clearer by replacing the language of the system by the language of our domain. Along the way, we'll reduce the number of moving parts and increase test coverage. I will also show existing libraries in Java and C# that can help you refactor your own code to be smaller and more understandable. This is a live coding presentation. There will be no* slides, just lots of refactoring on a projector. You will not need any understanding of functional programming in order to attend. * There may be some slides. We'll see. |
Open space slot 1 | Erik Talboom ![]() ![]() I love helping other people out, it's something that has been important for me as long as I can remember. I used to tutor people while I was still in school, helping out fellow students whenever I had the chance. It wasn't that weird that after a few years of professional experience, I ended up teaching class. I have trained and coached several teams on different subjects, ranging from process oriented topics like scrum, kanban and effective collaboration through gamestorming to more technical focused topics like test automation, test driven development and software craftsmanship principles. Tdd as if the baby meant it ![]() SummaryEvolutionary design can only be achieved if we let go of all our assumptions and focus on 1 small thing at a time. Every time we let ourselves be carried away by our thoughts we end up designing huge and mostly bulky systems. We can’t trust our mind to come up with the best solution up front, we need to step away from that and focus on the next baby step, not the next jog. One thing I have learned the last few years practicing Test Driven Development is that it is really hard to keep yourself disciplined to really take the smallest step possible and not run off into at least a medium design up front. So during this session we will combine the technique known as “tdd as if you meant it” with the “babysteps” method to make sure we really do take the smallest steps possible while test driving our code design. The babysteps method helps me to keep my discipline and I’m sure it will help you realize that whatever you thought were small steps can still be a lot smaller. Now don’t think that this is going to be an explanation. You won’t get off that easy. This session is about experiencing the combination of these two formats. So be prepared to dig in deep. |
For two days or just one hour, join other attendees and create a team that develops an application for conference participants, incrementally delivering value each hour. |
Pick a random coding problem from a bowl. Practice anytime you want. Get feedback on your code from an experienced person. |
11:45 to 12:00 |
Break | ||||
12:00 to 13:00 |
Emmanuel Gaillot ![]() ![]() Emmanuel Gaillot works as a team coach, (extreme) programmer, facilitator, trainer and systems jiggler. For the last 10 years he has been helping software makers to be better at, prouder of, and happier about the work they produce. The Server That Goes Ping ![]() SummaryNode.js is getting increasingly popular among developers who have to code HTTP servers. And because its underlying single-threaded model makes programming with Node.js quite an unusual experience, developers have one more excuse not to test-drive their code. In this session, we'll do some live coding and demonstrate a possible way to code from A to Z (using mocha and expresso to test-drive our code) an HTTP server that requests informations from a third-party Minecraft server – in the hope to inspire the audience to follow the same path, or to find an even better one. |
Open space slot 2 | Cyrille Martraire ![]() ![]() Developer with passion for more than 12 years in startups, software vendors and banks, Cyrille is co-founder and technical director of Arolla, a company specializing in software development. Still addicted to development, he dedicates a large part of his energy for clients, hands-on in the code, yet also deeply involved in the business analysis in finance. DDD Games: to discover DDD in practice ![]() SummaryDive into some of the key points of Domain-Driven Design (DDD) thanks to some simple games. With pen and paper and in your IDE, discover the concepts of Ubiquitous Language and Bounded Contexts in a more concrete way! Explanations and examples are mixed with the hands-on games to complement the learning. (part 1) |
||
13:00 to 14:00 |
Lunch | ||||
14:00 to 14:45 |
Antoine Vernois ![]() ![]() Perpetual learner, software craftsman, agile anarchist. I help teams and companies to find their own organisational and technical way to create and deliver software for that will delight their users. Clean Code in practice ![]() Summary"Continuous attention to technical excellence and good design enhances agility." 9th principle of Agile Manifesto. Why is it so important to take care of code cleanness ? What are the major "code smells" which taint our code ? And how to clean or avoid them? Come find some answers to these questions (live code inside :). |
Open space slot 3 | Cyrille Martraire ![]() ![]() Developer with passion for more than 12 years in startups, software vendors and banks, Cyrille is co-founder and technical director of Arolla, a company specializing in software development. Still addicted to development, he dedicates a large part of his energy for clients, hands-on in the code, yet also deeply involved in the business analysis in finance. DDD Games: to discover DDD in practice ![]() SummaryDive into some of the key points of Domain-Driven Design (DDD) thanks to some simple games. With pen and paper and in your IDE, discover the concepts of Ubiquitous Language and Bounded Contexts in a more concrete way! Explanations and examples are mixed with the hands-on games to complement the learning. (part 2) |
For two days or just one hour, join other attendees and create a team that develops an application for conference participants, incrementally delivering value each hour. |
Pick a random coding problem from a bowl. Practice anytime you want. Get feedback on your code from an experienced person. |
14:45 to 15:00 |
Break | ||||
15:00 to 15:45 |
Aimee Rivers ![]() ![]() Aimee is a travelling software crafter and developer in test, with many years experience in web programming and behaviour driven development. Aimee helped to test and deliver the BBC's Interactive Video Player for the Olympics, and is currently working in Brighton, helping to build HTTP web services for an exciting new photo sharing service. A developer in test ![]() SummaryA Developer In Test (DIT) writes code to test code. I will show from a Behaviour Driven Development (BDD) perspective how a Developer In Test can help out at all stages of a software development lifecycle. Working with stakeholders and business analysts to define the purpose and desired behaviour of a product, running ten-minute test plans as a focus aid, guiding developers to build new features, catching edge cases, producing living documentation, and building up a suite of ongoing regression tests to ensure product quality. I can demonstrate some of the tools of a Developer In Test: Cucumber, RSpec, Selenium Webdriver, SpecFlow and MSTest for .NET development. I will also discuss how a Developer In Test is in an ideal position to act as a cheerleader, motivating the team to build high quality products. |
Open space slot 4 | Aki Salmi ![]() ![]() Aki Salmi is a hiking guide of Suomen Latu and soon-to-become hiking guide trainer. As when Aki is doing things he loves while earning some money out of it, he works as programmer at Ambientia. Aki does not believe in magic - he makes it happen. And the magic often embodies wisdom on how to inspire the teams he works with to do their best. Together, as a team. His listening skills are well known by his friends and colleagues. Introduction to BDD ![]() SummaryBDD (Behaviour-Driven-Development), Specification by Example, Specification with Example, ATDD (Acceptance-Test-Driven-Development) - our beloved one has many names. In this workshop we go through the basics of BDD - the collaboration part. I will explain one possible process framework for capturing the executable specifications. On the latter part of the workshop it's your turn to practice: I play a customer requesting for a new feature while you are programmers/testers/tech lead trying to capture the important specs. By taking this step of practicing the first phase - the phase where hidden requirements are found we aim to learn to take our time first stages of the process. In the process, we learn how important it is to ask relevant questions from the customers - what is the expected behaviour in certain edge cases, what happens if user does something surprising to find the hidden details. (part 1) |
||
15:45 to 16:00 |
Break | ||||
16:00 to 16:45 |
Alex Bolboaca ![]() ![]() I am a passionate software developer, continuous learner, mentor and teacher. I am a polyglot programmer, I love challenges and I use whatever techniques I know to overcome them. This is how I learn. Exploring design alternatives using TDD ![]() SummaryDesign is the process of creating artifacts that solve problems. In the case of software, design is the creation of code entities that implement a feature. After trying up-front design for a while, we realized that we can take advantage of the fundamental property of code: we can change it very fast. We realized we can do incremental design, and the most popular way to do it is TDD. Ask anyone who does design (graphical, building, industrial etc) and they will tell you it involves exploring alternative solutions. For some reason, I've rarely heard about exploring alternatives when we program. Those who do explore do it informally or with design sketches. TDD is however an interesting technique to use for exploration. In this talk I will show a few patterns of design exploration using TDD. I've discovered them with the teams I helped and during community events, mostly during the 30+ code retreats I've facilitated or attended. |
Open space slot 5 | Aki Salmi ![]() ![]() Aki Salmi is a hiking guide of Suomen Latu and soon-to-become hiking guide trainer. As when Aki is doing things he loves while earning some money out of it, he works as programmer at Ambientia. Aki does not believe in magic - he makes it happen. And the magic often embodies wisdom on how to inspire the teams he works with to do their best. Together, as a team. His listening skills are well known by his friends and colleagues. Introduction to BDD ![]() SummaryBDD (Behaviour-Driven-Development), Specification by Example, Specification with Example, ATDD (Acceptance-Test-Driven-Development) - our beloved one has many names. In this workshop we go through the basics of BDD - the collaboration part. I will explain one possible process framework for capturing the executable specifications. On the latter part of the workshop it's your turn to practice: I play a customer requesting for a new feature while you are programmers/testers/tech lead trying to capture the important specs. By taking this step of practicing the first phase - the phase where hidden requirements are found we aim to learn to take our time first stages of the process. In the process, we learn how important it is to ask relevant questions from the customers - what is the expected behaviour in certain edge cases, what happens if user does something surprising to find the hidden details. (part 2) |
||
16:45 to 17:15 |
Retrospective of the conference | ||||
17:15 to 17:30 |
Closing of the conference |
Mention that you will attend a Mozaic Works event to get the special accomodation prices.
Prices include VAT and other taxes, buffet breakfast, free private parking 24/7, free WiFi, free spa access (sauna, jacuzzi, fitness)
Transfers airport/hotel/airport 10 EUR/person (will be charged on the first night)