<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Here in Flyover Country</title>
        <link>http://geekswithblogs.net/edgaralgernon/Default.aspx</link>
        <description>Talking about Project Management, Risk, and Statistics</description>
        <language>en-US</language>
        <copyright>edgaralgernon</copyright>
        <managingEditor>pmcomeau@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Here in Flyover Country</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/edgaralgernon/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Little PM side post...</title>
            <link>http://geekswithblogs.net/edgaralgernon/archive/2010/03/11/little-pm-side-post.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/edgaralgernon/archive/2010/03/11/little-pm-side-post.aspx'&gt;http://geekswithblogs.net/edgaralgernon/archive/2010/03/11/little-pm-side-post.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;When adding new team memebers... off set the ramp up time by&lt;/p&gt;
&lt;p&gt;1) having pre built machines ready and and easy method of getting the lastest tools, code base etc. &lt;br /&gt;
I'm fortunate enough to be at a client that has a machine ready built and loaded when the dev arrives, all they have to do is grab the code.&lt;/p&gt;
&lt;p&gt;2) have tasks broken down so that dependencies are as minimal as possible. In other words, to over come the mythical man month issue (as recently mentioned on slashdot) make sure the tasks you hand out have few dependencies on each other. That way the new dev is able to be productive fairly quickly.&lt;/p&gt;
&lt;p&gt;Here's our historical lead time... the bump in Jan is due to added work, by 2/18 we had added 4 new people over the last two weeks. And amazing the time starts coming down:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://gwb.blob.core.windows.net/edgaralgernon/11390/o_LeadTime0311.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;Here's our averag work time:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://gwb.blob.core.windows.net/edgaralgernon/11390/o_worktime0308.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;again time ramps up as we are adding more tasks, but then starts inching back down through out Feb and March.&lt;/p&gt;
&lt;p&gt;It's not that we beat the Mythical Man Month, and in fact I still believe the book and idea are highly relevant. But if you can break the tasks down and reduce the dependencies between the task then you can mitigate the effect.&lt;/p&gt;
&lt;p&gt;The tool used in this case is from AgileZen.com and some of the wild swings are due to inexperience with the system initially... but our average times as measured by the tool are matching real life. Also the tool appearst to measure in 24 hour days and 7 day weeks. so it isn't as bad as it looks. :-)&lt;/p&gt; &lt;img src="http://geekswithblogs.net/edgaralgernon/aggbug/138465.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>edgaralgernon</dc:creator>
            <guid>http://geekswithblogs.net/edgaralgernon/archive/2010/03/11/little-pm-side-post.aspx</guid>
            <pubDate>Thu, 11 Mar 2010 21:57:57 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/edgaralgernon/comments/138465.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/edgaralgernon/archive/2010/03/11/little-pm-side-post.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/edgaralgernon/comments/commentRss/138465.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/edgaralgernon/services/trackbacks/138465.aspx</trackback:ping>
        </item>
        <item>
            <title>minor note - app pools in iis</title>
            <link>http://geekswithblogs.net/edgaralgernon/archive/2010/02/01/minor-note---app-pools-in-iis.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/edgaralgernon/archive/2010/02/01/minor-note---app-pools-in-iis.aspx'&gt;http://geekswithblogs.net/edgaralgernon/archive/2010/02/01/minor-note---app-pools-in-iis.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;More for helping me to remember...&lt;/p&gt;
&lt;p&gt;One good reason, at least during development, for putting your web application/service in its own app pool in IIS? Recycle...&lt;/p&gt;
&lt;p&gt;There are times when you'll want to recycle, normally done by restarting IIS, to make sure it updates and recompiles against your current dlls.&lt;/p&gt;
&lt;p&gt;But in a shared environment it's not very polite to restart IIS and mix up your fellow devs.&lt;/p&gt;
&lt;p&gt;So throw the app in its own pool, problem solved, as it were. You can restart just that pool and not have to restart the whole IIS service.&lt;/p&gt;
&lt;p&gt;Again pretty minor, but useful to remember.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/edgaralgernon/aggbug/137744.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>edgaralgernon</dc:creator>
            <guid>http://geekswithblogs.net/edgaralgernon/archive/2010/02/01/minor-note---app-pools-in-iis.aspx</guid>
            <pubDate>Mon, 01 Feb 2010 19:32:39 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/edgaralgernon/comments/137744.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/edgaralgernon/archive/2010/02/01/minor-note---app-pools-in-iis.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/edgaralgernon/comments/commentRss/137744.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/edgaralgernon/services/trackbacks/137744.aspx</trackback:ping>
        </item>
        <item>
            <title>Different mindsets....</title>
            <link>http://geekswithblogs.net/edgaralgernon/archive/2009/12/21/different-mindsets.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/edgaralgernon/archive/2009/12/21/different-mindsets.aspx'&gt;http://geekswithblogs.net/edgaralgernon/archive/2009/12/21/different-mindsets.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I find it interesting how people think... what makes sense to them, et.c so...&lt;/p&gt;
&lt;p&gt;There's how I think...&lt;/p&gt;
&lt;p style="margin-left: 40px"&gt;SomeObject.ListOfPeople.FindAll(&lt;/p&gt;
&lt;p style="margin-left: 40px"&gt;type =&amp;gt; type.GetType().Equals(&lt;span style="color: #0000ff"&gt;typeOf&lt;/span&gt;(&lt;span style="color: #008080"&gt;Individual&lt;/span&gt;))).ForEach&lt;/p&gt;
&lt;p style="margin-left: 40px"&gt;(person =&amp;gt; { DoSomethingWithPerson(arg1, arg2);});&lt;/p&gt;
&lt;p&gt;Pretty straight forward lambd Final all of x type in this collection and then do something to each one found. But coworker suggested this instead:&lt;/p&gt;
&lt;p style="margin-left: 40px"&gt;(&lt;span style="color: #0000ff"&gt;from&lt;/span&gt; person &lt;span style="color: #0000ff"&gt;in &lt;/span&gt;SomeObject.ListOfPeople&lt;/p&gt;
&lt;p style="margin-left: 40px"&gt;&lt;span style="color: #0000ff"&gt;where&lt;/span&gt; person &lt;span style="color: #0000ff"&gt;is&lt;/span&gt; &lt;span style="color: #008080"&gt; Individual&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left: 40px"&gt;&lt;span style="color: #0000ff"&gt;select &lt;/span&gt;person &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; &lt;span style="color: #008080"&gt;Individual&lt;/span&gt;).ToList().ForEach(person =&amp;gt; {DoSomethingWith Person(arg1, arg2);});&lt;/p&gt;
&lt;p&gt;So both do the same thing... and there's no performance difference, just depending on the coder one way is more readable than the other. I happen to like lambdas but I'm on team where the devs find the more SQLish style to be better (sorry blanking on the formal LINQ name).&lt;/p&gt;
&lt;p&gt;One thing that sinks my lambda though. ListOfPeople has to be an ObservableCollection&amp;lt;T&amp;gt; and that doesn not support the FindAll method, unlike the generic List&amp;lt;T&amp;gt;.  Digging a bit ObservableColleciton inherits from Collection&amp;lt;T&amp;gt; (makes sense) which is more limited than List&amp;lt;T&amp;gt; in methods provided. c'est la vie.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/edgaralgernon/aggbug/137156.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>edgaralgernon</dc:creator>
            <guid>http://geekswithblogs.net/edgaralgernon/archive/2009/12/21/different-mindsets.aspx</guid>
            <pubDate>Mon, 21 Dec 2009 15:52:58 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/edgaralgernon/comments/137156.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/edgaralgernon/archive/2009/12/21/different-mindsets.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/edgaralgernon/comments/commentRss/137156.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/edgaralgernon/services/trackbacks/137156.aspx</trackback:ping>
        </item>
        <item>
            <title>WCF and Brownfield development (soon to be an on going series...)</title>
            <link>http://geekswithblogs.net/edgaralgernon/archive/2009/12/09/wcf-and-brownfield-development-soon-to-be-an-on-going.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/edgaralgernon/archive/2009/12/09/wcf-and-brownfield-development-soon-to-be-an-on-going.aspx'&gt;http://geekswithblogs.net/edgaralgernon/archive/2009/12/09/wcf-and-brownfield-development-soon-to-be-an-on-going.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Mainly going to use this as notes and such of what were discovering by overlaying WCF on an existing application.&lt;br /&gt;
&lt;br /&gt;
So the set up...&lt;br /&gt;
In existence is...&lt;br /&gt;
1) a working web application&lt;br /&gt;
2) a server back end to support the web app (that we get to use for our needs)&lt;br /&gt;
3) a relatively complex hierarchy of classes (e.g. a inherits from b inherits from c, some interfaces are also referenced by c, as well as complex types.)&lt;br /&gt;
&lt;br /&gt;
Our app will be a client/server application where the client will be in various offices located across a large geographic area. They communicate with the central office via a decent size WAN. Of course to do this communication we'll be using WCF.&lt;br /&gt;
&lt;br /&gt;
O.k. issue number one... &lt;br /&gt;
we have a series of forms that have back end business objects with 3 layers of inheritance.&lt;br /&gt;
&lt;br /&gt;
So first obvious "solution"...&lt;br /&gt;
&lt;br /&gt;
Make a facade and have the service do the translation.&lt;br /&gt;
&lt;br /&gt;
In other words look at the UI end and create a simplified object model based on that. One that will work easily as a data contract in WCF.&lt;br /&gt;
&lt;br /&gt;
Then on the service end translate the incoming data into the needed business objects.&lt;br /&gt;
&lt;br /&gt;
Upside - good separation,  don't have to touch business end&lt;br /&gt;
Downside - could be lot of upfront work if you're app will be doing a lot of back and forth between on screen and the client.&lt;br /&gt;
&lt;br /&gt;
O.k. yes I started with the uber easy one... next what tools you can use if you have to serialize the actual business objects.&lt;br /&gt;
&lt;br /&gt;
oh and code examples... as the above is just off the top of my head.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/edgaralgernon/aggbug/136846.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>edgaralgernon</dc:creator>
            <guid>http://geekswithblogs.net/edgaralgernon/archive/2009/12/09/wcf-and-brownfield-development-soon-to-be-an-on-going.aspx</guid>
            <pubDate>Wed, 09 Dec 2009 18:39:02 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/edgaralgernon/comments/136846.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/edgaralgernon/archive/2009/12/09/wcf-and-brownfield-development-soon-to-be-an-on-going.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/edgaralgernon/comments/commentRss/136846.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/edgaralgernon/services/trackbacks/136846.aspx</trackback:ping>
        </item>
        <item>
            <title>Binding and Fusion Log</title>
            <link>http://geekswithblogs.net/edgaralgernon/archive/2009/10/27/binding-and-fusion-log.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/edgaralgernon/archive/2009/10/27/binding-and-fusion-log.aspx'&gt;http://geekswithblogs.net/edgaralgernon/archive/2009/10/27/binding-and-fusion-log.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Having binding issues? No not that sort...&lt;/p&gt;
&lt;p&gt;So more for my own poor memory, we have a project where references will throw errors like "T&lt;font face="Arial"&gt;he located assembly's manifest definition does not match the assembly reference.&lt;/font&gt;" Not terribly useful.&lt;/p&gt;
&lt;p&gt;But MS has a tool that can aid in diagnosing these issues, Fusion Log.&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Open up a VS (2k8 or 2k10) command prompt. &lt;/li&gt;
    &lt;li&gt;Type fuslogvw.exe &lt;/li&gt;
    &lt;li&gt;You should now see:&lt;br /&gt;
    &lt;img height="252" alt="Fusion Log Blank" width="500" src="http://gwb.blob.core.windows.net/edgaralgernon/fuslogBlank.JPG" /&gt; &lt;/li&gt;
    &lt;li&gt;Next run your program, this can even do this from a test project. To isolate the issue just run the &lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;relevant&lt;/span&gt; test method via "Run Tests in Current Context" &lt;/li&gt;
    &lt;li&gt;Click on the Refresh button and the list of bindings should show up:&lt;br /&gt;
    &lt;img height="252" alt="Fusion Log w/ Data" width="500" src="http://gwb.blob.core.windows.net/edgaralgernon/fuslogFilledIn.JPG" /&gt; &lt;/li&gt;
    &lt;li&gt;Highlight an entry and click on View Log. It will give more details about what was loaded and hopefully a better error message for diagnosing why the module isn't loading. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That's it for now... &lt;/p&gt; &lt;img src="http://geekswithblogs.net/edgaralgernon/aggbug/135750.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>edgaralgernon</dc:creator>
            <guid>http://geekswithblogs.net/edgaralgernon/archive/2009/10/27/binding-and-fusion-log.aspx</guid>
            <pubDate>Tue, 27 Oct 2009 18:24:46 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/edgaralgernon/comments/135750.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/edgaralgernon/archive/2009/10/27/binding-and-fusion-log.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/edgaralgernon/comments/commentRss/135750.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/edgaralgernon/services/trackbacks/135750.aspx</trackback:ping>
        </item>
        <item>
            <title>Welcome to the tech blog...</title>
            <link>http://geekswithblogs.net/edgaralgernon/archive/2009/10/16/welcome-to-the-tech-blog.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/edgaralgernon/archive/2009/10/16/welcome-to-the-tech-blog.aspx'&gt;http://geekswithblogs.net/edgaralgernon/archive/2009/10/16/welcome-to-the-tech-blog.aspx&lt;/a&gt;&lt;/p&gt;Initial topic over the next several posts will revolve around the Unity framework... The goal is to try to do an intro to it, and then use that as future speaking notes...&lt;br /&gt;
&lt;br /&gt;
There is a second blog for the exercise minded over at edgaralgernon.blogspot.com. That one will follow my sorry adventures in running this winter (along with indoor cycling etc... and the occasional political rant.)&lt;br /&gt;
&lt;br /&gt;
So next time, Hello Unity. &lt;img src="http://geekswithblogs.net/edgaralgernon/aggbug/135500.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>edgaralgernon</dc:creator>
            <guid>http://geekswithblogs.net/edgaralgernon/archive/2009/10/16/welcome-to-the-tech-blog.aspx</guid>
            <pubDate>Fri, 16 Oct 2009 15:12:04 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/edgaralgernon/comments/135500.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/edgaralgernon/archive/2009/10/16/welcome-to-the-tech-blog.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/edgaralgernon/comments/commentRss/135500.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/edgaralgernon/services/trackbacks/135500.aspx</trackback:ping>
        </item>
    </channel>
</rss>