<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Wagnerblog &#187; Software Architecture</title>
	<atom:link href="http://wagnerblog.com/category/software-architecture/feed/" rel="self" type="application/rss+xml" />
	<link>http://wagnerblog.com</link>
	<description>Development Ideas and Ramblings</description>
	<lastBuildDate>Fri, 06 Nov 2009 19:11:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>You don&#8217;t have to be 100 percent Agile to be productive</title>
		<link>http://wagnerblog.com/2009/11/you-dont-have-to-be-100-percent-agile-to-be-productive/</link>
		<comments>http://wagnerblog.com/2009/11/you-dont-have-to-be-100-percent-agile-to-be-productive/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 00:18:58 +0000</pubDate>
		<dc:creator>twagner</dc:creator>
				<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[qa]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://wagnerblog.com/?p=1048</guid>
		<description><![CDATA[Under the best of circumstances, Agile Methodologies &#8211; especially SCRUM &#8211; puts the development team smack dab in the center of the process and has the entire life cycle revolve around it. That’s why so many programmers love Agile. But even organizations that, for whatever reason, are not able to support a 100% Agile environment [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-1051" style="border: 1px solid black; margin: 5px;" title="bullseye" src="http://wagnerblog.com/wp-content/uploads/2009/11/bullseye-300x225.jpg" alt="bullseye" width="300" height="225" />Under the best of circumstances, Agile Methodologies &#8211; especially SCRUM &#8211; puts the development team smack dab in the center of the process and has the entire life cycle revolve around it. That’s why so many programmers love Agile. But even organizations that, for whatever reason, are not able to support a 100% Agile environment can benefit from some of the basic tenets of SCRUM.</p>
<p>Let’s get one thing out of the way. If you are a programmer, chances are you would love SCRUM. Love with a capital L.  I mean really…. Think about it… if you come from the typical top down process where “Moses delivers the ten commandments to the tribes”  -  in other words the Dir of Development sits the team down and explains XYZ has to be done in 4 weeks – if you come from that sort of place, and find yourself in an agile world where programmers look at “user stories” and estimate sprints while an entire team discusses and sets the schedule – you’d probably feel like you’ve made a wrong turn somewhere and ended in alternate universe.</p>
<p>Suffice it to say there is definitely a culture shift across an entire organization when you switch to Agile. Some companies may not be quite as ready as others to embrace the change.</p>
<p>One of the first victims to get hit by an Agile team is the persona of Heroic Programmer. The type of programmer who by design or default likes to single handedly save everyone’s bacon. Agile focuses on the effort, communication and process of the ENTIRE team – not just the lone gun slinger. People who need to be the Heroic Programmer in a company often will not like Agile very much.</p>
<p>Another victim of the rising popularity of Agile are dev shops that operate on outdated principles and support dysfunctional processes. Through the emphasis on team empowerment I find more and more developers take up the battle cry of “Give me Agile or give me … [fill in the blank]”  A recruiter friend tells me about candidates who will not entertain an offer at all if it  isn’t  in an agile shop. Kudos to them. There is much to like about improved team communication and process enhancements.</p>
<p>Even if your own company cannot be 100%  formally Agile, with everyone buying into the change,  perhaps you can use some aspects of the methodology to improve your own processes. That has been my experience.</p>
<p>One of the key features of Agile (SCRUM) methodologies is the prevention of process hijacking. In  my 20 years of work experience I found two major types of development shops – those driven by engineers and those driven by sales people. Whichever group controls the process ends up setting the corporate culture. Agile shares responsibility between both groups and therefore prevents either group from hijacking the environment. That’s admirable.</p>
<p>Agile teams work hard to deliver predictable, high quality results in a relatively difficult setting. Difficult because software development all too often seems to go against a normal  predictive process. Unlike a Model A Ford, software cannot be built in an assembly line fashion. Hence the difficulty.</p>
<p><img class="aligncenter size-full wp-image-1060" title="heroic" src="http://wagnerblog.com/wp-content/uploads/2009/11/heroic3.jpg" alt="heroic" width="600" height="197" /></p>
<p>The mandate of Agile development is to create an environment where that uncertainty is removed through an iterative process and  much, much, much more communication than any other development methodology I have seen.  Meetings before things get built, meetings while things get built and more meetings after your done building things.</p>
<p>I have seen two interesting situations in all these meetings: programmers who by nature might be more introverted become much more open, and stakeholders who are used to issuing an edict and walking away become much closer to the development team. Both are good things.</p>
<p>There are a number of books on the market that describe Agile and SCRUM better than I can, but in a summarized form, Agile consists of</p>
<ul>
<li>A prioritized product backlog of themes, epics and user stories</li>
<li>A self managing and empowered, cross functional team</li>
<li>A SCRUM Leader / Master</li>
<li>One or more product owners / stake holders</li>
<li>Sprints that break user stories into tasks and produce a certain amount of work over a specified time, most frequently 10 business days.</li>
</ul>
<p>Of course those are only the highlights. There are a number of important “ceremonies” and behavioral changes that come with the SCRUM territory. For example the practice of daily stand up meetings where team members briefly touch on what is on their plate.</p>
<p>In my own experience, the area where Agile makes the greatest impact is in the shared responsibility and empowerment of the team. By giving the team a way to estimate, manage and build code quickly and iteratively the group as a whole tends to be very productive.</p>
<p>During my time as VP of Server Development of SkillJam Inc. I was able to move a dev team toward a more agile approach by making sure a few key features were in place. First and foremost, we instituted a good product backlog.  I purchased enough licenses of Fogbugz to take care of all developers, QA People,  project managers and product stakeholders in the organization. I cannot tell you how important some of the seemingly simple features of Fogbugz became once we started cranking out code. Something as simple as an email conversation thread being automatically stored and associated with the task or issue in Fogbugz is a life saver. (Instead of logging into Fogbugz to record a comment, an email reply to a mail sent from Fogbugz automatically shows up in the right position within the task comments. Nice!)</p>
<p>Having set up FogBugz we got busy producing a big picture prioritized list of work. Any bug, any feature request and even entire new products where organized by themes , user stories and tasks within the stories.</p>
<p>After some arm wrestling with the key product stakeholders and other Senior Management Team members I was able to get buy-in for the concept of 10 business day sprints ( 2 calendar weeks). These sprints could not be interrupted for unplanned tasks under any circumstances. That’s not to say an emergency shouldn’t be addressed by the team.  But let me tell you,  its not easy convincing a CEO that giving up the ability to demand something RIGHT NOW is good for business. In the end it was the prospect of better schedule adherence, better quality and lower defect counts that sold this effort.</p>
<p>As I said, we were not formally Agile across the entire board. Our organization loved a considerable amount of design up front. That meant more information was written down and documented in formal requirements than you would typically see in an agile shop.</p>
<p>At the same time, our developers and qa analysts met several times a week for progress checks – admittedly this could have been handled with daily stand up meetings to which we could have invited visitors ( as long as the visitors kept quiet), but in a nod to the PMO we continued with the legacy status meetings.</p>
<p>As work progressed through a sprint we needed to look ahead at the pipeline ( the product backlog ) . So toward the end of a given sprint the team leaders and myself would spend some time planning the next iteration to make sure we could address any problems before we had our next Sprint is to kick off. For the actual kick off itself, the entire dev team (including qa people) gathered around a large conference table where we projected to prioritized backlog out of Fogbugz on a large screen. The team as a whole took on the User Stories needing to be built – based on prioritization – and committed to a certain amount of work being done in the sprint. Frequently we invited stakeholders and product owners to these meetings in order to get immediate feedback to questions that helped us with the production of a Sprint schedule.</p>
<p>That’s it. Simple and straight forward. I was blessed with a fantastic team who had been working together for a while already. That made SCRUM planning easier. And yes I know this wasn’t the  comprehensive SCRUM setup that you read about in the many Agile books on the market, but even in this pared-down format we were able to reap the benefits of planned iterative production.</p>
]]></content:encoded>
			<wfw:commentRss>http://wagnerblog.com/2009/11/you-dont-have-to-be-100-percent-agile-to-be-productive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More ASP.NET MVC Puzzlement</title>
		<link>http://wagnerblog.com/2009/05/more-aspnet-mvc-puzzlement/</link>
		<comments>http://wagnerblog.com/2009/05/more-aspnet-mvc-puzzlement/#comments</comments>
		<pubDate>Sun, 31 May 2009 03:50:09 +0000</pubDate>
		<dc:creator>twagner</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[.NET Code Related]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://wagnerblog.com/?p=1004</guid>
		<description><![CDATA[I have been slogging my way through the MS MVC architecture. There are some good parts and some really hard to get used to parts. Some stuff just has me completely puzzled. For example when your used to setting an autopostback property on a drop down control, the need to have to hand code some [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://wagnerblog.com/wp-content/uploads/2009/05/puzzled.jpg" alt="puzzled" title="puzzled" width="240" height="280" class="alignright size-full wp-image-1005" />I have been slogging my way through the MS MVC architecture. There are some good parts and some really hard to get used to parts. Some stuff just has me completely puzzled. For example when your used to setting an autopostback property on a drop down control, the need to have to hand code some js to do the same every time I want an autopostback gets old pretty quick. </p>
<p>I love the way MVC separates out the code that used to get thrown into the same code behind in web forms. It really shines in that regard. Who knows maybe it will have a positive influence on webforms apps in that regard. </p>
<p>For the moment my bottom line is that it takes a lot longer to write the same functionality in MVC than webforms. That&#8217;s partly due to the learning curve and partly due to the fact that there is more code to write. The fact that there is more code will be interesting to watch. Maybe in time people will find some efficient practices that will help to bring down the overall effort required. If thats not the case I wonder how someone would justify the cost of building a system one way versus another. And dont tell me to build it in MVC because webforms are evil. Thats nonesense. We have almost ten years of webform driven sites out there. </p>
<p>Lastly, for all those folks who are jumping on the &#8220;Viewstate is evil&#8221; bandwagon &#8211; which seems to be the same lemmings who jumped on Datasets as a DAO in 2002 &#8211; have a look at the following<a href="http://www.slideshare.net/rudib/aspnet-mvc-performance"> performance test</a>. 6-8 requests per second for an MVC app is laughable. I sure hope that&#8217;s not the case presently. Its worth some internal testing to see. By the way, just on a purely subjective note, for the past year I have frequently spent time on MarketWatch. Since they switched to MVC I have noticed a small performance penalty. Purely subjective. Heck maybe its even a matter of browsers. </p>
]]></content:encoded>
			<wfw:commentRss>http://wagnerblog.com/2009/05/more-aspnet-mvc-puzzlement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Decisions Decisions&#8230;..</title>
		<link>http://wagnerblog.com/2009/05/decisions-decisions/</link>
		<comments>http://wagnerblog.com/2009/05/decisions-decisions/#comments</comments>
		<pubDate>Mon, 25 May 2009 20:39:35 +0000</pubDate>
		<dc:creator>twagner</dc:creator>
				<category><![CDATA[.NET Tools]]></category>
		<category><![CDATA[RoR]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[sample code]]></category>

		<guid isPermaLink="false">http://wagnerblog.com/?p=997</guid>
		<description><![CDATA[ As a programmer / consultant I always work on improving my skills. Except for the past year or so. I coasted a little bit. Consequently I am faced with two technologies that I need to study up. MS MVC and Silverlight. My personal feeling is that Silverlight will grow into the larger market over [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://wagnerblog.com/wp-content/uploads/2009/05/decisions11-247x300.jpg" alt="decisions11" title="decisions11" width="247" height="300" class="alignleft size-medium wp-image-998" /> As a programmer / consultant I always work on improving my skills. Except for the past year or so. I coasted a little bit. Consequently I am faced with two technologies that I need to study up. MS MVC and Silverlight. My personal feeling is that Silverlight will grow into the larger market over time. But at the moment its still lacking a lot of tools that a normal developer (not a bleeding edge addict) would come to expect in a platform. On the other hand MVC is slated to take off like a rocket. There is sooooo much pent up RoR envy in the .NET developer community its ridiculous. </p>
<p>My main issues with MS MVC is the fact that it tries to be something very similar to RoR. I feel this way because Model View Controller can be done without MS MVC. As a matter of fact as I have mentioned ad-nauseaum Dan and I have built and MVC driven framework a while back. So if I am interested in just the simplest most straightforward way to plug MVC into ASP.NET &#8211; thats the way to go &#8211; just build a small and simple action framework / router. No tag-soup either. I suppose I have to revisit this after ASP.NET 4.0 is out because it will incorporate routing. </p>
<p>Having said all that as a preamble, I would be silly not to study up on MS MVC. There are some aspects I really do like about it. The great enforcement of separation of concerns for starters. </p>
<p>As I looked over the web to find some decent examples of people who have blazed trails in this area I came across <a href="http://codebetter.com/blogs/karlseguin/archive/2009/04/28/presenting-codebetter-canvas.aspx">Karl Seguin&#8217;s</a> <a href="http://code.google.com/p/codebettercanvas/">Canvas MVC sample app</a>. It was written with one specific purpose in mind: as a simple learning application that illustrates a good way to build an MVC app. In my opinion this app is a resounding success. It has enough code to illustrate the majority of work that one has to deal with (i.e. data entry, paged lists etc). And it doesn&#8217;t try to throw every possible scenario in the mix. The result is a well structured easy to follow sample. Believe me I have looked at numerous different ones out there and this is by far one of the better designed samples. Love it !</p>
]]></content:encoded>
			<wfw:commentRss>http://wagnerblog.com/2009/05/decisions-decisions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CodeGen on Steroids</title>
		<link>http://wagnerblog.com/2009/05/codegen-on-steroids/</link>
		<comments>http://wagnerblog.com/2009/05/codegen-on-steroids/#comments</comments>
		<pubDate>Thu, 21 May 2009 21:39:32 +0000</pubDate>
		<dc:creator>twagner</dc:creator>
				<category><![CDATA[.NET Code Related]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Code Gen]]></category>
		<category><![CDATA[LLBLGen]]></category>
		<category><![CDATA[MSPec]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[NHibernate]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://wagnerblog.com/?p=994</guid>
		<description><![CDATA[Wow, I really have been leading a pretty sheltered life as a consultant. There is a toolset I have used for a number of years that has predictably delivered results. When it comes to projects where you deliver or you dont eat its pretty important that your tools work. Along the way I was fortunate [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-993 alignright" title="steroids1" src="http://wagnerblog.com/wp-content/uploads/2009/05/steroids1.jpg" alt="steroids1" width="306" height="399" />Wow, I really have been leading a pretty sheltered life as a consultant. There is a toolset I have used for a number of years that has predictably delivered results. When it comes to projects where you deliver or you dont eat its pretty important that your tools work. Along the way I was fortunate enough &#8211; with the help of one important friend ( Dan ) &#8211; to produce some pretty good tools. We had a version of MVC in 2006 &#8211; 3 years before MS had theirs.</p>
<p>Fast forward to 2009. ASP.NET MVC hits the market. Only its not just routing and actions its a whole big kit and kaboodle. Reminds me a little of RoR.  Along the way all of a sudden a lot of folks are complaining that Viewstate is the big evil and if only they could code without it. Meh. Sounds a little like people flocking to the latest shiniest thing. And there is nothing wrong with that. Its just ironic that many of the personality types that flock to this technology are the same type of folks who argued that datasets would save the world. Geez.</p>
<p>MVC is good stuff and my buddy Phil has poured his heart into this project. So I certainly hope it will thrive and progress. What has me confused at the moment are a plethora of adjacent projects that are growing up around it. I have a hard time discerning which to take serious. What do I make of an open source &#8220;architecture&#8221; that spits out a bunch of scaffolding pages and uses itself two other OSS projects. By the way, am I the only one who sees a trend of OSS projects where someone produces an entire new something that is 50% built on top of someone elses new something. Hope that makes sense. Did the RoR community go through a similar evolution?</p>
<p>As a consultant I need rock solid tools that are not necessarily going to be impacted by a deprecation of some obscure aspect because the manufacturer used some OSS project that is no longer popular. I really should research how the RoR community deals with this.</p>
<p>And while I am on the subject of &#8220;architectures&#8221;&#8230;. seems that there are some ASP.NET MVC &#8220;architectures&#8221; floating around that are primarily fantastic code generators. I would actually call them Form Wizards on Steroids. Hence the pic.</p>
<p>In 1992 I worked on a pretty large MS Access app. Yes we did those and they were good. Dont laugh. MS Access was the MVC of its day. Anyways, the IDE had a Form Wizard. Point it at a query or table and it would generate all the code you need.  I learned an important lesson back then about code gen. Especially UI code gen. Dont use it. Wizard generated code is great &#8230; al the way until you need to change it. And Wizard generated apps tend to contain a lot of unnecessary stuff that you wouldn&#8217;t produce by hand.</p>
<p>Now mind you I am not talking about the utilization of some other view engine. Spark for example looks pretty cool. I am talking about the notion that a utility spitting out a bunch of views and controllers and tests is a measure of productivity. It is not.</p>
<p>Speaking of productivity. Rob Connery had a very cool demo of MSpec on his site. Finally a spec / test system that makes sense. (Besides Fitnesse that is).</p>
]]></content:encoded>
			<wfw:commentRss>http://wagnerblog.com/2009/05/codegen-on-steroids/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another reason to be cautious of the MS Entity Framework</title>
		<link>http://wagnerblog.com/2007/06/another-reason-to-be-cautious-of-the-ms-entity-framework/</link>
		<comments>http://wagnerblog.com/2007/06/another-reason-to-be-cautious-of-the-ms-entity-framework/#comments</comments>
		<pubDate>Sun, 10 Jun 2007 15:23:25 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[.NET Tools]]></category>
		<category><![CDATA[Software Architecture]]></category>

		<guid isPermaLink="false">http://wagnerblog.com/?p=842</guid>
		<description><![CDATA[I believe that the surge in various open source projects , as well as certain commercial ones, that provide proper ORM tools to the .NET development community may pose a bit of an issue for MS. You see, the data access structure that MS has espoused for the past 10+ years was usually based on [...]]]></description>
			<content:encoded><![CDATA[<p>I believe that the surge in various open source projects , as well as certain commercial ones, that provide proper ORM tools to the .NET development community may pose a bit of an issue for MS. You see, the data access structure that MS has espoused for the past 10+ years was usually based on some resultset that could be bound to the front end. All of MS dev tools, since VB 3 and Access 1.1, have had that ability at its core. Thats why you have datasets and datagrids. By providing a comprehensive story (gratuitous hot keyword alert) , that covered the entire cycle from data retrieval on a server to consumption / usage in a winform or web form, MS provided a specific way to work with its tools. And of course the sweet-spot of usability of these tools was centered on SQL Server.</p>
<p>Along came Object Relational Mappers. Be that NHibernate or commercial ones. At its core, the ORM among many other very useful things, provides a way to quickly and relatively painlessly abstract your code away from its database. Therefore &#8211; and this is important &#8211; you can write an application against one database, then swap out back-ends for another database and with a minimum of changes be up and running in no time. One of the best examples of this was watching my buddy Dan change an ENTIRE learning management system from SQL Server to MySQL in next to no time. I think he said it took less than a week.</p>
<p>So I ask you, if you are MS and you see an upsurge of tools that allow developers to do this. And there is more and more buzz in the various blogs about ORM&#8217;s and the benefits of other technologies, like ActriveRecord, MVC etc etc. What would you do? Based on 15 years of watching MS, I believe the embrace and extend methodology will be applied here with great success. In the end I suspect MS will provide something to the dev community that looks and smells a little bit like an ORM but under the hood it will be just a tad different, making it easy to use with MS Tools and through its very usage making it hard to switch databases, effectively negating one of the core points of an ORM.</p>
<p>With everything you know about MS&#8230; doesn&#8217;t that seem like a reasonable idea? No wonder some people have begun to call the MS Entity Framework a <strong>persistence mapper not an object relational mapper. </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://wagnerblog.com/2007/06/another-reason-to-be-cautious-of-the-ms-entity-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Look at open source projects &#8212; get fired</title>
		<link>http://wagnerblog.com/2007/06/look-at-open-source-projects-get-fired/</link>
		<comments>http://wagnerblog.com/2007/06/look-at-open-source-projects-get-fired/#comments</comments>
		<pubDate>Wed, 06 Jun 2007 13:09:27 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[RoR]]></category>
		<category><![CDATA[Software Architecture]]></category>

		<guid isPermaLink="false">http://wagnerblog.com/?p=840</guid>
		<description><![CDATA[Ola Blini has a very interesting post about John Lam&#8217;s work on a MS version of Ruby. The most important part of it &#8211; to me &#8211; is the point that MS employees are not allowed to use Open Source projects in any way when developing new code. Hence John is not allowed to even [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ola-bini.blogspot.com/2007/06/there-can-be-only-one-tale-about-ruby.html">Ola Blini</a> has a very interesting post about John Lam&#8217;s work on a MS version of Ruby. The most important part of it &#8211; to me &#8211; is the point that MS employees are not allowed to use Open Source projects in any way when developing new code. Hence John is not allowed to even look at MRI when working on his implementation of Ruby. All I can say is Holy Smokes ! Thats quite a restraint.</p>
]]></content:encoded>
			<wfw:commentRss>http://wagnerblog.com/2007/06/look-at-open-source-projects-get-fired/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft at a Crossroads? Absolutely ! How about the dev community as well.</title>
		<link>http://wagnerblog.com/2007/06/microsoft-at-a-crossroads-absolutely-how-about-the-dev-community-as-well/</link>
		<comments>http://wagnerblog.com/2007/06/microsoft-at-a-crossroads-absolutely-how-about-the-dev-community-as-well/#comments</comments>
		<pubDate>Fri, 01 Jun 2007 15:24:16 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[RoR]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Software Quality]]></category>

		<guid isPermaLink="false">http://wagnerblog.com/?p=839</guid>
		<description><![CDATA[Sam Gentile has a lengthy post about a recent essay called RubyMicrosoft by none other than Martin Fowler. Both items are excellent reads. Sam underscores the chasm that exists between certain elements of the MS Development community. Although I do want to add one point &#8211; I have used Dependency Injection and ORM for almost [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://codebetter.com/blogs/sam.gentile/archive/2007/05/31/microsoft-at-the-crossroads.aspx">Sam Gentile </a>has a lengthy post about a recent essay called <a href="http://martinfowler.com/bliki/RubyMicrosoft.html">RubyMicrosoft </a>by none other than Martin Fowler. Both items are excellent reads. Sam underscores the chasm that exists between certain elements of the MS Development community. Although I do want to add one point &#8211; I have used Dependency Injection and ORM for almost 2 years now but I am NOT an agile programmer. I am not thrilled with writing unit tests. There I&#8217;ve said it. Yes its not very fashionable and who knows maybe in the future I will get into unit tests but for now &#8211; thanks but no thanks. Having said that, I do see a lot of value in this practice when you have a team of people who need to work on a larger code base.</p>
<p>I would also like to juxtapose the opinions of Sam and Fowler with the absolutely <a href="http://weblogs.asp.net/nunitaddin/">shameful way that MS has been acting toward Jamie Cansdale </a>who had the gall to be smart enough to figure out how to create a VS Express Add-In without using MS&#8217; plugin architecture and keys. This whole scene <strong>stinks to high heaven</strong>. No wonder people are leaving the realm of MS centric development. And the more people leave the more brainshare alternate technologies gather. In addition the more people leave the more pressure there will be on companies to implement projects with alternate technologies. I remember the days when VB was very young and most corporations were advertising for PowerBuilder developers. We are now in a similar cycle. For Pete&#8217;s sake if you have guys like <a href="http://www.hanselman.com/blog/default.aspx?page=2">Scott Hanselman</a> going to Ruby conferences and blogging that he is a &#8220;closet railer &#8221; (ok thats my term ), then you know somethings up.</p>
<p>UPDATE 6-3-07: Frans Bouma who is an ISV <a href="http://weblogs.asp.net/fbouma/archive/2007/06/02/thou-shall-not-work-around-technical-limitations-whatever-they-are.aspx">responds at length to the ridiculous crap</a> the MS is pulling with Jamie.  You know, the &#8220;anything but MS&#8221; camp has been accusing MS for many years of this crappy behavior. I always thought there was a lot of posturing but it looks like they were right all along. MS really is a bully.</p>
]]></content:encoded>
			<wfw:commentRss>http://wagnerblog.com/2007/06/microsoft-at-a-crossroads-absolutely-how-about-the-dev-community-as-well/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to create better software &#8212; get more quality conscious customers !</title>
		<link>http://wagnerblog.com/2007/05/how-to-create-better-software-get-more-quality-conscious-customers/</link>
		<comments>http://wagnerblog.com/2007/05/how-to-create-better-software-get-more-quality-conscious-customers/#comments</comments>
		<pubDate>Wed, 23 May 2007 02:55:44 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Software Quality]]></category>

		<guid isPermaLink="false">http://wagnerblog.com/?p=831</guid>
		<description><![CDATA[This week I have been working with NxTV, the premier supplier of in room entertainment for hotels. The product sold by NxTV is essentially a small computer that is attached to the hotel tv set. Customers can order movies or internet access on it. The set top box talks to a couple of servers and [...]]]></description>
			<content:encoded><![CDATA[<p>This week I have been working with NxTV, the premier supplier of in room entertainment for hotels. The product sold by NxTV is essentially a small computer that is attached to the hotel tv set. Customers can order movies or internet access on it. The set top box talks to a couple of servers and movies are streamed to the TV. Of course its more complicated than that, but in a nutshell thats the business.</p>
<p>I am working on an implementation of an open standard for the hospitality industry. One thing really caught my attention at this company &#8211; the all pervading sense of quality that drives the organization. From schematics to manuals to pretty rigorous QA testing, you can tell here is a business that really wants to succeed by providing a superior service. I mentioned this observation to one of the VP&#8217;s . He chuckled and said &#8221; When you have 5 star hotels as customers, you need to be a 5 star vendor&#8221;</p>
<p>That actually made a lot of sense to me. One of the reasons there is so much crappy software floating around &#8211; especially in the companies working in web applications &#8211; is the fact that a lot of this software is ordered by business units instead of IT departments. And so many business units in corporate America have no clue what quality software is. Its not their core competency so I dont blame them.  That&#8217;s not to say that they wouldn&#8217;t like a working product. Of course they would. But it has been my experience that projects which are ordered and managed by business units directly, tend to go astray more than those run by IT. As a matter of fact I know one development outfit where the prospect of rigorous oversight would instill a great deal of concern because this company almost runs all projects on the notion that they can thoroughly befuddle their customers with technical details, which then gives them more time on the project and occasionally makes them look like a hero to the unsuspecting business manager. This would never fly with IT involvement.</p>
<p>To prove that every sweeping generalization has an exception, this stands in marked contrast to the way hotels seem to deal with their vendors. Especially luxury hotels. Try and tell the Peninsula in Beverly Hills that their high powered guest can&#8217;t do something with your product because &#8230;.. [insert typical excuse here]&#8230;&#8230;. Try that and see how long you will be in business with the Peninsula. The VP I spoke with indicated this is the case for most of their high end customers.  His company, in a sense, has to be on par with the level of quality that guests are used to. These are guests with private jets, very expensive high quality German cars, who expect to get what they pay for.</p>
<p>So there you have it. I found a quality company in a most unexpected place for the most unexpected reasons. But when you think about it, the company has to operate this way in order to compete in the hospitality industry, which at this level of service has some very high demands and expectations. Which in turn drives the product quality. Neat.</p>
]]></content:encoded>
			<wfw:commentRss>http://wagnerblog.com/2007/05/how-to-create-better-software-get-more-quality-conscious-customers/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Frans is a little peeved at Architectural Astronauts</title>
		<link>http://wagnerblog.com/2007/05/frans-is-a-little-peeved-at-architectural-astronauts/</link>
		<comments>http://wagnerblog.com/2007/05/frans-is-a-little-peeved-at-architectural-astronauts/#comments</comments>
		<pubDate>Tue, 22 May 2007 03:01:21 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Software Quality]]></category>

		<guid isPermaLink="false">http://wagnerblog.com/?p=828</guid>
		<description><![CDATA[Who can blame the guy. He has a product that supports a bunch of different database servers. So consequently he is very familiar with his subject matter.
He says: &#8220;...Scientists should stick with science. What they invent and discover should be moved to the real world by engineers, not by scientists as well. Because, if you [...]]]></description>
			<content:encoded><![CDATA[<p>Who can blame the guy. He has a product that supports a bunch of different database servers. So consequently he is very familiar with his subject matter.</p>
<p>He says: &#8220;.<em>..Scientists should stick with science. What they invent and discover should be moved to the real world by engineers, not by scientists as well. Because, if you leave it to scientists, you&#8217;ll end up with horrible syntaxis like the ROW_NUMBER() function in SqlServer 2005</em>&#8230;.&#8221;</p>
<p><a href="http://weblogs.asp.net/fbouma/archive/2007/05/21/api-s-and-production-code-shouldn-t-be-designed-by-scientists.aspx">Read the entire post</a>. Its certainly eye opening to everyone who hasn&#8217;t had to implement paging in another db outside of SQL Server.</p>
]]></content:encoded>
			<wfw:commentRss>http://wagnerblog.com/2007/05/frans-is-a-little-peeved-at-architectural-astronauts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Translating a little bit of (microsoft) double talk&#8230;</title>
		<link>http://wagnerblog.com/2007/05/translating-a-little-bit-of-microsoft-double-talk/</link>
		<comments>http://wagnerblog.com/2007/05/translating-a-little-bit-of-microsoft-double-talk/#comments</comments>
		<pubDate>Sun, 13 May 2007 14:35:24 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[.NET Tools]]></category>
		<category><![CDATA[Software Architecture]]></category>

		<guid isPermaLink="false">http://wagnerblog.com/?p=819</guid>
		<description><![CDATA[This is so hilarious. I absolutely love it.
[Remember WinFS? Remember we spent thousands of years of developer effort and billions of dollars, and delayed Vista by years... and ended up canning the whole thing. Well the only thing we salvaged from the whole sorry fiasco, was something called the ADO.Net Entity Framework. It allows you [...]]]></description>
			<content:encoded><![CDATA[<p>This is so hilarious. I absolutely love it.</p>
<p>[Remember WinFS? Remember we spent thousands of years of developer effort and billions of dollars, and delayed Vista by years... and ended up canning the whole thing. Well the only thing we salvaged from the whole sorry fiasco, was something called the ADO.Net Entity Framework. It allows you to use three synonyms, -- entity, object and model -- with three other synonyms -- schema, domain and framework -- to produce up to 36 different connotations from just two simple concepts. There's no problem so simple that developers can't over engineer it. Anyway -- when we say 'Significant Investments' we mean billions of lost dollars! and, well, let's be honst, we really mean, F*** YOU DHH! You cannot hope to challenge us! We are massive! We are the borg! We will add your technical and cultural distinctiveness to our own! We do not sleep!]</p>
<p><a href="http://www.secretgeek.net/jasper.asp">Read more.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wagnerblog.com/2007/05/translating-a-little-bit-of-microsoft-double-talk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
