Nikola Živković: Top 5 talks from GrowIT
First of all, let me start this article by stating that GrowIT conference in Novi Sad was awesome. It is exactly the thing that was missing in our local IT Community, and it seems that the organizers of the conference ticked off many of the ‘good conference’ boxes. As you know, over the years, the job description of software developers has changed. There are so many things that we are doing today, which go beyond just writing code. We are estimating tasks, talking to clients, leading teams, and so on. This gives a wide range of topics that one conference should cover and this is exactly what GrowIT did.
One of the things that I am always glad to see is how our community cares about the psychological well-being of the people in our industry. Lately, the growing trend has been for conferences to include at least one talk about mental health, and this was done by the GrowIT conference as well. Another thing that I really liked is that there were plenty of talks about leadership.
The conference ticked off many of the ‘good conference’ boxes.
Being a part of learning organisation such as Vega IT, which early on recognised the potential of this conference, motivated me to deliver (hopefully) useful lecture. The learning impulse was combined with the fact that this conference was held in the city I live in. This gave me the opportunity to be a part GrowIT and share my knowledge of Machine Learning (check out the slides and the code here).
Nikola Živković: Solving Real World problem using machine learning in Python
Conference and the venue
The guys behind the GrowIT have a lot of experience when it comes to organizing conferences. They have put together several PHP conferences so far, and they used that knowledge and experience to make GrowIT happen. This explains why the first full-stack conference was such a success. Of course, there are some rough edges that can be polished, but the overall feel is that GrowIT hit a bullseye. It was a pleasure to see so many great minds get together to discuss new ideas, technical innovations, and business potentials.
Novi Sad is not a big city and there are not so many options when it comes to organizing events of this type and velocity. So, it was not a surprise that the conference was held at Kongresni Centar Master, a big, spacious place. This space was very well-used and the conference had three tracks, meaning – a lot of talks.
Talks
The conference was marketed as a full-stack conference - the term which can be understood differently by different people. As a result, there were topics that are distinctly different from one another. As expected, there were plenty of technical talks about front-end, back-end, databases, DevOps and testing, but agile and leadership talks had their place as well. The panel on the first day was inspiring and engaging too. To sum it up, “full-stack” in this particular context meant “every aspect of the industry”, which was pretty cool.
Among many talks, I was blown away by quite a few. Here is the list of the talks that had the biggest impact on me. The list is not in any particular order. It is, however, very subjective, even though I’ve tried to be as objective as I could. Of course, soon you will be able to check out all the talks on the conference’s website and pick your favorites.
Lemi Orhan Ergin – Slow down to go faster than ever, but how?
The Keynote of the first day was reserved for the co-founder of Craftbase and Turkish Software Craftsmanship Community – Lemi Ophan Ergin. This guy got famous when he found the issue in the MacOS, known as Apple root bug. So, yes, it was a strong start. Since he worked as a developer, team lead and Agile coach, he had a lot of insights about where we should keep our focus on. His main point was that rushing in software development is decreasing productivity and increasing complexity.
He also insisted that business as such has more value from sustainable speed than from pushing a lot of features at once. The antidote was served in a form of eleven pieces of advice categorised in three big groups. The first group revolved around people who you should hire and learning/practicing mindset. The second group was about processes, plans and waste. Finally, the last pieces of advice were connected to the product development itself and best practices.
Zoran Horvat – So, you’re writing code one line at a time? Yeah, right.
Watching Zoran Horvat’s presentations is always such a trill. It’s like you are watching some object-oriented wizard coming up with a hex. Well-known for his Pluralsight courses and conference talks, Zoran is working as a Principal consultant at Coding Helmet at the moment. This time he showed us how to write well-designed object-oriented code incrementally. Just by changing his perspective, he was driving his design just by using user requirements.
“Don’t be ashamed of empty placeholders” was a mantra of the talk, as he was exploring different levels of each requirement, and building his domain classes one step at a time. It was like he was coming up with his solution just by fixing compiler errors. Should I call this approach Compiler Driven Design? I probably shouldn’t. And yeah, he also used his concept in which every class has just a constructor and one public class. Wizardry, I tell you!
Nikola Djuza – There and Back Again: e2e Testing React with Cypress
Have you ever tried to create ‘end-to-end’ tests for your web application? You have probably used Selenium (or some Selenium based tool) for that purpose, right? Me too. It was painful. As it turned out, there is an alternative to it – Cypress. It is quite good actually. Nikola Đuza, TopTal JavaScript and Ruby developer, showed us how we can create e2e tests pretty easily with this tool. As it turned out, Cypress is able to take snapshots, do ‘time travel’ and it works really well with React.
Debugging is also easier and it can be done in the browser. It also comes with suggested best practices. Another cool thing is that UI is not used for populating data, but everything is done programmatically using DOM, which gives us more control and brings the BDD world somewhat closer to front-end development. However, there are some cons to using this tool as well, as Nikola points out. You can write your tests only in JavaScript, and, so far, only Chrome is supported.
Andrea Provaglio – Evolving into Agility
The keynote on the second day was fantastic, too. It is probably the talk for which I wrote down the biggest number of notes. Andrea Provaglio talked about agile as a mindset and not as a mere certification. He implied that changes come from leadership and from changing underlying paradigms by which corporations, (and we ourselves), operate. Fixing the cause will not fix the problem, but good leadership will. His recipe for good leadership - listening.
Using terminology and techniques from Theory U, Andrea described four levels of listening as well as the features we need to develop in order to achieve them. By using these, we will be able to avoid Avijja – a buddhist concept which can be described as “ignorance that prevents you from seeing things as they really are”. These pieces of advice go really well with the ‘Agile Manifesto’ and ‘5 Principles of Scrum’. In the end, we learned an important lesson at the lecture: Agile practices are good paradigms, but you need to develop soft skills to benefit from them.
Pim Elshof – Technically DDD
Domain-driven development has been around for a while now. There are numerous books written on the subject, but as Pim points out, we also have books that try to explain and decipher the original books. Must all this be so complicated? Pim Elshof has an extensive experience in domain-driven development, and at the moment he is working at Procurios and doesn’t think so.
In his very funny talk (at the moments I was wondering if that was what the software development stand-up would look like), got through the basics of the DDD. We got a chance to learn (or remind ourselves) what Value Objects, Entities and Services are. Apart from that, Pim gave his solution to the complexity:
- Implement solution in an Entity
- Extract Value Object
- Refactor Value Object
Conclusion
In a nutshell, I had a blast at the GrowIT and I am really hoping that it will become a tradition. Novi Sad is growing as an IT centre and conferences like this one are something that the local community was missing. By saying this, I hope that next year there will be more events similar to this one, where we will have the opportunity to hear about new ideas and share our knowledge.