Software Design & Development Conference – London 20-24 May 2019

This is my first blog post after many years. I am happy to write the first post on an exciting topic that I believe is also exciting for other software developers as well. Few colleagues and I attended our first software development conference during last month. It was a five-day conference that started with a full-day workshop, following three days of sessions with a final day of another full-day workshop. Main focus area was software engineering and different sessions concentrated on different sub-focus areas such as software development methodology, architecture, project management and user experience.

Opening session of SDD 2019.

Workshops

I attended two full-day workshops during the conference. First workshop, given by Jeff Prosise, was about using Azure. Azure workshop showed us how strong Microsoft was building the platform. During the workshop, we created a web app and used storage services to upload content for the app. In our web app, some number of images were shown. This is really simple usage of Azure but using Cognitive Services to detect the content of the images were impressive. It is important to remember that those services are not free. There are different tariffs for almost all of the services in Azure but prices seemed reasonable.

“Software Architecture: the hard parts” was the last day workshop of the conference. It was run by Neal Ford and Mark Richards who are respected Software Architects. The point of the workshop was to design a system with the best possible architectural model. Three day sessions before the last day workshop were critical to be able to make the design since the workshop was implemented to digest the information given during the sessions.

Sessions

Conference sessions were held for three full days. Each session lasted about two hours. There were 6 parallel sessions in every turn and there were three turns every day. I would like to summarize the sessions under three sub-titles: Architecture, Methodology and Code Analysis.

Sessions covering the software architecture demonstrated the essentials of how to design software in modern day. Monolith and distributed architectures were explained with “why and when to use” points. -ilities of each architecture type was gone through to decide which architecture is better over another. One good point was that there is almost never perfect architecture for a problem, there are always tradeoffs. Another aspect to architecture was analysing the existing architecture. Macro and micro methods were examined. Architecture fitness functions are particular type of objective functions that are used to summarize how close a given design solution is achieving the targets. Domain driven design and design by volatility were other important terms came up about architecture, if you have any interest to make a search about.

Agile was widely covered in the conference. Many of the speakers concentrated on the negative sides of the agile and how it is implemented among different company setups. Speakers concentrated on agile manifesto and how agile was nowadays perceived as scrum or other processes. It is hard to use agile in a productive and cost effective way. There is a sweet spot of conditions where agile works and when those conditions are not met, agile is ineffective by cost and time.

Refactoring and code analysis was another interesting part in the conference. We all do code refactoring and most of us use static code analysis. However, we run code analysis right before we make a commit or create a pull request. Interesting thing in the conference were the new tools to measure the complexity of the code over time. In my opinion, using such tools to measure the cyclomatic complexity of the code and creating graph visualisations could give life saving clues about pain points of the code and avoid catastrophe. Such techniques also help detecting the dead code in the system. If you are interested, you may search in your search engine for Code Scene.

Software Design and Development conference was well worth the time and effort. Speakers were really good and they conveyed their message nicely in almost every session. This conference was targeted to developers and architects who are open to change and improve themselves towards reaching today’s software design and development standards. It was also surprising to realize many things we already do in practice were also developed by many of the speakers and adapted to actual work environments. Turks have a saying “aklın yolu birdir” which literally means “correct minds think alike”.

Thank you for your time.

Book Advice

There were many suggestions for audience during the conference but below two books are the ones on top of my list.