First of all, let me start this article by stating that GrowIT conference in Novi Sad was awesome. It is the exact 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 shifted. There are so many things that we are doing today, which go beyond just writing code. We are estimating tasks, talking to the clients, leading teams, and so on. This gives a wide range of topics that one conference should cover and GrowIT did exactly that.

One of the things that I am always glad to see is how our community cares about the psychological well-being of people in our industry. Lately, it has been a trend that conferences include at least one talk about mental health, and this was done by the GrowIT as well. Another thing that I liked a great deal is that there were plenty of talks about leadership. The fact that this conference was held in the city I live in also gave me the opportunity to be a part of it and to share my knowledge of Machine Learning (check out slides and the code here).

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. Due to this, it is not that weird that 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 as many 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 place with plenty of space. 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. This reflected in a manner that we had topics that are vastly 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 managed to be 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 at 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, we were to 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 the productivity and increasing complexity.

He also insisted that business as such has more value from sustainable speed than from the pushing a lot of features at once. The antidote was served in a form of eleven pieces of advice grouped in three big groups. 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 regarding 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, at the moment he is working as a Principal consultant at Coding Helmet. This time he showed us how to write well-designed object-oriented code incrementally. Just by setting his mindset, he was driving his design just using user requirements.

“Don’t be ashamed of empty placeholders” was a mantra of the talk, as he explored 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. Dare I call this approach – Compiler Driven Design? I probably shouldn’t. And yeah, he also used his concept in which every class has just constructor and one public class. Wizardry I tell you!

Nikola Đuza – 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. Slides and resources can be found here.

Andrea Provaglio – Evolving into Agility

The keynote on the second day was fantastic too. It is probably the talk for which I wrote the highest number of notes. Andrea Provaglio talked about agile as a mindset and not as an empty 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 and which features we need to develop in order to achieve them. 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 could leave the lecture with an important lesson to learn: 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 that have been 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 a bunch of experience, and at the moment he works at Procurios and doesn’t think so.

In his very funny talk (at the moments I was wondering if this how the software development stand-up would look), 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 complexity:

  1. Implement solution in an Entity
  2. Extract Value Object
  3. Refactor Value Object

Conclusion

In a nutshell, I had a blast at GrowIT and I am really hoping that it will become a tradition. Novi Sad is growing as an IT center and this conference is something that was missing in it.


Read more posts from the author at Rubik’s Code.


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.