NDC Oslo 2019: Inspiring & Practical

NDC Oslo keeps growing. This year you could choose from 19 pre-conference workshops and attend one of 10 parallel tracks throughout the 3 days of the conference. The mix of well-established speakers and newcomers was very interesting and nearly 2500 attendees found their way to the Oslo Spektrum.

My biggest challenge this year was to choose a session. Too often I wanted to attend 2, 3 or even 4 talks in the same time-slot. Luckily, the talks are all recorded and I can watch them soon. The agenda was very much in line with what my company wants to adopt in the near future. I will therefore have plenty of chances to put my newly gained knowledge into practice.

 

Docker for more agility

Docker was a big topic at the conference. I attended the workshop “Docker and Kubernetes for Developers” by Mike Long and learned a lot about how Docker works and what Kubernetes can offer. The workshop was not recorded, but you can find the Docker katas and the exercises for Kubernetes on GitHub. Thanks to an impressive cloud-based setup, we spend our time with doing the exercise and did not waste time to get our environment to work. I can highly recommend this workshop for everyone interested in Docker.

Julie Lerman explained in her talk “Dev and Test Agility for your Database with Docker” all the components my team wants to use to improve our BDD test environment. She explained in detail the different parts that are involved, how we can run them in the right order and what we must do to save ourselves hours of debugging time. As far as I see it, we just need to change a tool or two and use Windows containers. It felt like a private consulting hour that answered all my questions. You can find her code on GitHub.

 

A lot to think about architecture & software development

Sam Newman did a great talk on “Monolith Decomposition Patterns“. He explained various approaches we can take to turn our monolith into something more manageable. I especially liked all the reasons he brought up to not splitting up a monolith in the first place. So many project fail because they end up with a distributed monolith instead of the new and shiny world of micro services. Having a clear business goal that requires this transformation is a very important prerequisite to do it successfully. The idea of a modular monolith is a very interesting concept and deserves some more attention.

Deliberate Architecture” by Robert Smallshire was very calm, but if you listened carefully, he had some big and important points in it. One easy to overlook fact is that the average retention time for a developer in a project is rather short. The more we move from projects to products, the more this will be a problem. How can we preserve the architecture, when half the team was not present when we decided it? Questions like these force you to think about ways to preserve knowledge and to improve your risk management. A great quote from this talk about non-functional requirements and how architects should handle them:

Advice to Architects:
You look after the quality attributes.
The features will look after themselves.

Gojko Adzic was fun to listen to at the last talk of the conference. In “Descaling Agile” he explained the main factors that lead to problems when you try to scale agile. Many will not agree with him, but many more will be happy about the Guide for Detecting Agile BS published by the Department of Defense. It is just five pages long but helps you to uncover so many of the BS that is going on in selling Agile.

 

(Deep) learning and its implications

I’m just an engineer‘ is no excuse when it comes to the negative sides of your work. Tess Ferrandez-Norlander explained in “We are the guardians of our future” what the problem with many machine learning / deep learning applications are and how the wrong training sets have big implications on the life of (marginalized) people. Excuses are no help to those who lose their credit ratings, cannot apply for jobs or are otherwise stopped from participating in our society just because some developer tried to solve a complicated problem without ever thinking about the consequences if they got something wrong.

How to prevent this and improve your deep learning approach where explained by Tess in “A practical guide to deep learning“. I found the explanation very useful, but hoped for details that are more practical. Galiya Warrier explained exactly this missing part in her talk “Deep Learning in the world of little ponies“. The combination of all three talks gives you a great starting point for your own journey into machine learning.

The talks about machine learning made it clear that Python is the language you need to know to work with all the frameworks and tools in this field. While there was no crash course for this language at the NDC, there was at least a talk in the same direction. In “Trying to learn C#Patricia Aas explained the challenges she had to tackle to learn C#. She did not want to learn programming; she just wanted to learn another language. Concepts that are the same or the ones that at least are similar where simple. The challenges came with things that look the same but behave completely different. Even worse, there are concepts and ideas you may miss because they are unique to the language. While I cannot use this directly to learn Python, it gave me some great points to look out for.

 

Git all the way down the rabbit hole

What is a commit in Git? Which low-level parts are involved? How is the data stored? And what is it with all those hashes and graphs everyone talks about? If you want a deep dive into the fundamentals of Git then “Understanding Git — Behind the Command LineEnrico Campidoglio will answer your questions. Even when you never will use the low-level commands, you will get a much better understanding on the internals of Git.

 

Videos coming soon

The first videos of the conference are already published. I will add links to the ones I wrote about as soon as they are available.

 

Conclusion

NDC Oslo was once more a great experience. If you think about attending a great conference about software development in 2020, you should look at the agenda of the next NDC Oslo (8-12 June 2020) that shouldbe published in March 2020.

 
Updates:

  • 2019-7-2: links to the first 2 videos
  • 2019-8-16: links to 6 more videos

Leave a Comment

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