DDD Scotland: The feedback

I’ll be standing down as chairman of Scottish Developers shortly. I’m not leaving, I’m just looking for a different role within the user group. But as I’m hanging up that particular hat I felt I would add my own personal feedback to the feedback we have received over the last three DDD Scotland events.

On the whole the DDD events in Scotland have been exceptionally well received, especially considering the amount of polish in the main DDD events that happen in Microsoft’s UK HQ in Reading. I suppose from my perspective, sitting on the inside, seeing exactly how it is hanging together I’m always amazed that the feedback is so positive. It is a testament to all the other organisers, speakers and helpers on the day that help keep the event running smoothly.

That said, I feel there are some people that are not fully aware of what goes into organising this event, and on what kind of a budget that we manage it. The speakers are not paid, they volunteer their time, travel, and accommodation expenses.

What makes a DDD event?

The goals for DDD events, as a whole are:

  • The event is free to delegates
  • There are no marketing talks.
  • No speakers from Microsoft.
  • The sessions are voted on to the agenda prior to the event.

You don’t have to aim for everything on this list, and at DDD Scotland we didn’t for various reasons.

We do our best to ensure that it is free to delegates. And we’ve managed that three years running and we will continue to do that for as long as we can.

What follows is some information about how we run the events based on the feedback we have received. I hope this gives you a little insight in to the event. We have received other feedback too that we will be acting upon to improve the event, and if possible we will act on the feedback below to improve things too. I just really wanted to get over the constraints we were running under so you didn’t think that after three years we weren’t listening. We do value all feedback.

The event is “not very well advertised”

We have no advertising budget so we use social media such as blogs, twitter and the like to get the word out. However, even with no advertising we were still oversubscribed. The event “sold out” in 15 days, 3 hours and 35 minutes. After that it went to a waiting list. At its peak there were 88 people on the waiting list.

“Tons of people who signed up didn’t come, maybe the people on the waiting list should the get the spaces of the people who didn’t turn up.”

We do our best on this count. If people realise they cannot come they can unregister which means the website will invite someone on the waiting list along. However, if someone doesn’t want to go and they also don’t unregister then there is little we can do about it.

Over the three years we have run the event we have had a 30%-33% drop out rate and we take that into account when allowing people to sign up. For example, this year we allowed 280 people to sign up before the waiting list was activated, in the end we had 188 delegates turn up on the day. We were aiming for 200 delegates, the same as last year. Last year we had 176 turn up.

In the 24 hours prior to the event the waiting list dropped by 60% allowing nearly 50 people that otherwise would not have had the opportunity to go a chance to get to the event.

“As you go feedback [is] better than a few days later”

This is interesting. There is a debate between some of the various DDD organisers as to which is better: online feedback after the event or paper based during the event.

I can’t say which provides better quality feedback. However, my particular take is that I want to get feedback to the speakers as quickly as possible. The sooner a speaker gets feedback the quicker they can see issues they may have and resolve them, or the quicker they can see what is working or what people appreciate about their presentation.

I also feel that when I get asked for feedback immediately I have a better recollection of what I’m feeding back on. If I wait a couple of days the memories are fading and I won’t recall something that would have helped the speaker improve.

We did a little experiment, with one of the speaker’s permission. He happened to run the same session at DDD8 in Reading as well as at DDD Scotland this year. We compared the feedback he got on line for DDD8 versus the paper feedback he got from DDD Scotland. Roughly the same percentage of the audience filled in feedback, of those that did, roughly the same percentage filled out comments (which is more valuable to the speaker than the raw ratings do). However, where there was a significant difference was that the amount that was written in the freeform feedback was greater online… Perhaps, as developers, we are so used to typing that we can’t write so much these days. But then, was all that extra written material an increase in quality as well as quantity?

I guess the debate will continue on that front.

“Make it a 2 day event, do it twice a year (or more)”

I’d love to do that. It is just very hard work for doing it once a year. But the two day idea is certainly something I’d entertain.

Scottish Developers have noticed that if we run day events during the week we do get a slightly different audience so perhaps it would be an excellent way of reaching out to those that can’t make a Saturday.

Incidentally, the Saturday concept was so that the event didn’t impact on the working week so that contractors didn’t lose a days pay and so that the genuinely enthusiastic could continue geeking out at the weekend.

“The lunch break was too short”

The lunch break was 90 minutes. However, we do have activities on during the lunch break to keep people interested. Unlike previous years, this year we only had grok talks – these are short 10 minute talks that represent topics that would not suit a full presentation or a taster for a full length session.

“more in depth” – “not for beginners”

One of the key aspects of DDD events are their democratic nature. Some people may want more elementary sessions while others may prefer more in-depth sessions. But on the day, what is on the schedule was put there by votes. Every single session was voted in. Back up sessions are chosen by votes too. No session appears without having been voted in.

However, that said, when the ash cloud threatened to disrupt the travel plans of most of our speakers we would have been prepared to bend the rules on that one slightly just to be able to put on an event.

“put feedback forms in goodie bag”

Interestingly we did that last year and we didn’t get that many of them back. People either just didn’t realise they were there or forgot about them. Either way, it meant that the feedback was not as comprehensive as we’d have liked.

Putting the feedback forms on the seats works better for us we’ve found.

“The food was a bit disappointing” – “More coffee in breaks” – “Why not run a café?”

Yes, we know. Unfortunately our budget didn’t allow us to stretch any further than we did. The catering bill was by far the largest expense. Since GCU kindly donated the venue to us for the day the catering budget accounted for about 90% of the running costs.

The first year we ran we got feedback decrying the fact that we didn’t put on breakfast. Possibly this was due to some people who were used to the DDD events in Reading which have the backing of a big corporation that can afford, to us, such luxuries.

There is a café on the ground floor at the venue, however it is closed on a Saturday. We did, the first year, look in to opening it up but were told that was not possible.

Ultimately, what we can afford depends on how much sponsorship we can pull in. This year was particularly disappointing. We were lucky in that we still had a sizeable chunk of money left over from last year which, in fact paid for most of the conference this year. Next year we will be starting from a relatively clean slate financially. Simply put, the cupboard is bare.

“Too much Microsoft oriented presentations”

The conference is run as democratically as we can. If you want to see more non-Microsoft oriented technologies then we need more submissions from people offering non-Microsoft oriented sessions and then we need enough people to vote on them.

We also had people asking for more consistent tracks and we do our best to work in a route through the agenda so that a person who has a high level interest in a particular area, say web technologies, has a route from start to end. But ultimately we can only work with what we have, and what we have are sessions that were submitted and a set of votes telling us what people want to see.

For the future

There are a number of points above that we will try to fix, just as soon as we can. For example, we’d love to keep you all properly fed and watered during the day. We’d love to do this more often, have an event every 6 months or a two day event. We’d love to vary the city.

For these things we need more sponsorship. Not just the variety where a vendor gives us free licenses. I’m not saying we don’t want that. We love to get items from sponsors to use as prizes or swag, it keeps things interesting during the day, but ultimately we need things we can use and the bottom line is mostly money.

If you have any ideas that will help up put on a better event, especially if it helps us solve the issues we currently have then please get in touch at support@scottishdevelopers.com

Agenda for DDD Scotland 2010

We have finally got all the speakers confirmed and the agenda sorted out for DDD Scotland 2010. Subject to any last minute changes this is is:

Time

Room A (80)

Room B (40)

Room C (40)

Room D (40)

08:45-09:20

Registration

09:20-09:30

Housekeeping

09:30-10:30

HTML 5: The Language of the Cloud (Craig Nicol)

Contractual Obligations: Getting Up and Running with Code Contracts (Barry Carr)

WCF Data Services (Iain Angus)

Team Foundation Server 2010 for Successful Project Management (Martin Hinshelwood)

10:30-10:40

Break

10:40-11:40

Exception Driven Development (Phil Winstanley)

Real World Application Development with Castle Windsor and ASP.NET MVC 2 (Chris Canal)

Get Going with jQuery (George Adamson)

T4 and How it Can Be Used for Code Generation in Visual Studio 2008/2010 (Rob Blackmore)

11:40-12:00

Break

12:00-13:00

Web Standards are Broken, and it’s Getting Worse (Sebastien Lambla)

A Guided Tour of Silverlight 4 (Mike Taulty)

Commercial Software Development Is Easy, Not Going Bust Is the Hard Bit (Liam Westley)

Defensive Programming 101 (Niall Merrigan)

13:00-14:30

Lunch time: Grok Talks

Lunch time:
Local Open Source Incubator

Lunch time: Sponsor talk

Lunch time: Sponsor talk

14:30-15:30

Getting Started with Behaviour-Driven Development Using Cucumber (Steve Sanderson)

Silverlight – Real World Gotchas (Ray Booysen)

What ASP.NET (MVC) Developers Can Learn from Rails (Paul Cowan)

Developments in MultiCode and Concurrent Programming with .NET 4 (Barry Wimlett)

15:30-15:40

Break

15:40-16:40

Real World MVC Architectures (Ian Cooper)

Cloud Coffee – A Year Developing on Windows Azure (Dominic Green)

C# on the iPhone with Monotouch (Chris Hardy)

Domain Specific Languages – What Are They and Why Should You Care? (Mark Dalgarno)

16:40-17:00

Closing

Upcoming talks

My SQL Injection Attack prevention talk is on the road. I’ve already given the talk in Dundee, Newport and Nuneaton. And in the coming months I’ll be delivering it in Glasgow, London and Newcastle.

If you want to come and learn about securing your database from a developer perspective you can come along.

SQL Injection Attacks and Tips on How to Prevent Them

I’m giving a talk in Dundee on the topic of SQL Injection Attacks. If you are interested in the subject then the registration link is at the bottom of the page.

Wednesday, 28th October 2009 at 19:00 – 21:00
Queen Margaret Building, Dundee University

The Talk

In light of some recent events, such as the man who was convicted of stealing 130 million credit card details through a SQL Injection attack, it is imperative that developers understand what a SQL Injection Attack is, how they are carried out, and most importantly, how to defend your code against attack.

In this talk I’ll demonstrate a SQL Injection Attack on an application in a controlled environment*. I’ll show you where the vulnerable code lies and what you can do to harden it.

Although this talk uses C# as the application language and Microsoft SQL Server 2008 as the database engine many of the concepts and prevention mechanisms will apply to any application that accesses a database through SQL.

* Demonstrating an attack on a real system without the owner’s consent is a breach of the 1990 Misuse of Computers Act, hence the controlled environment.

The Venue

We are meeting in the Queen Mother Building at Dundee University. After the meeting we normally retire to the the bar at Laing’s

The Agenda

18:45 Doors Open
19:00 Welcome
19:10 The Talk (Part 1)
19:55 Break
20:05 The Talk (Part 2)
20:45 Feedback & Prizes
21:00 Repair to the Pub

Registration

Space is limited, we would therefore ask that you sign up.

Links from ALT.NET UK Open Spaces Coding Sessions

This is a small follow up to my previous post giving an overview of the ALT.NET Conference, including Coding day and ALTNET Beers. This post is just a set of links and resources from the coding day.

Inversion of Control

“The nice thing about IoC containers is that the framework is almost not there”- @mikehadlow

Web Frameworks

“If you don’t look at code you wrote six months ago and think ‘God! That’s awful’ then you are not really progressing” – @mikehadlow

The ALT.NET UK Conference

I’ve just spent the last couple of days in London at the ALT.NET UK Conference. Well, the conference was today (Sunday) and the lead up to it was the ALTNET Beers on Friday evening hosted at Tequila with the drinks sponsored by ThoughtWorks (who also sponsored the lunch on Sunday). On Saturday was the Open Space Coding Day held at EMC Consulting (formerly Conchango). Finally, on Sunday, was the ALT.NET Open Spaces Conference also in EMC’s offices.

I have to be honest at this point and say that I was somewhat concerned at the lack of an agenda to start with. I travelled down from Glasgow (a cost of over £300 for train + hotel alone) and I wasn’t guaranteed a topic I’d be interested in. In the end, I needn’t have been concerned. At some points I was spoiled for choice with there being two or three sessions at once that I was interested in.

The discussion at the ALTNET Beers was very interesting (despite many of the participants being merrily sozzled by that the time). Seb was excellent at keeping everyone in check during the park bench discussions.

The Open Spaces Coding Day was a completely new experience for me and I wasn’t sure what to expect. I guessed we’d all end up doing some coding, but that wasn’t what happened at all. At least in the sessions I was in.

The morning session I was at was on IoC containers, the why and the how. We got some excellent examples of how IoC containers work and why you might want to use them. The person that proposed the topic did so because he was curious about it, yet had never experience many of the “pain points” that IoC is supposed to solve. He was content to use “poor man’s IoC“. My plan, hopefully if I get my internet connection to continue to work on this train. Is to download an IoC Container and play with it this evening. For I too am guilty of using Poor Man’s IoC!

In the afternoon I attended a session on ASP.NET MVC 2.0. It was excellently delivered mostly by Jeremy Skinner. The quality of this session was very high especially considering the code had only been available for 2 days. The session was most a demonstration of what was on Scott Guthrie’s blog a couple of days ago when he announced ASP.NET MVC 2.0 Preview 1.

The discussion was more interesting. One of the new features is the ability to attribute validation (Data Annotation Validation it’s called) onto the model. The model used in MVC is unlikely to be the domain model, but a view-model. Given this case, attributing validation rules here will raise the prospect of the code not being DRY (Don’t Repeat Yourself). So, should you use the new attribution or not? Where should the use input be validated?

In the evening we went to a pub a few minutes walk away where the drinks were sponsored by Cognitive Group. I think everyone was very pleased about the free bar that was provided.

On the Sunday morning, a few fuzzy looking folk turned up for the conference day. This was an excellent day for me, it was also the worst day. It was excellent because I proposed a session topic (DSLs What? Why? How? Where? When?) that was chosen and I learned a lot about internal DSLs and a little bit about external DSLs. It was also the worst because the session I proposed clashed with two other sessions I wanted to see. Ah, well… You win some, you lose some. I also attended a very interesting topic on Artisan software or software craftmanship.

Scot ALT.NET: An Evening of O/RM

O/RMs help us bridge the gap between the database and the code base we love to write. On the night we will be looking at two O/RMs, NHibernate the most mature O/RM in the Alt.Net space and Microsoft’s recently released Enitiy Framework, the young pretender to the O/RM thrown.

ScottLogic, a leading financial software and consultancy company based in Edinburgh, have been kind enough to offer the use of their premises for an evening of O/RM knowlege sharing and dicussion.  The event will take place on 2nd of July at 7pm, 17 Gayfield Square Edinburgh EH1 3NX.  All are welcome!

The agenda

19:00 – 19:30 Paul Cowan – An Introuction to NHibernate
19:30 – 20:00 Chris Canal – FluentNHibernate in 15 minutes
20:00 – 20:10 Break
20:10 – 20:40 Colin Gemmell – NHibernate vs Entity Framework – which is best?

After the meeting we will retire for a beer and some heated discussion.  If you are planning to attend, please let us know by registering at the Scot Alt.Net Edinburgh EventBrite page (http://altdotnetedinburgh.eventbrite.com/).

About the speakers

Paul Cowan has recently started his own business Cutting-Edge Solutions.  He is a keen advocate of iterative development, test driven development, continuous integration and modern techniques.  Paul is a regular committer to the horn open source project.  He recently gave a presentation on horn at the Dsl DevCon at Microsoft in Seattle.  You can follow his blog here.

Chris Canal has worked at a Web Developer for the past 7 years. Starting with procedural languages like ASP and PHP, he quickly moved onto the .NET Platform when first released. A great believer is continual–improvement, Chris is constantly looking for new technologies, tools and methodologies that will help in creating robust and maintainable software applications. Having felt the pain of using Microsoft “Demoware”, Chris has become an active member of the Scottish Alt.Net Community to share his findings and ideas with like-minded developers.

Colin Gemmel is a Web/Application Developer working in the Medical Faculty of Glasgow University for the past 3 years. An avid follower of agile principles and practices he is always happy to pass on his views of software development to anyone that will listen. Colin is also a regular participant of the Scottish Alt.Net Community

http://scotalt.net/blog/2009/06/11/an-evening-of-orm/
http://www.scottlogic.co.uk/contact_info
http://altdotnetedinburgh.eventbrite.com/
http://groups.google.com/group/scotaltnet

Upcoming events

In June Scottish Developers have two evening events with Kathleen Dollard. Kathleen is the Chief Technologist for AppVenture (www.appventure.com) where she leads the application generation efforts. She has been a Microsoft MVP for 11 years and is a member of the INETA Speaker’s Bureau. Kathleen has worked extensively with application code generation and is the author of Code Generation in Microsoft .NET (from Apress). She has published numerous articles on a range of .NET technologies and writes the monthly column “Ask Kathleen” in Visual Studio Magazine (www.visualstudiomagazine.com). Kathleen is also active in the Northern Colorado .NET SIG, Denver Visual Studio User Group, Northern Colorado Architect’s Group, and IASA Denver.

Rethinking Object Orientation

Monday 22nd June, 2009 at the offices of Baillie Gifford & Co.

Decades after object orientation design altered programming, it’s still evolving, and we’re still learning to use it better. Many changes in the tools we use and how we write applications affect the approach we take to OOD. Some of these changes relate to architecture where new approaches like SOA and the layering revolution behind Silverlight alter the place of traditional OOD within the bigger picture of architecture. Other changes are language improvements that alter the very meaning of the phrase “object” from a design point of view. While touching on architecture, this talk focuses primarily on the effect of language features like generics, extension methods, delegates/lambda expressions, partial classes/methods, reflection, anonymous types, and declarative programming. I’ll the growing role of interfaces as a contractual base in block based development and show a roll your own example of dependency injection so you understand this basic technique more often accessed through a tool. You’ll come away ready to leverage new features while retaining solid overall design.

Sign up for Rethinking Object Orientation!

Your Application in Pieces – MEF and MAF

Tuesday 23rd June, 2009 at Glasgow Caledonian University

Decoupling portions of your application has tremendous payback during both development and maintenance. Your application becomes more testable and flexible and can more easily evolve to meet changing demands. Decoupling your application also allows a new level of partnership with external groups because you can safely incorporate their code in your application without recompiling or releasing source code. Microsoft has exposed different provider models in many areas of the framework and libraries, and this year has moved toward consolidating its efforts at decoupling with the Managed Extensibility Framework, or MEF. This tool differs from an IoC container because its focused directly at simplifying the extension of applications and focuses at extensibility, discover, and composition. The underlying engine can support Microsoft efforts like Visual Studio and your own applications. MEF comes up short when you encounter isolation and versioning issues, such as wanting that external code to run in its own AppDomain. The Managed Add-In Framework, or MAF, focuses on these problems and the significant complexity they bring with System.AddIn namespace of .NET 3.5. You’ll learn more about architecting applications in pieces and the sweet spot of using MEF and MEF together. You’ll leave ready to evaluate the role of MEF and MAF in your applications.

Sign up for Your Application in Pieces – MEF and MAF!