Justice Gray recently blogged about his concern of lack of SOLID coverage at TechDays despite how Joey Devilla blogged about SOLID principles (and then went on to say that “Maaaaaaaaaaaaaaaaaaaaaaaaaaybe” SOLID would be covered in the TechDays Canada tracks this year). Joey Devilla retorted with an open letter.
Justice’s concerns are well founded; TechDays is a “showcase current Microsoft tools and technologies” and that’s primarily what it does. Most sessions cover how to use Microsoft tools and technologies. But, most sessions don’t do it in a way that exemplifies what many consider fundamentals. Most sessions cover using Microsoft technologies procedurally.
What is really missing from TechDays sessions is how to use these technologies beyond the syntax and beyond procedurally and how to use them and how to design and architecture the rest of your application or system with generally accepted fundamentals.
So, why? Why shouldn’t Microsoft simply sell its wares?
Attendees to TechDays aren’t writing software that simply uses a single Microsoft technology, they’re writing systems and applications where that technology may be but a single part of the entire system. That system also needs to be based on generally accepted design and architecture principles and newcomers to a technology also need to know how to integrate that into systems such as this. Coming away from a “demo” session where none of the demo code is useable in a software shop that *does* follow SOLID doesn’t add much value to the attendee.
A community who knows only how to use a technology based on demo code doesn’t produce robust and easy to maintain software. Worse case, this leads to a community known for poorly written, low-quality, hard-to-maintain, slow-to-market software. This drives people away from the technology into the arms of other technologies. I’m sure many people can think of at least one Microsoft-based technology not well viewed by the industry.
A community that takes a leadership role in producing quality software inadvertently sells the technology it uses. It’s easier for new people to join the community and get productive sooner. This has a snowball effect as the community grows. This is nothing but positive to the bottom-line.
Microsoft-technology-based communities already have a reputation for cowboy coding and lack of good fundamentals.
What TechDays needs more of is how to properly use Microsoft platforms like Visual Basic and C# and how to integrate other technologies into those platforms using generally accepted fundamentals. Simply knowing the syntax of a technology doesn’t mean you know how to integrated into the rest of your system.