Every couple of months Scott Bellware drops a post that serves as a wake-up-call for many a developer. In his latest, Scott brings up the question of sustainability. He focuses around the idea that you can’t hope to achieve sustainability without testability. As a big proponent/practioner of Agile practices I could not agree more with what Scott has to say. I also want to say a couple of more words with regards to how many developers may read Scott’s message.
A couple of times throughout his post Scott is often mentioning some point that focuses around the ‘limited set of approaches rampant in the mediocratic Microsoft software development world’. I often have to deal with managing these approaches being dropped into clients who have been spoon fed the typical MS kool aid. They often have a hard time initially making the switch to utilizing practices that for the longest time were not even a word in the MS vocabulary.<?xml:namespace prefix =“” o /><o:p></o:p>
I should point out here that I am, and always have been a developer in the Microsoft world. Thankfully, I am pragmatic enough to realize that a lot of the approaches/techniques that were/are touted as best practices by Microsoft do not always lend themselves well to sustainability or good software development in general. <o:p></o:p>
Take Design Patterns as an example. They have been around for years, and they have been getting used quite extensively in the Java space for considerably longer than in the MS world. Why is this? Community. The community around Java is huge, big enough that there are multiple viewpoints around the same topic that give beginner and senior developers alike enough contrasting information with which they can base their own conclusions. In the Microsoft world, a lot of MS devs trust MS content as gospel. Couple this with the fact that a lot of ‘gurus’ often toured the seminar circuit dispelling the same crap that Microsoft recommended. Instead of contrasting opinions, people were fed the same information from different sources, which made it very difficult to think outside of the box. Think back a couple of years ago when people were told that you should use stored procedures for business logic. I’m not even opening up that can of worms; I am just using it as an example that was very prevalent in the MS literature. Fast track a couple of years and they are not really advocating that as a best practice anymore. It is still a viable alternative, but they have also introduced the idea of performing business logic in the Domain!! Why the change? They are learning too. Are they are leader in the field of Windows product development? Absolutely. Do they still have lots to learn about the art of software development? Absolutely.<o:p></o:p>
We have to take into account that Microsoft is definitely starting to see success with adopting different approaches to its delivery methods (if but only on a small scale). Take the Composite UI Application Block as an example. It was written by an internal agile team, using Test Driven Development Practices. The result? It is the first of the applications blocks that I have looked at that I have not written off as useless.<o:p></o:p>
Everyone needs to keep in mind that a lot of the concepts and practices that go along with achieving sustainability are very new to lots of developers (in any camp). Thankfully, there are a lot of excellent practitioners out there who are ready and willing to share their experiences and trials with anyone who will listen. Microsoft is also enlisting the help of many of these voices to start offering people with contrasting viewpoints on how they can achieve sustainability. Which at the end of the day can only improve the development experience for all developers in the Microsoft camp!!<o:p></o:p>