Adding to the list of things that COVID-19 has changed, we can add the regular community Developer Days that run around the country. The last one that took place was DDD North back in February just before the pandemic hit, with every other one unable to run. That didn’t stop the community organisers though, and this weekend they put together an online free developer conference, DDD 2020.
Unlike the in person conferences, DDD 2020 was unencumbered by limitations of venue, so whereas even the biggest DDD events I’ve been to have only had four tracks going, DDD 2020 had seven, and no limit on the number of attendees. All in all there were 50 different sessions to choose from, so plenty to interest everybody.
As with the in person conferences I attended a mix of sessions, some of which piqued my interest, others of which were relevant for work.

First off I attended the session on .Net 5 and C# 9, hosted by Stuart Lang. This was a whistle stop tour of some of the new features in .Net 5, and changes in C# 9. In all honesty I doubt I’ll get to use many of these in anger any time soon, as I’m very firmly in the realms of legacy applications for the moment, but it was certainly interesting. Stuart also showed a pretty interesting graph that highlighted that Microsoft is going to have a much more aggressive attitude towards supporting older .Net frameworks going forward, so legacy apps are clearly better off staying on the .Net 4.8 Framework as this will be supported for many years to come, but even .Net 3.5 has support going out to 2029.
The other interesting aspect is that the lifetimes for the even numbered releases of .Net were significantly longer than the odd numbered releases, so he suggested that unless you can update the version of .Net easily you should only be targeting the even numbered releases.
Next I took a diversion into psychology with Adam Griffiths session on a Geeks Guide to People. This was a lot of interesting insights into how people work together and respond, not surprisingly with some insights on the effect of interacting primarily online.

Also on the subject of interacting online was the great session on speaking and presenting virtually from Dylan Hayes. As you can see from the picture it got quite meta when he got to the point of trying to explain the use of OBS for a presentation during a presentation he was hosting with OBS!
Dylan had lots of good tips that are useful both if you are doing full presentations, or even just regular meetings in Teams or Zoom. In particular he advised against the use of virtual backgrounds – ironically being used by several other speakers during the day, and instead recommended paying attention to what is behind you and curating what people can see. He also had good advice on the use of external cameras, where and where not to place lights, and using and external microphone. A big takeaway is that the cameras and microphones on laptops are junk, and to get a good effect you really need to be investing in external webcams and microphones.
Next up I went along to a session called “Break Up with your Dev Machine” presented by Callum Whyte, looking at whether developers really still need the kind of beefy powerful computers we have at the moment. As a travelling consultant he was looking at whether you could get by with something smaller and less powerful by taking advantage of online service such as Virtual Desktops in Office 365, or GitHub Codespaces, or a hybrid combination.
Whilst new tools like GitHub Codespaces are pretty impressive – it is effectively running VS Code in a browser, I’m not sure many developers will be able to cope without a powerful machine, not least because at times you’re not going to have a reliable internet connection.
My next session was another change of gear with the CTO of Black Marble talking about his Azure DevOps plug in that automatically generates release notes. During the session he went through the way the plugin has developed, and showed off some of the functionality. Given that at work release notes and deployment instructions are very much a manual process, it certainly looked like something we could make use of.

Into the afternoon, next up was Sean Farmar talking about using Domain Driven Design to decompose your monolith. Again with the monolithic legacy applications I’m currently dealing with, this was really relevant for work, although in an hour long session Sean could only barely scratch the surface.
His first piece of advice is probably one of the most important, that the easy temptation to throw your hands in the air and rewrite a monolith is a fantasy, and often produces similar problems after a lot of time and expense. Much better to look at what you currently have, and use patterns such as the strangler pattern to put a facade in front of a monolith and slowly evolve it into something more maintainable.
The session took a look at a simple example, and splitting the domain into a number of bounded contexts where there was high cohesion and coupling within a bounded context, but not outside. Communication between contexts should use messaging or events.
Another important point he made towards the end is that there is not a one to one relationship between bounded contexts and micro-services – logical boundaries in the design and physical structure are two very different things.

Next up was Simon Painter talking about Pride and Prejudice and C# – a bit of a random title, and even more random when he started the session talking about breakfast cereal!
What he was actually talking about was Markhov chains, a concept first described over a century ago by Russian mathematician Andrey Markhov, but which turns up all over the place in computing supporting AI systems, generating test data, or predictive text engines, hence the Pride and Prejudice connection.
Having started off demonstrating the principle with breakfast cereals he moved on to using the technique to analyse Pride and Prejudice, and then to generate text at random that whilst it didn’t make much sense, certainly sounded like nonsense written in the style of Jane Austen. Fascinating stuff.

My last session of the day, was the only time we had a serious technical glitch, with the session starting almost twenty minutes late after they had issues with Teams. Given the hiccups we have with Teams at work at times I’m surprised we got as far as we did during the day before something went wrong.
Having said that it was worth waiting for. Gary Short is a data scientist, and having worked for various companies over the years is now working for himself, currently looking at how people handle unforeseen events on the road network.
In the past the organisations responsible for our roads have often relied on experienced road managers who would set up closures by gut feel, however Gary demonstrated how they can use the large amounts of data gathered from roadside sensors to determine the effects of particular actions on the road network.
As so often with data science solutions it’s as much about gathering large amounts of data and determining patterns, but as ever with Gary’s sessions, really interesting seeing what the kind of data volumes modern computers can handle can now produce.
In summary, as a first attempt at an online DDD I think the day was a great success. Given that DDD Scotland hasn’t run since 2018 leaving Scottish Developers with DDD North as probably the nearest event, it was great for me as a developer based in Scotland to not have to drive for several hours to attend the day. Whilst I have travelled to DDD events previously, most notably to the last DDD Scotland from down south, and also to DDD South West, it was great to have access to such a good variety of content without leaving my home office. Whilst it obviously lacked the interaction and networking that are also parts of the DDD events, the wider inclusion of streaming online brought in many more developers than would usually be able to attend, and for those of us with family commitments allowed us to participate as well. Hopefully the experience with DDD 2020 online will lead into some more hybrid events for 2021 as restrictions are eased.
Also published on Medium.