NDC 2012. Day 1


Let's go though the sessions and feelings during the first day of NDC.


Last year’s keynote was kind of bland. This year’s not. Starting with a huge WTF (the speaker singing a musical piece, nicely done, sir) and the much higher tempo.

Aral was funny and the delivery of the content was appropriate for a keynote. I like his style very much and I think is a brilliant speaker. Content-wise… Slightly less brilliant. Lots of common sense (and what in design isn’t), nice-sounding design suggestions with deep engineering implications and cheap tricks to make supposedly bad designs look worse.

Making an Awesome OSS Project

I have OSS projects. And they are in an early phase of adoption, but none of them would be called “popular”. And I was expecting to get some cues from the talk.

Well, not that I got none: having a nicer landing page, facilitating users fixing the issues themselves and keep a virtual eye on what is going on in the web, be nice to developers with XML docs, nice APIs and decent error messages; but definitely less meat than I expected.
Besides, the speaker distracted me constantly by using loads of disfluencies (uhm…, …right? and like,…) that got me so annoyed that I missed some of the content.

Professional Software Development

It is always fun to listen to Uncle Bob.
I had read about the same subject in his blog previously. Unfortunately, despite funny and well articulated, I was not able to relate the different topics he talked about.
For example, in the subject of “shorter iterations” is he implying that using long iterations (1 month) is not professional? When talking about 100% coverage… Does he imply that having anything less is unprofessional? What if the parameters that my customer prefers (the ultimate jury in software development) do not fall into the professional range? Shall I bump them for professionalism’s sake? Shall I ditch the customer altogether because they cannot allocate resources effectively for such sort iterations or are not willing to pay me for pulling a rabbit out of a hat in order to fully coverage code that deals with untestable systems and brings close to zero business value?

In my opinion, when talking about professionalism I think pragmatism ought to be, at least, mentioned. I know the term exists. But would the less experienced developers that listen to such an influent character know the difference between professionalism and dogmatism?
I find myself disagreeing with Uncle Bob more and more nowadays. And I am glad for it. It might mean that I am learning something after all… Either that, or becoming grumpier Winking smile
Oh, and about book-keepers not having QA? They kind of have the ultimate QA: auditors "the unforgiving ones

Real World Node JS – Creating the Tekpub API

After lunch (using the new schema of “eat whenever you please, we serve all day”, which works out very well) I had a big dilemma: there were 3 sessions I was pretty interested in. But I am so fond of Rob and so interested on NodeJs that I passed on the creator of MVC (Prof. Trygve Reenskaug) and my “passion” for DSLs. And what a mistake that was Sad smile

The style was awesome: total speaker silence over Daft-Punk music and hard-core live coding. That’s a gymnastic perfect-ten for presentation. But with Javascript and live coding must come mistakes. And although he dodged them as artfully as I have ever seen, they broke the rhythm of what it was becoming a bit monotonous session.
The bit that annoyed me the most is the lack of adherence to the title and abstract. There was no Tekpub API or production code. “Just” a pretty demo of the node package manager, an overview of how things are laid out and some socket voodoo.

My impressions on NodeJs are positive. It is scary how much has grown and matured in just one year and how many cool stuff has been done around it. Having said so, I am still to be convinced that I can be as productive as with other higher level frameworks and how can it be used for bigger (in size) projects, as I fear that executable configuration files can become too big.

Advances in Code Contracts for .NET

For this slot I did not have a whole lot (having had my dose of server-side Javascript already) but since I have done some presentations (and being disappointed by) on code contracts I was a bit more curious on what is coming.

But what I saw did not blow my mind a whole lot, I have to say. The verifier is constantly being improved and Roslyn will open some new possibilities in terms of solving contract violations But, if you had seen code contract before, you were left with some “it that all?” taste.

And it seems that I always find mistakes with the talks, but I cannot help it. The speaker, Tom Ball, surely is a brainy researcher; but, as a speaker, was a boring and too apologetic. On top of that he did something that infuriates me: using a nightly release of a software and blame the developers when it failed.
I mean, some speakers think than using the latest and fresher piece of code in a live presentation is cool. In my opinion is wrong in many levels:

  • it is a disrespect to the audience, because that projects lack of preparation when the thing crashes in front of them (and be certain that it will) and takes the focus away from what it should be important
  • it wastes audience’s time and the money they have invested in trying to get a point from someone supposedly knowledgeable on the topic

But when the thing fails, and you blame the developers for it?… That, is simply offensive and deeply uncool. If it fails means one of two things: you did not prepare the talk enough; or the software is not ready to be presented. In both cases it is the presenter’s own fault. No one else’s.

Crafting Wicked Domain Models

This session was pretty good (for a change). I follow Jimmy’s blog at Los Techies and I like reading him a lot. His writings are simple, clean and go the point. And his speaking skills are similar. I liked the presentation due to its simplicity: he had a purpose, a plan and showed some a decent amount of code without losing its audience too much.

On the down side I had already saw the demo slides and the code, but, of course, that is not the speaker’s fault. My colleague (who attended the same talk) and I agreed on one thing: “those are not wicked models. More like sensible”. And it is true, the title was a bit too catchy. It was a simple refactoring from a bunch of data structures showing their internals towards a bit more encapsulated group of classes.
Simple. Basic. But those concepts also need to be told to people that put behavior where does not belong. And Jimmy did that well.

Last Slot

For the last slot of the day, I did not have a winner. So, I made use for the first time of the Overflow. That cool concepts of multiple screen showing all sessions at the same time, with the audio delivered to some headphone device. For the most part I was listening to the amusing war stories of Dino Esposito, being freaked out by the looks of Nemerle Programming Language and shied-away from a pretty bland Continuous Testing.

Luckily I did not commit to neither of them as I would have finished a mildly disappointing first day of conference in which I handed over a single green card (to evaluate the session).