DevDays 2010 in Cape Town was slick. Very slick. You guys really know how to put an a good show.
Most of the speakers were good. Most demos were good. Most jokes were funny. The food was mostly good. The mood was mostly good too. And the fan club was mostly impressed. And most noobs were converted forever. And the new features were mostly so good, apparently, you won’t have to write so much code anymore. And the most underused word was design. Most absent words were TDD, refactoring, quality, and clean!!
I understand that DevDays is a product showcase but, come on, MS South Africa, at least cater for the entire spectrum of developers, just a little bit, and in a responsible manner. How about pitching content that shows that you do care about design, about clean code and quality. How pitching the new features in a way that shows a trend towards agility, to being able to refactor code continuously, to test first and other vital aspects of professional software development.
Let me give you just an example to illustrate what I mean. The EF4 code first demo was explained completely as if the classes in the model are no different from entities in a table. Even the language used was “entities” and “keys”. I don’t think I heard the word “class” or “object” once! You may have slides with the words “Code First Model”, but if you don’t actually do it for real, then you’re just leading dataset-happy developers that are marginally object-oriented further away from good code and good architecture. You need to explain why it’s better: that it promotes better object orientation, that POCO models disconnected from an ORM can be done test-first, and you can evolve your model, instead of designing up-front, blah, blah, blah.
Another time there was a ping-pong table with a developer at one end and tester at another with a bug being batted between them. That pulled quite a laugh from just about everyone. While that is reality in many organisations, there are many of us that test our own code and deal with our own bugs. The tester that we toss our code to is our automated continuous integration server. Tossing code downstream when it’s too late for reprise is not very professional. How about focusing on the testing tool, as opposed to pitching it in a manner that makes everyone believe that dealing with the bug downstream is just the way its meant to be.
Sure, I know that you need to show off the latest cool things and evangelise your products, but there is a sector of developers that you are blatantly ignoring. It is the sector that is, perhaps, the most influential amongst other developers. We are those developers that value our craft of software development. We evangelise the craft and the value that it brings to our lives, our teams, our projects, our clients and our organisations.
Perhaps I am just delusional.
Oh well, so long and thanks for the fish.