NDC Oslo 2023: My 10th NDC

Last week I was in Oslo to attend the NDC conference. I cannot really believe that this was already the 10th NDC Oslo I attended. With 2’600 attendees it was the biggest NDC event ever, but at least for me not the best.

 

Practical Clean Architecture workshop with Jason Taylor

I started my NDC week with the two-day workshop “Practical Clean Architecture with .Net 7” hosted by Jason Taylor. Jason did a great job of introducing Clean Architecture in a dogmatic-free way. This gave us attendees the chance to learn the nuances and trade-offs of this architectural style.

We started with the AngularJS template for ASP.Net Core, added the functionality in a traditional MVC-way and then changed the architecture of the application to Clean Architecture (by moving code around). The benefit of this approach is that you can start with something familiar and then evolve it into the new style. The downside is that with all the familiarity you miss the important differences and keep doing what you did so far and just call it Clean Architecture. The dependency inversion for the infrastructure (the adapter depends on the business logic instead of the business logic depending on the infrastructure project) has some significant implications that are easy to overlook but are the key to understand this style.

When it comes to testing, the workshop was probably a bit too practical. Testing came up in the afternoon of the second day after we had to click through our application for 1.5 days to check if it works. Here I expected a lot more, given that testability is such a big reason to use Clean Architecture. But it showed us undoubtedly that a testable architecture does not test itself.

After the workshop I would consider Clean Architecture in the case of incredible complex business logic that needs thorough testing or if the business has absolutely no idea where they want to run the application. With Clean Architecture we can focus on the use cases (which go in the application layer) and postpone all infrastructure details until we know what is really needed. For everything else I would keep using vertical slices and not bother with the complexity of Clean Architecture.

If you want to see an example of .Net and Clean Architecture, go to GitHub and have a look at the eShopOnWeb project.

 

Great talks

These are the 5 talks I enjoyed the most at NDC Oslo 2023:

  • Git Hidden Gems” by Enrico Campidoglio showed us new advanced tricks for Git that makes working with it much better. The presentation covered topics like better logs, nicer diffs, searching for code or commit messages and many more features.
  • Intentional Code – Minimalism in a World of Dogmatic Design” by David Whitney showed some remarkable parallels between code and literature. While easy to misunderstand and hard to tell when it is too much and goes to gold-plating, looking at your code and making it more readable and easier to understand is an important step.
  • OpenAPI & .NET: You’re Doing It Wrong” by Mark Rendle remembered us that OpenAPI is not only Attributes we slap on a controller, but a format that allows us to define a specification. And with every specification, we should make sure that it covers the important parts that we want to share with the users of an API.
  • Clone yourself with Azure Custom Neural Voice” by Callum Whyte showed us all the steps it takes to train an AI model to create a clone of your voice. The results were quite impressive and came so close that I did not notice much of a difference between the computer-generated audio and the speaker.
  • How AI is impacting cybersecurity. Does it?” by Victoria Almazova showed us the many security problems we get around AI-based technology. From wrong answers to “hallucinations” over model theft, there is a lot that increases the attack surface. It will be interesting to see how the legislation will keep up with AI and if companies will add the necessary security measurements.

The recordings should show up over the next months on YouTube.

IMAGE: Mark Rendle on the NDC stage with the astronaut meme reading ‘Wait, it is all YAML files?’ ‘Always has been’

 

A special Oslo fjord cruise

The evening event in the Oslo fjord had nice weather, great food and a special guest in form of the aircraft carrier Gerald R. Ford that was in Norway for a NATO exercise.

The carrier Gerald R. Ford in the Oslo Fjord

 

WTF?!?

While most speakers did a great job, there were too many talks where I had to check if I am really at an NDC event.

The first talk I attended was over after just 35 minutes and the speaker had to leave the conference right away to attend a company retreat. What? It was a 60-minute slot, and the topic of web components should give you easily enough to talk for an hour. This left us attendees with a very large break, then it was now too late to go to any of the other talks. Thanks for nothing.

That a talk is shorter than the 60 minutes slot can happen. But at this NDC I was in 7 talks that finished in 45 minutes or less.

Then there was the talk about Backstage.io. It would have been a great lightning talk, but too thin for a user group meeting, let alone for the NDC Oslo. For a talk at a conference, I would at least expect the speakers to have seen their slides before giving the talk. But not even that low-hanging fruit was picked.

To prevent such disappointments in the future, I wish these points would be considered by all speakers:

  • If you make a technology-specific talk, name the technology in the abstract so that the audience knows beforehand what it is about.
  • Please give the audience a quick look at the big picture so that they can understand where your talk fits in. Just because you are at a developer conference does not mean everyone knows the topic you are talking about.
  • Fill the slot for your talk. If you have a 60-minute slot, make sure that you have enough material to fill that hour. If you are nervous, prepare some extra material that you can show should you run too fast through your talk.
  • If you want to build something for the talk and that is not finished when you submit the CFP, make sure that you have a plan B at hand should you fail to build that thing.
  • Run your talk a few times before you go on the NDC stage. User groups are constantly on the lookout for talks, and not only can they provide you with a training opportunity, they also can give you feedback on what works and what needs clarification.
  • When the audience asks a question, make sure to repeat it so that everyone can hear what was asked. That is especially important for conferences with an overflow area and for those who watch the recorded talk afterwards.

 

Conclusion

Despite all the disappointments, NDC Oslo was still a good conference. I learned a lot and can put many of the things into action.

However, I have noticed a tipping point for myself. So far, at the end of each NDC Oslo, I was a little sad that the conference was over so quickly. This time it was different: I did not care.

I hope that NDC Oslo quickly returns to the high-quality standards we are used to and delights us next year not only with the biggest, but also the best NDC.

Update 15. July 2023: add links to the videos

1 thought on “NDC Oslo 2023: My 10th NDC”

Leave a Comment

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