About Me

Training

Nothin But .Net Developer Bootcamp

Navigation

Search

Categories

On this page

My Thoughts On Sustainability

Archive

Blogroll

 Agile Developer Venkat's Blog
 Ayende @ Blog
 B#
 Barry Gervin's Software Architecture Perspectives
 Boy Meets World
 Brad Abrams
 Canadian Developers
 Christopher Steen
 Claritude Software News
 Clemens Vasters: Enterprise Development and Alien Abductions
 Coding Horror
 Coding in an Igloo
 Dare Obasanjo aka Carnage4Life
 Darrell Norton's Blog [MVP]
 David Hayden [MVP C#]
 Don Box's Spoutlet
 Eric Gunnerson's C# Compendium
 EZWeb guy: Jeffrey Palermo [C# MVP]
 Fear and Loathing
 Generalities & Details: Adventures in the High-tech Underbelly
 Greg Young [MVP]
 Greg's Cool [Insert Clever Name] of the Day
 IanG on Tap
 Ingo Rammer's Weblog
 ISerializable - Roy Osherove's Blog
 James Kovacs' Weblog
 Jason Haley
 Jean-Luc David
 Jeremy D. Miller -- The Shade Tree Developer
 JetBrains .NET Tools Blog
 Jimmy Nilsson's weblog
 John Bristowe's Weblog
 John Papa [MVP C#]
 Jon Skeet's Coding Blog
 JonGalloway.ToString()
 Jump the Fence or Walk Around
 Lambda the Ultimate - Programming Languages Weblog
 Larkware News
 Lutz Roeder
 Marquee de Sells: Chris's insight outlet
 Martin Fowler's Bliki
 Mike Nichols - SonOfNun Technology
 MSDN Magazine - .NET Matters
 MSDN Magazine - All Articles
 OdeToCode Blogs
 Onion Blog
 Planet TW
 Raymond Lewallen [MVP]
 Rockford Lhotka
 RodMan's Corner
 Roger Johansson's blog
 Sahil Malik - blah.winsmarts.com
 Sam Gentile's Blog
 Scott Bellware [MVP]
 Scott Hanselman's Computer Zen
 ScottGu's Blog
 secretGeek
 Service Station, by Aaron Skonnard
 Signum sine tinnitu--by Guy Kawasaki
 Stephen Toub
 Steve Eichert's Blog
 Steven Rockarts
 The Blog Ride
 The Coding Hillbilly
 The Daily WTF
 TheServerSide.net: News
 Tim Gifford
 Vance Morrison's Weblog
 you've been HAACKED

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

RSS 2.0 | Atom 1.0 | CDF

Send mail to the author(s) E-mail

Total Posts: 407
This Year: 132
This Month: 3
This Week: 0
Comments: 1082

 Tuesday, August 22, 2006
Tuesday, August 22, 2006 6:30:36 PM (Mountain Standard Time, UTC-07:00) ( Agile )

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.

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.

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.

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.

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!!