SDD Conference – A look back at Day1

The Barbican Centre, London, UKThe Software Design & Developer (SDD) Conference is held at the famous Barbican Centre in London between 19th and 23rd May. The conference is comprised of two days of workshops and three days of in-depth technical sessions. I have been lucky enough to attend Tuesday to Thursday, so today was my first day. As with all conferences it is very hard to decide which sessions to sit in on and which to skip and per normal, I wanted to sit in on more than I could possibly could!


So far the organisation of the SDD conference, from the booking right through to on site assistance has been first class. Plenty of refreshments and snacks to keep you going, a great lunch, good selection of exhibitors and more importantly, well thought out and constructed sessions. My previous experiences of conferences is that the sessions either end up being too long and the presenter runs of out of material, or too short, so the presenter ends cutting short his presentation! Each session here is 1hour and 30 minutes long. I haven’t attended a session that struggled to use the time effectively. Finally, all conference presentations and code samples are made available to attendees. Why don’t all conferences do this?

So without further delay, here are a list of the sessions that I attended and general thoughts. I will follow up with further posts detailing my day two and day three experiences.

SDD Keynote Presentation: Software Architecture vs. Code

Presented by: Simon Brown

Without a doubt, Simon delivered one of the best keynotes I have seen. I got a lot from it, with plenty ‘food for thought’ moments. His talk covered the code vs software architecture dilema. What dilema? Actually one that I am all to familiar with! Components, services, layers.. what about the objects? Can you document the software architecture and does it reflect the code underneath? Do you even now what a software architecture diagram should look like? He touched on UML and how in his experiences it is not used (yes, I am guilty of this). What did I get from the session? Aside from the tips on Bass fishing ( you had to be there ), it certainly has made me think more about my approach to software architecture and how I should be mapping it back to my code properly. I’ll be reading through Simon’s website as well as having a look at a book he has has written that wraps up his experiences and principles. I believe it will be a thoroughly good read and one that all developers should learn from! I will also be following him on twitter @SimonBrown



SDD Session1: C# 5 async & awaitasync & await session

Presented by: Andrew Clymer

I couldn’t come to the conference and not attend this session. Async and await is something that I have only recently been introduced to, via a large software project that I am working on over at Xtravirt. The session was very informative and entertaining. Andrew certainly is a playful presenter :)  I got some great pointers on things like continuewith, using async within lamdas, and how to properly wait (yes, I know, wait!) when required. Something that I hadn’t though about before was the error handling side of things and how you wouldn’t get visibility of all errors from tasks. Andrew covered this off nicely and introduced me to flattening task exceptions, something that is going to be very important in some up coming work I have. Andrew was joined by a colleague on stage (his Code Monkey as he called him). Sadly I didn’t catch his name. Overall, an excellent session!

Andrew has written a book which goes in to more depth on the subject. Andrew works for and is the co-founder of Rock Solid Knowledge.




SDD Session2: Applied NoSQL in .Net

Presented by: Michael Kennedy

OK, I’ll be honest. I don’t ‘do’ databases. I run a mile, screaming. My experiences with databases have never been good. They don’t like me. Everything is fine, until you slide the keyboard over to me and ask me to run a query. Leave me alone for five minutes and when you come back your database will be empty and your server will be melting. So, why this session then? Well, I have been working on a project where we created a proprietary database format. I liked not using SQL for it. I liked not having to part with a huge sum of money to run a database. So, no SQL? There are plenty of opensource alternatives and the one I hear the most about is Mongo DB. So, was I bored? No way! This session was nothing short of ‘awesome’ (yes, I went there). With a good explanation of where the no SQL idea comes from, the various choices and some excellent code examples showing how to implement and use Mongo DB I came away from the session with a smile on my face! I was blown away with how simple Mongo DB is to use. Create some object and throw it at Mongo and let it create the table for you? Excellent! I didn’t see any of the pain that I feel exists with using a SQL or Oracle database. Something else for me to investigate now (and write some blog posts about). I haven’t had a chance to go through his blog yet but I expect there to be some great snippets of knowledge there. Michael is also on twitter.



SDD Session3: Parallel Patternsparallel programming sessions

Presented by: Andrew Clymer

Wow. So, having seen Andrews other session (my Session1 up the page) I knew this would be entertaining and informative. Again, I like his presentation style, it really suits me and keeps me engaged. The session covered some very intensive (for me anyway) parallel programming structures and methods. He demonstrated parallelism using Linq, pipelines, foreach and a few more as well. I admit, I was lost during certain sections of the presentation, but even so I gained a wealth of invaluable knowledge. I definitely have some work to do in this area, so I’ll be hitting the books hard after the conference to ‘up my game.’ An interesting topic that flowed behind the entire session was ‘why and when to use parallelism.’ It is an interesting question because I can imagine many people steaming in without any thought and implementing. Andrew demonstrated how this can be a very bad thing to do; break your code in to smaller components, run them in parallel – the sum of the work can actually end up taking longer than if it was running in series. What about error handling? How do the growing number of available cores affect our ability to compute data? A really interesting and challenging session. Oh, and Andrew if you read this post, be safe in the knowledge that I did learn a lot more than ‘ 4 is the magic number .’