<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://devlicious.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Derik Whittaker</title><link>http://devlicious.com/blogs/derik_whittaker/default.aspx</link><description>Thoughts on Software Development, .Net, OOP, Design Patterns and all things cool
&lt;br /&gt;&lt;br /&gt;
&lt;div class="altnetgeekcode"&gt;&lt;a href="http://www.hanselman.com/altnetgeekcode/default.aspx?q=IOC(SM):MOC(RM):TDD(NU):SCC(Svn):ORM(L2S):XPP(-):XPP(+):DDD(T+)"&gt;IOC(SM):MOC(RM):TDD(NU):SCC(Svn):ORM(L2S):XPP(-):XPP(+):DDD(T+)&lt;/a&gt;&lt;/div&gt;</description><dc:language>en</dc:language><generator>CommunityServer 2007 (Build: 20416.853)</generator><item><title>"Operation could destabilize the runtime" from Casting from Concrete to Interfaces with Linq</title><link>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/29/quot-operation-could-destabilize-the-runtime-quot-from-casting-from-concrete-to-interfaces-with-linq.aspx</link><pubDate>Sat, 29 Nov 2008 16:19:43 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:43251</guid><dc:creator>Derik Whittaker</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/rsscomments.aspx?PostID=43251</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/commentapi.aspx?PostID=43251</wfw:comment><comments>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/29/quot-operation-could-destabilize-the-runtime-quot-from-casting-from-concrete-to-interfaces-with-linq.aspx#comments</comments><description>&lt;p&gt;In all my years of doing .Net I have to say that I finally came across the exception message that takes the cake.&amp;nbsp; Today while trying to do some refactoring on the &lt;a href="http://www.dimecasts.net/"&gt;DimeCasts.net&lt;/a&gt; code base I received this exception.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Operation could destabilize the runtime&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;I received the error while trying to update some Linq-2-Sql code that where I was trying to return the data as IList&amp;lt;IDownloadInformation&amp;gt; (yes I killed the delayed execution).&amp;nbsp; Below is the code that caused the exception&lt;/p&gt;&lt;pre class="c-sharp" name="code"&gt;public IList&amp;lt;IDownloadInformation&amp;gt; FetchEpisodeDownloads( Int32 episodeID )
{
	var result = ( from d in DBContextInstance().EpisodeDownloadInformations
        	where d.EpisodeID == episodeID
		select (IDownloadInformation)new DownloadInformation()
                	{
                        DownloadID = d.ID,
                        EpisodeID = d.EpisodeID,
                        ...
                        
                       	);

	return (IList&amp;lt;IDownloadInformation&amp;gt;) result.ToList();
}
&lt;/pre&gt;
&lt;p&gt;Turns out the above code works, mostly.&amp;nbsp; Everything is fine until I went to cast the return results.&amp;nbsp; It was then I received the nice exception.&lt;/p&gt;
&lt;p&gt;As soon as I found the error I hit Google for some help. I was able to find this &lt;a href="http://netindonesia.net/blogs/jimmy/archive/2008/09/22/operation-could-destabilize-the-runtime.aspx"&gt;post&lt;/a&gt; which helped to point me in the right direction.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;After taking a look at my code again, I was able to get the code below to work (this time I decided to use IQueryable so I could get the delayed execution.&lt;/p&gt;&lt;pre class="c-sharp" name="code"&gt;        
public IQueryable&amp;lt;IDownloadInformation&amp;gt; FetchEpisodeDownloads( Int32 episodeID )
{
	var result = ( from d in DBContextInstance().EpisodeDownloadInformations
        	where d.EpisodeID == episodeID
                	select (IDownloadInformation)new DownloadInformation()
                        {
                        	DownloadID = d.ID,
                                EpisodeID = d.EpisodeID,
                                ..                                 
			}
			);

	return result.OfType&amp;lt;IDownloadInformation&amp;gt;();
}
&lt;/pre&gt;
&lt;p&gt;Using the built in OfType support to cast your return value back to the interface seemed to work and it is pretty clean and simple.&amp;nbsp; What is funny about the actual exception that was thrown is that it makes no sense and really does not lead you to the problem.&amp;nbsp; Gotta love Google :)&lt;/p&gt;
&lt;p&gt;Hope this helps.&lt;/p&gt;
&lt;p&gt;Till next time,&lt;/p&gt;
&lt;p&gt;&lt;font color="#808080"&gt;[--- Check out &lt;/font&gt;&lt;a href="http://www.Dimecasts.net"&gt;&lt;font color="#808080"&gt;www.Dimecasts.net&lt;/font&gt;&lt;/a&gt;&lt;font color="#808080"&gt; ---]&lt;/font&gt;&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=43251" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Development/default.aspx">Development</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/HowTo/default.aspx">HowTo</category></item><item><title>RenderPartial vs RenderAction</title><link>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/24/renderpartial-vs-renderaction.aspx</link><pubDate>Mon, 24 Nov 2008 22:08:52 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:43206</guid><dc:creator>Derik Whittaker</dc:creator><slash:comments>12</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/rsscomments.aspx?PostID=43206</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/commentapi.aspx?PostID=43206</wfw:comment><comments>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/24/renderpartial-vs-renderaction.aspx#comments</comments><description>&lt;p&gt;If you have been using the MVC framework I am sure you are aware that in many cases there are multiple ways to accomplish the same task.&amp;nbsp; One such case in point is how to render content for a View.&amp;nbsp; Now I am not talking about how to render an entire View, but rather how do I render partial Views (aka user controls).&lt;/p&gt; &lt;p&gt;Let me paint you this picture.&amp;nbsp; In your master page you have some &lt;a href="http://devlicio.us/blogs/derik_whittaker/WindowsLiveWriter/RenderPartialvsRenderActionvsDirectRouti_103F8/CastsTags_2.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="231" alt="CastsTags" src="http://devlicio.us/blogs/derik_whittaker/WindowsLiveWriter/RenderPartialvsRenderActionvsDirectRouti_103F8/CastsTags_thumb.png" width="171" align="right" border="0" /&gt;&lt;/a&gt; common content you want to render in every view and this content needs to hit the business layer to perform some sort of logic.&amp;nbsp; How do you generate this content (the end result is like what you see to the right)?&amp;nbsp; The HTML content to the right is generated in a User Control so it is completely isolated from my main view or master page.&lt;/p&gt; &lt;p&gt;There are at least 2 different ways you can include data into your View and both of them have their pros and cons, but I personally feel one stands out as the clear favorite.&lt;/p&gt; &lt;p&gt;Approach 1: Using Html.RenderPartial&lt;/p&gt; &lt;p&gt;One way to render a user control is to use the Html.RenderPartial helper.&amp;nbsp; This will accept the name of the user control to render and optionally the data that is needed to build the user control.&amp;nbsp; You can see a simple example below.&lt;/p&gt; &lt;p&gt;&amp;lt;% Html.RenderPartial( &amp;quot;SomeControl.ascx&amp;quot;, ViewData.Model ); %&amp;gt;&lt;/p&gt; &lt;p&gt;This works well and can be very useful, but lets take a look at the pros/cons with this approach.&lt;/p&gt; &lt;p&gt;Pros:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Simple to use, no need to create any controller actions&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Cons:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Your view now has intimate knowledge of not only which user control/partial is should render, but how to find it.&lt;/li&gt; &lt;li&gt;Your view need to provide the data to another view and this in itself has two issues&lt;/li&gt; &lt;ol&gt; &lt;li&gt;Your view has to be aware of how it should populate other entities, this should NOT be the views job as this is business related logic.&lt;/li&gt; &lt;li&gt;Because you can provide data, you could be tempted to skip the controller layer (aka traffic cop) and simply make a direct call to into your service layer, or worse yet directly into the database&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt; &lt;p&gt;Approach 2: Using Html.RenderAction (in Microsoft.Web.Mvc)&lt;/p&gt; &lt;p&gt;Another way to render a user control is to follow the same process as you would to render your View.&amp;nbsp; Let the controller determine which view (aka partial or user control) to render.&amp;nbsp; You can accomplish this by using Html.RenderAction (which is part of Microsoft.Web.MVC assembly).&amp;nbsp; This will allow you to specify a controller action to call which will determine which view/partial/user control to render.&amp;nbsp; Take a look at the simple example below for how to use RenderAction.&lt;/p&gt; &lt;p&gt;&amp;lt;% Html.RenderAction&amp;lt;MyController&amp;gt;( x =&amp;gt; x.ControllerAction() ); %&amp;gt;&lt;/p&gt; &lt;p&gt;I feel that this works well&amp;nbsp; and can be useful, but lets take a look at the pros/cons with this approach.&lt;/p&gt; &lt;p&gt;Pros:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;You let your controller action do what it does, perform organizational logic and can make requests into the business layer to perform business logic.&lt;/li&gt; &lt;li&gt;Abstracts away which actual view/partial/usercontrol is going to be used in this location.&amp;nbsp; This is nice because it allows for simpler refactoring in the future.&lt;/li&gt; &lt;li&gt;Abstracts away any business related logic into the controller.&amp;nbsp; This helps with keeping your business logic in the correct place&lt;/li&gt; &lt;li&gt;Is strongly typed since it uses lambdas.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Cons:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;You have to create another controller action to handle the request.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;As you can tell from my list of pros/cons I think that calling RenderAction is a far better option.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Till next time,&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#808080"&gt;[---- Visit &lt;a href="http://www.dimecasts.net/"&gt;DimeCasts.net&lt;/a&gt; ----]&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=43206" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/asp.net/default.aspx">asp.net</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Best+Practice/default.aspx">Best Practice</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/HowTo/default.aspx">HowTo</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/ASP.Net+MVC/default.aspx">ASP.Net MVC</category></item><item><title>[ANN] Programming Asp.Net MVC by O'Reilly</title><link>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/19/ann-programming-asp-net-mvc-by-o-reilly.aspx</link><pubDate>Thu, 20 Nov 2008 02:20:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:43160</guid><dc:creator>Derik Whittaker</dc:creator><slash:comments>16</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/rsscomments.aspx?PostID=43160</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/commentapi.aspx?PostID=43160</wfw:comment><comments>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/19/ann-programming-asp-net-mvc-by-o-reilly.aspx#comments</comments><description>&lt;p&gt;Well, it is about time we (&lt;a href="http://devlicio.us/blogs/tim_barcz"&gt;Tim&lt;/a&gt;, &lt;a href="http://subjunctive.wordpress.com/"&gt;Chris&lt;/a&gt; and myself) actually made this announcement.&amp;nbsp; We will be doing&amp;nbsp;a MVC bo&lt;a href="http://devlicio.us/blogs/derik_whittaker/WindowsLiveWriter/ANNProgrammingAsp.NetMVCbyOReilly_11DF2/ProgrammingAsp.NetLogo%5B8%5D.jpg"&gt;&lt;img src="http://devlicio.us/blogs/derik_whittaker/WindowsLiveWriter/ANNProgrammingAsp.NetMVCbyOReilly_11DF2/ProgrammingAsp.NetLogo_thumb%5B6%5D.jpg" style="border-width:0px;" align="right" border="0" height="480" width="365" alt="" /&gt;&lt;/a&gt;ok with O&amp;#39;Reilly titled &amp;#39;Programming MVC&amp;#39;.&amp;nbsp; We are super excited and super pumped to get this out the door.&amp;nbsp; All three of us are &amp;nbsp;huge fans of the MVC framework and know that this is framework going to be smashing success.&lt;/p&gt; &lt;p&gt;The goal of this book is to provide a clear, concise vision on how to build web applications using the MVC framework.&amp;nbsp; Our goal is to walk you though the various parts of the MVC framework and MVC&amp;nbsp;Pattern to all you to have a solid understanding of what the framework can do for you.&amp;nbsp; Once you have mastered the framework, we will then take you on a little journey on how to use the framework to build out your application.&amp;nbsp; By the end of the book our hope is that you will have a solid enough understanding of the framework be able to build a application, but also to know why it does what it does.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Collectively we will all be posting thoughts/content on the book over the coming months, so please stay tuned for more information.&lt;/p&gt; &lt;p&gt;Wish us luck (and send along some caffeine) we will see you on the flip side.&lt;/p&gt; &lt;p&gt;Till next time,&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=43160" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Announcement/default.aspx">Announcement</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/ASP.Net+MVC/default.aspx">ASP.Net MVC</category></item><item><title>Testing is hard but debugging just sucks A$$</title><link>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/14/testing-is-hard-but-debugging-just-sucks-a.aspx</link><pubDate>Fri, 14 Nov 2008 23:58:05 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:43064</guid><dc:creator>Derik Whittaker</dc:creator><slash:comments>22</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/rsscomments.aspx?PostID=43064</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/commentapi.aspx?PostID=43064</wfw:comment><comments>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/14/testing-is-hard-but-debugging-just-sucks-a.aspx#comments</comments><description>&lt;p&gt;In my last post (&lt;a href="http://feeds.feedburner.com/~r/Devlicious/~3/451762368/talking-mocks-at-trinug-what-a-great-time-what-a-great-group.aspx"&gt;here&lt;/a&gt;) I was giving a wrap up of&amp;nbsp;the Mocking session I recently did at &lt;a href="http://www.trinug.org"&gt;TriNug&lt;/a&gt;.&amp;nbsp; In that post I gave some of the reasons (sorry, I meant excuses) people gave for not doing any type of automated testing during their dally development ritual (notice I am staying away from TDD at this point).&amp;nbsp; I thought that those topics would be better suited to be broken out into their own post.&lt;/p&gt; &lt;p&gt;At the users group I asked the question to the group &amp;#39;who creates automated tests as part of their daily development cycle?&amp;#39;.&amp;nbsp; After I asked this question I followed it up with, and if you don&amp;#39;t WHY, WHY, WHY, WHY......&amp;nbsp; Below are some of the answers I received (btw, not the first time I have heard these reasons).&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Reason #1 - It is too hard to get started:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Point:&lt;/strong&gt; This statement is nothing new, I hear this all the time.&amp;nbsp; To be honest I agree with them, testing is hard.&amp;nbsp; It takes time and effort to learn how to do it.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Counter Point: &lt;/strong&gt;But if you think learning to write tests and learning how to create testable code is hard, then what do you do when you need to learn a new product?&amp;nbsp; I can break it down like this.&amp;nbsp; Testing == Coding and Coding == REAL FREAKING HARD.&amp;nbsp; Stop using &amp;#39;testing is hard&amp;#39; as a crutch and just give it a shot.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Reason #2&amp;nbsp;- My client/company is not paying me to write tests:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Point: &lt;/strong&gt;This one always make me laugh.&amp;nbsp; Since testing does take time (not going to sugar coat this at all), and can slow down your pace of development, many people feel that they are not being paid to create tests.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Counter Point:&amp;nbsp; &lt;/strong&gt;This one is real simple, ask your self these two questions.&amp;nbsp; &lt;/p&gt; &lt;ol&gt; &lt;li&gt;Am I being paid to produce quality or crap?&amp;nbsp; &lt;/li&gt; &lt;li&gt;Am I being paid to debug?&amp;nbsp; &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;I am going to assume that both of those answers are NO, and if they are not then I would suggest you stop reading this post as it does not get any better from here.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Now that we are on the same page and we understand you are being paid to produce quality code why would you not want to do everything you can to bake that&amp;nbsp;quality into your code up front?&amp;nbsp; This can happen with tests.&amp;nbsp; Take the time, take the challenge and create some tests.&amp;nbsp; Trust me, no one ever got fired for being a bit late with an application that was freaking solid from a quality standpoint (and if you do get fired because of it just look at it this way, you have a new&amp;nbsp;and marketable skill to help you find your new job).&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Reason #3 - I do not have time&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Point: &lt;/strong&gt;Testing takes time, and when time is short people throw every &amp;#39;non-critical&amp;#39; functions out the window.&amp;nbsp; And sadly people think that quality is a non-critical function.&amp;nbsp; To prove this point just take a look at 90% of the applications out there... they suck ASS&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Counter Point:&amp;nbsp; &lt;/strong&gt;Just ask yourself this question.&amp;nbsp; Would I rather spend what little time I have creating tests to help ensure I have quality or would I rather spend time later stepping through code via the debugger looking for the bug I could have caught/fixed earlier?&amp;nbsp; If you would rather spend time in the debugger, then more power to you.&lt;br /&gt;&lt;br /&gt;NOTE: Do NOT take the above statement as me saying that testers NEVER debug, they do but just a TON less than others.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Reason #4 - My code will not allow me to tests&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Point:&lt;/strong&gt;&amp;nbsp; This is one may be the only excuse that has some merit.&amp;nbsp; Poor code is hard to test.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Counter Point:&amp;nbsp; &lt;/strong&gt;Simply because you do not need to retrofit your entire code base at one time.&amp;nbsp; If you have &amp;#39;bad&amp;#39; code that is easy to test that is fine.&amp;nbsp; Start testing with NEW code.&amp;nbsp; Hopefully you will not be creating bad code once you understand your current code is not the best.&amp;nbsp; You will also come to understand that when you start testing your code will start to get a little cleaner.&amp;nbsp; Finally, if you really want to start to test your legacy code, go out and pick up &amp;#39;&lt;a href="http://www.amazon.com/Working-Effectively-Legacy-Robert-Martin/dp/0131177052"&gt;Working Effectively w/ Legacy Code&lt;/a&gt;&amp;#39; by Michael Feathers&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;As you can tell from my tone, I do not buy into any of these reasons, sorry excuses.&amp;nbsp; I wish that when I ask people this question and they gave me a response they would simply state the truth.&amp;nbsp; And the truth is people do not test for the following 2 reasons&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Reason #1 - They do not believe that creating tests will improve their code&lt;br /&gt;&lt;/strong&gt;If this is what you really think, that is fine.&amp;nbsp; You are allowed to have your beliefs and I am allowed to have mine.&amp;nbsp; As long as we understand each other we can get along just fine.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Reason #2 - They are lazy&lt;br /&gt;&lt;/strong&gt;Not sure I need to explain this one.&lt;/p&gt; &lt;p&gt;Let the flames begin :)&lt;/p&gt; &lt;p&gt;Till next time,&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=43064" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Agile/default.aspx">Agile</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/TDD/default.aspx">TDD</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Opinion/default.aspx">Opinion</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Rant/default.aspx">Rant</category></item><item><title>Talking Mocks at TriNug, what a great time, what a great group</title><link>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/13/talking-mocks-at-trinug-what-a-great-time-what-a-great-group.aspx</link><pubDate>Thu, 13 Nov 2008 12:36:01 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:43022</guid><dc:creator>Derik Whittaker</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/rsscomments.aspx?PostID=43022</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/commentapi.aspx?PostID=43022</wfw:comment><comments>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/13/talking-mocks-at-trinug-what-a-great-time-what-a-great-group.aspx#comments</comments><description>&lt;p&gt;Last night I had the opportunity to&amp;nbsp;do my &amp;#39;Taking your tests to the next level with Mocks&amp;#39;&amp;nbsp;session&amp;nbsp;to the &lt;a href="http://trinug.org/"&gt;TriNug&lt;/a&gt; user group.&amp;nbsp; I would first like to say thanks to Doug Wilson and his entire group.&amp;nbsp; They had a great turn out (45ish people) and they asked a ton of great questions.&lt;/p&gt; &lt;p&gt;To kick off the session I ask the same question I ask everything I give this session &amp;#39;Who in here writes tests as part of their development routine?&amp;#39;.&amp;nbsp; The response I got did not surprise me, about 30% said they did.&amp;nbsp; I then asked those 30%, who using a mocking framework?&amp;nbsp; Again the response did not surprise me, only about 50%.&lt;/p&gt; &lt;p&gt;Of course with only 30% even saying they test, I had to ask why, why and why.&amp;nbsp; The responses I got I have heard before and thought I would share them&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;It is too hard to get started&lt;br /&gt;&lt;/strong&gt;I have heard this one before, and I am not going to lie to you, writing tests is hard, it takes effort and time to learn how to do it.&amp;nbsp; But just ask yourself this.&amp;nbsp; When learning anything new is it easy?&amp;nbsp; Are you able to just pickup a new tool/technology and &amp;#39;know it&amp;#39; or do you have to learn it?&amp;nbsp; My guess you have to learn it, testing/mocking is no different.&lt;br /&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;My client/company is not paying me to write tests&lt;br /&gt;&lt;/strong&gt;Sorry, but this is one statement have to call BS on.&amp;nbsp; I immediately asked, is your company paying you to write shitty quality?&amp;nbsp; Or are they paying you to produce quality code?&amp;nbsp; If they are paying you to write shitty code, &lt;font color="#ff0000"&gt;STOP&lt;/font&gt; reading now as I am done talking to you (ok, may be not, but really??? shitty code is what they want???).&amp;nbsp; If they are paying you to create quality code how can you insure it without tests?&amp;nbsp; My guess is that you have tests, but they just happen to be of the manual, error prone nature.&lt;br /&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;I do not have time&lt;br /&gt;&lt;/strong&gt;Again, another one I call BS on.&amp;nbsp; I followed this up with &amp;#39;let me guess, you have time to debug/bug hunt at the end right?&amp;#39;.&amp;nbsp; The key to testing is that it does take time (wow, that is honest) but it is either a pay me now, or pay me later scenario.&amp;nbsp; Either you take the time now to embed quality or you take the time later to duck-tap quality.&amp;nbsp; Your choice?&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;With this information in hand, I really attempted to drive home the values of both testing as well as using a mocking framework to remove dependencies.&amp;nbsp; I think towards the end of the night I had converted some people to &amp;#39;believers&amp;#39; and hopefully they will either give testing a solid go (assuming they are not testing right now) or give using a mocking framework a go.&lt;/p&gt; &lt;p&gt;You can get any of my session information from Google code&amp;nbsp;from this location&amp;nbsp;&lt;a title="http://code.google.com/p/graudo/" href="http://code.google.com/p/graudo/"&gt;http://code.google.com/p/graudo/&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Till next time,&lt;/p&gt; &lt;p&gt;&lt;font color="#808080"&gt;&lt;strong&gt;[----- Remember to check out &lt;/strong&gt;&lt;strong&gt;&lt;a href="http://www.dimecasts.net"&gt;DimeCasts.Net&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt; -----]&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=43022" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Development/default.aspx">Development</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/TDD/default.aspx">TDD</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Rhino+Mocks/default.aspx">Rhino Mocks</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Presentations/default.aspx">Presentations</category></item><item><title>Upcoming Speaking Engagements</title><link>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/09/upcoming-speaking-engagements.aspx</link><pubDate>Sun, 09 Nov 2008 22:53:07 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:42976</guid><dc:creator>Derik Whittaker</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/rsscomments.aspx?PostID=42976</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/commentapi.aspx?PostID=42976</wfw:comment><comments>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/09/upcoming-speaking-engagements.aspx#comments</comments><description>&lt;p&gt;Just wanted to send a message out there to anyone that is going to be in the Raleigh/Durham area this week.&amp;nbsp; I will be giving 2 talks this week.&amp;nbsp; One at &lt;a href="http://trinug.org/"&gt;TriNug&lt;/a&gt; and another at the &lt;a href="http://codecamp.org/"&gt;Raleigh Code Camp&lt;/a&gt;.&amp;nbsp; If you are in the area and want to stop by to heckle me, please do.&lt;/p&gt; &lt;p&gt;Info on the 2 sessions&lt;/p&gt; &lt;p&gt;&lt;strong&gt;TriNug - Taking your Tests to the next level with Mocks&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;This session will walk through the progression of testing with mocks.&amp;nbsp; We will learn how using mocks, and mocking out dependencies will increase the reliability of your tests. We will also learn why it is important to remove any dependencies that are out of your immediate scope.&amp;nbsp; We will do a quick overview of TDD using NUnit, but the crux of the session will be focused on mocking with RhinoMocks along with the StructureMap AutoMocking Container&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Code Camp - Bending the Asp.Net MVC to do Your Bidding, the Virtues of Extensibility&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Most frameworks only meet about 80% of our actual needs. This could be due to our unique business needs, because the framework has made some wrong assumptions, or because the framework has a different scope. Therefore, it is the wise framework that recognizes this and builds in extensibility points.&lt;br /&gt;In this session we will learn how to bend the ASP.Net MVC framework to your will. The ASP.Net MVC framework was built with extensibility in mind. Almost every part of it is extensible, from the view engine to the controller factory to the routing engine. We will learn how to make use of the various extension points in the framework and make it do our bidding. &lt;p&gt;Hope to see everyone out there, both sessions should be great.&amp;nbsp; Even if you have no interest in hearing my MVC talk I encourage you to still attend the Code Camp as there will be great content. &lt;p&gt;Till next time,&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=42976" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Announcement/default.aspx">Announcement</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/ASP.Net+MVC/default.aspx">ASP.Net MVC</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Conference/default.aspx">Conference</category></item><item><title>Chicago Alt.Net this Wednesday - Nov 12th</title><link>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/09/chicago-alt-net-this-wednesday-nov-12th.aspx</link><pubDate>Sun, 09 Nov 2008 22:49:25 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:42975</guid><dc:creator>Derik Whittaker</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/rsscomments.aspx?PostID=42975</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/commentapi.aspx?PostID=42975</wfw:comment><comments>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/09/chicago-alt-net-this-wednesday-nov-12th.aspx#comments</comments><description>&lt;p&gt;It is time for this months installment of Chicago Alt.Net meeting.&amp;nbsp; You can register &lt;a href="http://altnetchicago.eventbrite.com/"&gt;here&lt;/a&gt; and get more information from our new site (thanks Sergio) at &lt;a href="http://www.chicagoalt.net"&gt;www.chicagoalt.net&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Meeting Information&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;The Different Views of ASP.NET MVC &lt;p&gt;6:00 pm&lt;br /&gt;Pizza and networking time  &lt;p&gt;6:30 pm&lt;br /&gt;The default ASPX view engine in ASP.NET MVC is fine and comfortable but as with just about anything in ASP.NET MVC, you can replace it with alternative engines — and there are a few of those available.  &lt;p&gt;We will be giving an overview of some of the alternative view engines, showing how to install and use them, what brought them about, and why would you use them.  &lt;ul&gt; &lt;li&gt;&lt;a href="http://abombss.com"&gt;Adam Tybor&lt;/a&gt; will be presenting &lt;a href="http://dev.dejardin.org/"&gt;Spark&lt;/a&gt;, &lt;li&gt;&lt;a href="http://just3ws.wordpress.com"&gt;Mike Hall&lt;/a&gt; will show &lt;a href="http://code.google.com/p/nhaml/"&gt;NHaml&lt;/a&gt;, &lt;li&gt;and &lt;strong&gt;TBD&lt;/strong&gt; &lt;em&gt;(not defined, wanna talk?)&lt;/em&gt; will talk about &lt;a href="http://www.castleproject.org/MonoRail/documentation/trunk/viewengines/brail/index.html"&gt;Brail&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;7:45 pm&lt;br /&gt;You may want to stick around after the presentation portion of the meeting and take part in our monthly open discussion. The topic is never arranged in advance but it&amp;#39;s common that it reflects the content of the presentation.  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Please register with your &lt;strong&gt;real&lt;/strong&gt; first and last names because you&amp;#39;ll need to identify yourself at the Sears Tower front desk. The front desk will have the list of attendees. If you can&amp;#39;t register in time, show up anyway and call Sergio (224-627-8352) when you get to the front desk and we will let you in.&lt;/em&gt; &lt;/strong&gt; &lt;p&gt;I hope everyone has a good time, I am not going to be able to make it this month as I will be out of town on business. &lt;p&gt;Till next time,&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=42975" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Announcement/default.aspx">Announcement</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Chicago+Alt.Net/default.aspx">Chicago Alt.Net</category></item><item><title>The simplicity that is the Asp.Net MVC</title><link>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/05/the-simplicity-that-is-the-asp-net-mvc.aspx</link><pubDate>Wed, 05 Nov 2008 11:25:22 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:42899</guid><dc:creator>Derik Whittaker</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/rsscomments.aspx?PostID=42899</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/commentapi.aspx?PostID=42899</wfw:comment><comments>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/05/the-simplicity-that-is-the-asp-net-mvc.aspx#comments</comments><description>&lt;p&gt;Today I was browsing my list of RSS feeds and I stumbled upon a posting that showed some Asp.Net code.&amp;nbsp; This code was nothing out of the ordinary, it was simply someone building a table with a repeater.&amp;nbsp; &lt;/p&gt; &lt;p&gt;The first thing that came to mind when I saw the markup for the repeater was &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&amp;#39;WOW, that looks like crap.&amp;nbsp; Cannot believe anyone likes that markup&amp;#39;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;After about another 2 seconds looking at the code I realized how I loved the simplicity of Asp.Net MVC and how its markup is simple, clean and only shows you what is important.&lt;/p&gt; &lt;p&gt;Sure my the markup and lines of code needed by the MVC framework is really no less in total number.&amp;nbsp; But is 100% cleaner in my opinion.&amp;nbsp; &lt;/p&gt; &lt;p&gt;I am sure this line of thinking is nothing new to many of you, but I guess it never dawned on me.&lt;/p&gt; &lt;p&gt;Till next time,&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=42899" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/asp.net/default.aspx">asp.net</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Opinion/default.aspx">Opinion</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/ASP.Net+MVC/default.aspx">ASP.Net MVC</category></item><item><title>Removing words like Convince, Convert and Persuade from our vocabulary</title><link>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/04/removing-words-like-convince-convert-and-persuade-from-our-vocabulary.aspx</link><pubDate>Tue, 04 Nov 2008 11:26:22 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:42882</guid><dc:creator>Derik Whittaker</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/rsscomments.aspx?PostID=42882</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/commentapi.aspx?PostID=42882</wfw:comment><comments>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/04/removing-words-like-convince-convert-and-persuade-from-our-vocabulary.aspx#comments</comments><description>&lt;p&gt;One of the common&amp;nbsp;themes of this years KaizenConf was how to move a towards being a lean organization.&amp;nbsp; During most of the sessions and conversations that I was part I cannot tell you how often I heard words like Convince, Convert and Persuade said.&amp;nbsp; At first I had nothing against these words, but the more I thought about I know feel that we need to remove those words from our vocabulary when talking about moving a team or organization from one thing to another (in context of these conversations it is towards being lean).&lt;/p&gt; &lt;p&gt;Using terms like Convince and Convert has the feeling that &amp;#39;I am right and you are wrong&amp;#39;.&amp;nbsp; Even if you are not using terms like Convince and Convert in your dialog with people, I am going to guess that you have that as your goal, or your end game.&amp;nbsp; &lt;/p&gt; &lt;p&gt;I am here to suggest that we as a community need to change our focus from Convincing towards Demonstrating.&amp;nbsp; By changing our angle and our position to be more neutral and soft I feel we can archive our goal of bringing change easier and with less friction.&amp;nbsp; It is like that old saying &amp;#39;you can catch more fly&amp;#39;s with honey than vinegar.&lt;/p&gt; &lt;p&gt;Lets take a look at the subtle differences between Convincing and Demostrating.&lt;/p&gt; &lt;p&gt;When we are trying to Convince someone of something many times we give off the following vibes.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;That your way is wrong, and our is right  &lt;li&gt;That we are better and more knowledgeable  &lt;li&gt;That we are preaching&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;All of above tend to put people on the definsive and if someone is on the definsive they are less likely to be open minded and less likey to want to try to understand what it is you are trying to say.&lt;/p&gt; &lt;p&gt;When we are trying to demostrate something to someone we give off the following vibes.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Heartflet attempt to share knowledge  &lt;li&gt;Cooperation  &lt;li&gt;Alternative to, not a replacement for their way of doing something  &lt;li&gt;Sincere intrest in helping them.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;When you speak to someone with the above vibe, you are essentally telling them that I have&amp;nbsp;an idea and I think that my idea can help you out.&amp;nbsp; If you attack it from this angle&amp;nbsp;you&amp;nbsp;may be surprised by the level of reception you can receive.&lt;/p&gt; &lt;p&gt;Remember, convincing someone is never easy, but demostrating alternatives and allowing them to make their own decision can be.&lt;/p&gt; &lt;p&gt;Keep up the good fight and happy demostrating.&lt;/p&gt; &lt;p&gt;Till next time,&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=42882" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Methodology/default.aspx">Methodology</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Opinion/default.aspx">Opinion</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Featured/default.aspx">Featured</category></item><item><title>KaizenConf Wrap Up -- What an Exhausting Learning Experience</title><link>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/02/kaizenconf-wrap-up-what-an-exhausting-learning-experience.aspx</link><pubDate>Mon, 03 Nov 2008 00:53:04 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:42865</guid><dc:creator>Derik Whittaker</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/rsscomments.aspx?PostID=42865</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/commentapi.aspx?PostID=42865</wfw:comment><comments>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/02/kaizenconf-wrap-up-what-an-exhausting-learning-experience.aspx#comments</comments><description>&lt;p&gt;Well, that does it for this years &lt;a href="http://www.kaizenconf.com"&gt;KaizenConf&lt;/a&gt;.&amp;nbsp; I can honestly say that I had a great time, I met some great people (nice to put faces to&amp;nbsp;twitter handles)&amp;nbsp;and shared some great stories.&amp;nbsp; What is great is that when I setout to make it to this openspace conference I had a ton of questions.&amp;nbsp; I walk away from the event with a lot of answers, a lot of gained knowledge and not surprisingly more questions.&amp;nbsp; &lt;/p&gt; &lt;p&gt;It may seem odd that I have more questions in the end then in the beginning, but that is a sign of learning.&amp;nbsp; I now know more and this additional knowledge has lead to more questions.&amp;nbsp; &lt;/p&gt; &lt;p&gt;I have posted the wrap-up comments for the 2 sessions where I was the convener (2 of my topics/sessions that I suggested were selected) and you can get them here&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://devlicio.us/blogs/derik_whittaker/archive/2008/11/01/kaizenconf-encouraging-change-w-agile-examples.aspx"&gt;Encouraging Change w/ Agile Examples&lt;/a&gt;  &lt;li&gt;&lt;a href="http://devlicio.us/blogs/derik_whittaker/archive/2008/11/01/kaizenconf-open-communication-resistance-to-change-going-with-the-staus-quo-w-reference-to-various-team-roles.aspx"&gt;Open Communication, Resistance to Change, Going with the Status quo w/ reference to various team roles&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;The output of all of the sessions are being documented in a Wiki, and you can find it &lt;a href="http://kaizenconf.pbwiki.com/"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Final thoughts on the conference&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Wow, am I exhausted.....!&amp;nbsp; I have been to my share of technology conferences, but I can say I am more exhausted after this one than any other.&amp;nbsp; The reason for this was the amount of engagement and thinking that needed to take place.&amp;nbsp; At most tech conferences you sit back and listen to someone present (or hopefully teach) on a given topic.&amp;nbsp; Not till the end does the audience have a chance to interact.&lt;/p&gt; &lt;p&gt;With this there were no planned sessions (in terms of having PPT slides or code ready) and no one person &amp;#39;lead&amp;#39; any of the sessions.&amp;nbsp; Each of the sessions were run by the group and went into the direction the group directed (aka as an open space should).&amp;nbsp; During each of these sessions you forced to get involved or you were passed over.&amp;nbsp; because of this involvement you learn a ton, but become exhausted.&lt;/p&gt; &lt;p&gt;I will take a little exhaustion for the amount of knowledge gained over the past few days. :)&lt;/p&gt; &lt;p&gt;I have to say one of the highlights of the weekend was dinner on Friday.&amp;nbsp; A few of us just decided to head back to the hotel bar for dinner and brew.&amp;nbsp; About 30 minutes after we sat down Mary and Tom Poppendieck sat down with us.&amp;nbsp; They are 2 of the nicest, sincere and down to earth people you can meet.&amp;nbsp; Even with all their knowledge and experience we (the entire table) were able to have an open and engaging conversation about lean and continuous learning.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Final thoughts in regards to the name/context change from Alt.Net to KaizenConf&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Back when the conference was announce Scott Bellware took a ton of heat for changing the name of the conference from the Alt.Net conference to the Kaizen Conference.&amp;nbsp; Many people in the community really did not see any reason for changing the name and thought that it was done for various self serving reasons.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Having been to the conference, I know understand what his goal/intent was with the conference.&amp;nbsp; This weekends openspaces was NOT about technology.&amp;nbsp; I say that with 100% sincerity.&amp;nbsp; Sure there were topics out there on Rhino, IoC and MassTransit, but that was simply one track out of 5.&amp;nbsp; The majority of the sessions were around how we can help bring change to our organizations and more towards the idea of continuous learning.&lt;/p&gt; &lt;p&gt;Till next time,&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=42865" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Conference/default.aspx">Conference</category></item><item><title>KaizenConf - Open Communication, Resistance to Change, Going with the Staus quo w/ reference to various team roles</title><link>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/01/kaizenconf-open-communication-resistance-to-change-going-with-the-staus-quo-w-reference-to-various-team-roles.aspx</link><pubDate>Sat, 01 Nov 2008 20:20:55 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:42851</guid><dc:creator>Derik Whittaker</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/rsscomments.aspx?PostID=42851</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/commentapi.aspx?PostID=42851</wfw:comment><comments>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/01/kaizenconf-open-communication-resistance-to-change-going-with-the-staus-quo-w-reference-to-various-team-roles.aspx#comments</comments><description>&lt;p&gt;Another session that I sat in on today was &amp;quot;Open communication, Resistance to change, Going with the status quo with reference to the various roles on the team &amp;quot;&lt;/p&gt; &lt;p&gt;If I could wrap up the entire session in a phrase it would be the following: &lt;blockquote&gt; &lt;p&gt;When your team feels empowerment and has passion they will be successful&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Below are my notes, sorry they are not in a long descriptive form, but they are notes :)&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Quotes:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;The product champion doesn&amp;#39;t figure out what the market wants, but brings the team to the customer&lt;br /&gt;Without a good leader, or a champion of the team your team is doomed to fail&lt;br /&gt;Quailty is building a substainable releationship&lt;br /&gt;the value of value is realitive worth&lt;br /&gt;When you do not have the fear of being fired you can become more open &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Questions:&lt;/strong&gt; &lt;ol&gt; &lt;li&gt;What are the barries to opening communication&lt;br /&gt;- Management/customer sees the release cycle/process as a tax &lt;/li&gt; &lt;li&gt;How are we defining Continous Improvement?&lt;br /&gt;- taking notices of our process our, release cycle&lt;br /&gt;- balancing various items like maintainability, without over engineering our product &lt;/li&gt; &lt;li&gt;What is value????&lt;br /&gt;- this means differnt things to different people&lt;br /&gt;- means that someone will always be unhappy&lt;br /&gt;- operations has more work with more installs -- they are unhappy&lt;br /&gt;- developers have have more pressure if they have more work load&lt;br /&gt;- one persons pain is another persons pleasure &lt;/li&gt; &lt;li&gt;How do we make change when we are capiable of influincing change, but not the permissionr &lt;br /&gt;- start local&lt;br /&gt;- start small&lt;br /&gt;- hope your ideals spread &lt;/li&gt; &lt;li&gt;How do we move from me to we&lt;br /&gt;- get buy in from all on the team goal&lt;br /&gt;- get ownership&lt;br /&gt;- have pride/passion &lt;/li&gt; &lt;li&gt;How do we get a team to become engaged or passionate&lt;br /&gt;- ownership&lt;br /&gt;- self correction, self moderation&lt;br /&gt;- foster that the project will be a success&lt;br /&gt;- stay positive &lt;/li&gt; &lt;li&gt;4 areas of improvement&lt;br /&gt;- improvement of skills on the team&lt;br /&gt;- improvement of the purpose of the product&lt;br /&gt;- improvement of the process&lt;br /&gt;- improvement of the releationships &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Till next time,&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=42851" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Conference/default.aspx">Conference</category></item><item><title>KaizenConf - Encouraging Change w/ Agile Examples</title><link>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/01/kaizenconf-encouraging-change-w-agile-examples.aspx</link><pubDate>Sat, 01 Nov 2008 16:46:48 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:42847</guid><dc:creator>Derik Whittaker</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/rsscomments.aspx?PostID=42847</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/commentapi.aspx?PostID=42847</wfw:comment><comments>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/01/kaizenconf-encouraging-change-w-agile-examples.aspx#comments</comments><description>&lt;p&gt;The first session I sat in today was titled &amp;#39;Encouraging Change w/ Agile Examples&amp;#39;.&amp;nbsp; This session was the combination of a few others and we took all the ideas and redirected into this.&amp;nbsp;&lt;/p&gt; &lt;p&gt;The intent of the session was to attempt to flush out ideas that will allow us to move our business and our development teams down the path of adopting agile.&lt;/p&gt; &lt;p&gt;The conversation was awesome, we had tons of solid feedback and we able to talk about various real word scenarios.&lt;/p&gt; &lt;p&gt;Below are my notes, sorry they are not in a long descriptive form, but they are notes :)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Resources:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Scrum and XP in the trenches&lt;br /&gt;&lt;a href="http://www.crisp.se/henrik.kniberg/ScrumAndXpFromTheTrenches.pdf"&gt;http://www.crisp.se/henrik.kniberg/ScrumAndXpFromTheTrenches.pdf&lt;/a&gt; &lt;p&gt;&lt;strong&gt;Quotes:&lt;/strong&gt; &lt;p&gt;&amp;#39;How are you going to test that?&amp;#39;&lt;br /&gt;&amp;#39;Test to reproduce bugs first&amp;#39;&lt;br /&gt;&amp;#39;If it is hard you&amp;#39;re doing it wrong&amp;#39;  &lt;p&gt;&lt;strong&gt;Questions:&lt;/strong&gt; &lt;ol&gt; &lt;li&gt;Moving a team (10 or 11) to move to scrum/xp&lt;br /&gt;- forced team to switch to scrum/xp&lt;br /&gt;- this caused 100% turn over on the team&lt;br /&gt;- forced to move into a team room&lt;br /&gt;- he laid down the law, did not waiver &lt;/li&gt; &lt;li&gt;Team with no process, no methodology&lt;br /&gt;- team struggles with lack of direction&lt;br /&gt;- team struggles with lack of delegated authority &lt;/li&gt; &lt;li&gt;Getting started with TDD/agile process&lt;br /&gt;- start by asking where are your tests&lt;br /&gt;- start by keep mentioning that tests are needed&lt;br /&gt;- using tests to explain intent of code via completed tests&lt;br /&gt;- mentoring developers&lt;br /&gt;- Small pieces, baby steps&lt;br /&gt;- explaining the value &lt;/li&gt; &lt;li&gt;What can we do that provides the most bang for the buck in the short term&lt;br /&gt;- remove scope&lt;br /&gt;- create priority of items that MUST be delivered&lt;br /&gt;- force the company to make decisions, or you will make the decision &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;General Thoughts:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Done/Releasable is defined as &amp;#39;what is good enough to be able to produce a release&amp;#39;  &lt;p&gt;Learn to use metrics to lean to convey the status of the project and how&lt;br /&gt;if they want more features in less how this may or may not be possible.  &lt;p&gt;Need to get everyone on the same page in terms of business terms.&lt;br /&gt;- how did you did do your job before we had &amp;#39;technology&amp;#39;  &lt;p&gt;&lt;strong&gt;Rant:&lt;/strong&gt; &lt;p&gt;We need to remove the term &amp;#39;The business&amp;#39; and turn it into &amp;#39;our business&amp;#39; (Tom Poppendieck on his soap box)  &lt;p&gt;&amp;nbsp; &lt;p&gt;Till next time,&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=42847" width="1" height="1"&gt;</description></item><item><title>Kaizenconf day 1 wrap up</title><link>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/01/kaizenconf-day-1-wrap-up.aspx</link><pubDate>Sat, 01 Nov 2008 11:52:03 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:42844</guid><dc:creator>Derik Whittaker</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/rsscomments.aspx?PostID=42844</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/commentapi.aspx?PostID=42844</wfw:comment><comments>http://devlicious.com/blogs/derik_whittaker/archive/2008/11/01/kaizenconf-day-1-wrap-up.aspx#comments</comments><description>&lt;p&gt;Yesterday was day 1 of this years &lt;a href="http://kaizenconf.com/"&gt;KaizenConf&lt;/a&gt; and it got started off with a bang.&amp;nbsp; I was not able to make it to most of the conferences pre-conference workshop, but I was able to make it to one.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Fluent APIs with C# - Chad Myers&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Chad put together a great workshop about how to leverage the C# language to build &lt;a href="http://martinfowler.com/dslwip/"&gt;DSL&amp;#39;s/Fluent&lt;/a&gt; Interfaces.&amp;nbsp; He walked the group through the various type of DSL&amp;#39;s and how each one can be created and used.&amp;nbsp; He did a nice job of backing up each of the DSL types with pretty simple and easy to follow examples.&amp;nbsp; By the end of the session the group really was getting into the why of DSL&amp;#39;s and how they can be beneficial to your team.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Planning the Openspaces&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;The kickoff to any openspaces conference it the planning session.&amp;nbsp; Kaizen was kicked off with a bang, Scott Bellware and Doc (sorry do not know his last name) did a great job of setting up the rules of the conference and then leading us to a great planning session.&amp;nbsp; What was really cool is that the majority of the sessions proposed where non-technical in nature (meaning there were only a few &amp;#39;how do I use XYZ technology). &lt;/p&gt; &lt;p&gt;The reason I am happy about the lack of technical sessions proposed is because the majority of the sessions are on lean, &lt;a href="http://en.wikipedia.org/wiki/Kanban"&gt;Kanban&lt;/a&gt; and general improvement topics.&amp;nbsp; And since this is a Continuous Improvement in Software Development Conference, this is exactly what I was looking for.&lt;/p&gt; &lt;p&gt;I am looking forward to today&amp;#39;s sessions and am&amp;nbsp;plan on learning how I can help to bring awareness and change to my organization.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Post Planning Beers&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Some would say that this type of conference is really about the social interactions outside the actual conference.&amp;nbsp; Typically I would agree with this and tonight was no difference.&amp;nbsp; After the planning session a few of us headed back to the hotel bar to have few drinks and great conversation.&amp;nbsp; &lt;/p&gt; &lt;p&gt;What really set this &amp;#39;beers and chat&amp;#39; session apart from many others is that the &lt;a href="http://www.poppendieck.com/"&gt;Tom and Mary Poppendieck&lt;/a&gt; joined us (if you do NOT know who they are you really need to read their books).&amp;nbsp; It was awesome to be able to pick their brains and gather years worth of insight.&amp;nbsp; If you just sit back and listen to what they have to say you would be amazed with the amount of experience and insight they have and how they are both able to convey there experiences in a clear and concise manor.&lt;/p&gt; &lt;p&gt;Another really great thing is that I am able to meet some people that I have been interacting with (via twitter, IM, etc) for many months.&amp;nbsp; It it always nice to be able to put a face to a name/twitter handle.&lt;/p&gt; &lt;p&gt;Looking forward to what todays sessions bring..... stay tuned it should be good.&lt;/p&gt; &lt;p&gt;Till next time,&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=42844" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Conference/default.aspx">Conference</category></item><item><title>.Net gets a new logo and I like it</title><link>http://devlicious.com/blogs/derik_whittaker/archive/2008/10/27/net-gets-a-new-logo-and-i-like-it.aspx</link><pubDate>Mon, 27 Oct 2008 11:56:52 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:42806</guid><dc:creator>Derik Whittaker</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/rsscomments.aspx?PostID=42806</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/commentapi.aspx?PostID=42806</wfw:comment><comments>http://devlicious.com/blogs/derik_whittaker/archive/2008/10/27/net-gets-a-new-logo-and-i-like-it.aspx#comments</comments><description>&lt;p&gt;It turns out the team over in Redmond has decided that the .Net logo needed a little sprucing up.&amp;nbsp; They have put together a pretty slick new logo and it was unveiled at the PDC.&amp;nbsp; The new logo will be referred to as the Wave.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://devlicio.us/blogs/derik_whittaker/WindowsLiveWriter/fe173c9bf05a.NetgetsanewlogoandIlikeit_6193/image%7B0%7D%5B1%5D.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="116" src="http://devlicio.us/blogs/derik_whittaker/WindowsLiveWriter/fe173c9bf05a.NetgetsanewlogoandIlikeit_6193/image%7B0%7D.png" width="240" border="0" alt="" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Here are a few links that talk about the new logo.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/msmossyblog/archive/2008/10/25/embrace-the-new-net-logo.aspx"&gt;Link 1&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.hanselman.com/blog/PDC2008NewNETLogo.aspx"&gt;Link 2&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Till next time,&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=42806" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Announcement/default.aspx">Announcement</category></item><item><title>How is interacting with your data repository in your controller 'Different' or 'Better' than doing it in your code behind?</title><link>http://devlicious.com/blogs/derik_whittaker/archive/2008/10/22/how-is-interacting-with-your-data-repository-in-your-controller-different-or-better-than-doing-it-in-your-code-behind.aspx</link><pubDate>Wed, 22 Oct 2008 12:03:04 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:42749</guid><dc:creator>Derik Whittaker</dc:creator><slash:comments>20</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/rsscomments.aspx?PostID=42749</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/derik_whittaker/commentapi.aspx?PostID=42749</wfw:comment><comments>http://devlicious.com/blogs/derik_whittaker/archive/2008/10/22/how-is-interacting-with-your-data-repository-in-your-controller-different-or-better-than-doing-it-in-your-code-behind.aspx#comments</comments><description>&lt;p&gt;Today I was looking through&amp;nbsp;a sample Asp.Net MVC application and the first thing I noticed is that one of the controllers had 4 repositories injected into the controller (hey, at least they are injected right :) ).&amp;nbsp; The code then went onto to interact with the various repositories in each of the various controller actions.&amp;nbsp; In one case a controller chatted with a single repository 5 times.....:(&lt;/p&gt; &lt;p&gt;My question is this.&amp;nbsp; How is having the controller chat with a repository different than having your code behind do so?&amp;nbsp; &lt;/p&gt; &lt;p&gt;To me this is just NOT good.&amp;nbsp; In my opinion the controller should only interact with either services (if you buy into that design pattern) or other business layer objects.&amp;nbsp; I like the idea that my controller actions are skinny (thanks for that term Chris) and contain very little &amp;#39;logic&amp;#39;.&amp;nbsp; My fear with MVC is that controller actions will turn into the click events we have today with WebForms.&lt;/p&gt; &lt;p&gt;Am I off base?&amp;nbsp; Thoughts... Comments.... Lets Debate this&lt;/p&gt; &lt;p&gt;Till next time,&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=42749" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Feedback/default.aspx">Feedback</category><category domain="http://devlicious.com/blogs/derik_whittaker/archive/tags/Opinion/default.aspx">Opinion</category></item></channel></rss>