Last week, I was in beautiful Oslo in Norway most of the week for NDC 2014. It was a great conference and I’d like to point out a few highlights.
For the first time, I was a speaker at a major conference. I’ve done quite a few internal talks before and a few externals too, but never at such a high profile event as NDC. Looking at the speaker list I’m really honoured to have been part of it. I think it was challenging and fun – but I also found myself much more nervous than I had anticipated.
There were so many great people at the conference (both speakers and participants), but there are some that I think stand out with exceptionally good talks.
Troy Hunt’s How I hacked my way to Norway. Troy is entertaining and educating on the same time. A talk that is both fun to listen to and that actually gives some concrete advice on how to (not) do security. I’m a bit disappointed though that he never used the IKEA allen key when hacking sites ;-).
Luke Wroblewski’s It’s a Write/Read (Mobile) Web. The keynote, which was an eye opener to me that mobile and touch devices are not only for passive consumption of material. I especially liked the count of the number of clicks required to book a hotel on the major sites (well over 100) compared to FOUR on the best one.
Scott Meyer’s Effective Modern C++. An introduction to some of the “new” features of C++11. The talk makes sense to a C# developer too – C++ developers are often far ahead of us in being aware of the details of how the language works and what the pitfalls are. Although there are more pitfalls in C++, a lot of the things Scott talked about applies to C# as well.
We’ve all seen it: An architect explaining something with a sketch containing bubbles and arrows on a whiteboard. Sometimes the architecture is perfectly realized in the project, sometimes not. Looking at the sketches there are few differences. Why are only some possible to realize?
Let’s look at a typical system sketch drawn by an architect. (My skills at drawing in paint are even worse than my whiteboard sketches, but I hope you get the idea) The project using the design by this architect will be a complete failure. All attempts to build a system according to the architecture will fail miserably when the implementations of the components get incredibly expensive, while the result is a performance nightmare impossible to use for real work.
We’ll get back to where it went wrong shortly. But first, let’s look at a sketch that works.
Another architect draws this image. The project delivers high quality software on (or maybe even ahead of) schedule.
You can stop comparing. There is no difference. Actually, it’s the same image displayed twice.
So what’s the difference? The sketches are the same, but the outcome of the projects are completely different.