<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>Devteach 2007</title>
        <link>http://geekswithblogs.net/mucman/category/6627.aspx</link>
        <description>Summaries of my Devteach experience in Montreal.</description>
        <language>en-CA</language>
        <copyright>Scott Muc</copyright>
        <managingEditor>scottmuc@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Devteach - TDD Workshop</title>
            <link>http://geekswithblogs.net/mucman/archive/2007/05/20/112621.aspx</link>
            <description>&lt;p&gt; The workshop presenters were &lt;a href="http://codebetter.com/blogs/scott.bellware/"&gt;Scott Bellware&lt;/a&gt; and &lt;a href="http://www.jpboodhoo.com/blog/"&gt;Jean-Paul Boodhoo&lt;/a&gt;. Both developers that I highly respect. There were also some amazing developers in attendance like &lt;a href="http://weblogs.asp.net/rosherove/"&gt;Roy Osherove&lt;/a&gt;, &lt;a href="http://www.ayende.com/"&gt;Oren Enei&lt;/a&gt;, and &lt;a href="http://udidahan.weblogs.us/"&gt;Udi Dahan&lt;/a&gt;. I was hoping that the workshop didn't go over my head but I was happy to see that they introduced the concepts at an easy to follow pace. &lt;/p&gt;
&lt;p&gt; Jean-Paul said that people who understand &lt;a href="http://en.wikipedia.org/wiki/Test-driven_development"&gt;TDD&lt;/a&gt; usually have an "ah ha!" moment. I think I had that moment during Scott's session on &lt;a href="http://domaindrivendesign.org/"&gt;Domain Driven Design&lt;/a&gt;. Everytime I saw TDD I just saw it as a bunch of tests that validate the &lt;a href="http://en.wikipedia.org/wiki/Business_logic"&gt;business logic&lt;/a&gt; of the code. I did not grasp that it's a design practice not just validation testing. Understand this I suddenly became very self-conscious about the code I've written. It's not easy to test which is usually a sign of bad code. As a programmer you really need to check your ego out the door. I've still got code from years ago that I would cringe if I had to work with it today. I'm sure I'll cringe when I see the code that I write now five years in the future. &lt;/p&gt;
&lt;p&gt; The most enjoyable part of the workshop and the conference as a whole was listening in on the conversations of the other developers. I was really happy to hear that their throught processes are similar to mine. I always feel that these developer blogs that I read make things sound so easy. Well, their posts are usually done after a lot of thought and discussion. It made me quite comfortable to see developers argue the merits of the method names they've chosen. Jean-Paul and Scott were doing pair programming in the workshop and even they disagreed on many coding schemes each other preferred. I'm glad to know I'm not the only one who loves to pick the perfect method names for their classes. &lt;/p&gt;
&lt;p&gt; Without any fulltime developers at &lt;a href="http://radio3.cbc.ca/"&gt;Radio 3&lt;/a&gt; it's hard to see how my code measures up to other developers. My experience at this conference really helped me realize that I'm heading in the right direction with my coding practices, but it has also pointed out some areas where I need a lot of improvement which is exactly what I wanted to get out the conference. At first I thought I was dissapointed in the sessions because I was quite familiar with the material, but the conference is called Devteach for a reason. The insites from other developers on these subjects is where the value is and I definitely am not dissapointed from that perspective. &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112621"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112621" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/mucman/aggbug/112621.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Muc</dc:creator>
            <guid>http://geekswithblogs.net/mucman/archive/2007/05/20/112621.aspx</guid>
            <pubDate>Mon, 21 May 2007 00:32:44 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mucman/comments/112621.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mucman/archive/2007/05/20/112621.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mucman/comments/commentRss/112621.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mucman/services/trackbacks/112621.aspx</trackback:ping>
        </item>
        <item>
            <title>Devteach 2007 - Day 3</title>
            <link>http://geekswithblogs.net/mucman/archive/2007/05/17/112557.aspx</link>
            <description>&lt;h3&gt;The Ajax Revolution with &lt;a href="http://weblogs.asp.net/derekh/"&gt;Derek Hatchard&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt; I was hoping to hear about some more advanced talk about the trials and tribulations of using &lt;a href="http://en.wikipedia.org/wiki/AJAX"&gt;Ajax&lt;/a&gt; in this session but it turned out to be a basic demo of the simple &lt;a href="http://ajax.asp.net/ajaxtoolkit/"&gt;AjaxToolkit&lt;/a&gt; controls and some Script.aculo.us effects. Nothing was new to me so there's not much to talk about. If you've seen the AjaxControlToolkit demo page and the &lt;a href="http://script.aculo.us/"&gt;Script.aculo.us&lt;/a&gt; demos then you've seen it all. &lt;/p&gt;
&lt;h3&gt;Security Through Partial Trust with &lt;a href="http://sqljunkies.com/WebLog/donkiely/"&gt;Don Kiely&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt; Security is always an issue with web development and I always like to keep it in mind when developing. &lt;a href="http://msdn2.microsoft.com/en-us/library/ms364059(vs.80).aspx"&gt;Partial trust&lt;/a&gt; is a layer of security that runs on top of &lt;a href="http://en.wikipedia.org/wiki/Managed_code"&gt;managed code&lt;/a&gt;. Security in .Net involved &lt;a href="http://msdn2.microsoft.com/en-us/library/ka9xc0ek(VS.80).aspx"&gt;Code Groups&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/en-us/library/ezf53bba(VS.80).aspx"&gt;Security Policies&lt;/a&gt;, and &lt;a href="http://msdn2.microsoft.com/en-us/library/wyts434y.aspx"&gt;Trust Levels&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt; The default trust level for an application domain can be edited in the &lt;a href="http://msdn2.microsoft.com/en-us/library/zhs35b56.aspx"&gt;securityPolicy&lt;/a&gt; element in the machine.config. The &lt;a href="http://msdn2.microsoft.com/en-us/library/tkscy493.aspx"&gt;trust&lt;/a&gt; element can be changed and will then follow the policies dictated in the policy config files. Primary benefit of medium trust is that it does not trust unmanaged code and also sandboxes the file IO to the Application Directory. &lt;/p&gt;
&lt;p&gt; The &lt;a href="http://msdn2.microsoft.com/en-us/library/xbk2s3fa(VS.80).aspx"&gt;permission sets&lt;/a&gt; are determined by the code group that is discovered via the evidence exposed by the assembly. Assemblies that get loaded must match a Code Group for the trust level. &lt;/p&gt;
&lt;p&gt; Adjusting the trust level involved editing the web site web.config and changing the trustLevel element. This would be cool to add to our website but we deal with so many different directories that it would take a long time to change the security and get the website working again. &lt;/p&gt;
&lt;p&gt; The permission files are simply &lt;a href="http://en.wikipedia.org/wiki/Serialization"&gt;serialized&lt;/a&gt; forms of the Permission object. This means you can write apps to create PermissionSets which gives you Intellisense if using an IDE. Get the resulting XML and add that to the policy file. &lt;/p&gt;
&lt;p&gt; This stuff is freaking cool, but I can see why it hasn't gone mainstream. There's a lot of complicated setup and configuration involved that isn't obvious unless you really know what you're doing.  &lt;/p&gt;
&lt;p&gt; I managed to win a &lt;a href="http://www.microsoft.com/mspress/books/9989.aspx"&gt;book&lt;/a&gt; which was nice as well! &lt;/p&gt;
&lt;h3&gt;Power ASP.NET Debugging with &lt;a href="http://sqljunkies.com/WebLog/donkiely/"&gt;Don Kiely&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt; The debugging features of VS are more impressive than I was expecting. I've used debugging when writing applications in school, but never realized that powerful debugging would be at such a level for web applications. Unfortunately it does mean switching my dev environment to VS, but I'll do some research to see if Sharp Develop can perform similar debug actions. &lt;/p&gt;
&lt;h3&gt;Introduction to MS Build with &lt;a href="http://claudiolassala.spaces.live.com/"&gt;Claudio Lassala&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I'm a big fan of &lt;a href="http://nant.sourceforge.net/"&gt;NAnt&lt;/a&gt; and I heard &lt;a href="http://msdn2.microsoft.com/en-us/library/0k6kkbsd.aspx"&gt;MSBuild&lt;/a&gt; was similar so I thought this session would be interesting to see if there are any differences that would compel me to switch. At then end of the session I got the impression that MSBuild was almost exactly like NAnt except with some keywords changed around. I think I'll stick with NAnt as it works well in the &lt;a href="http://www.mono-project.com/Main_Page"&gt;Mono&lt;/a&gt; community. If two tools do something exactly the same and implement it just as well, the next thing I always use to measure the usefulness of the application is its portability. I probably should have asked about Mono and MSBuild support but I was getting groggy and I'm in no hurry to switch from a build framework that works great. &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112557"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112557" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/mucman/aggbug/112557.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Muc</dc:creator>
            <guid>http://geekswithblogs.net/mucman/archive/2007/05/17/112557.aspx</guid>
            <pubDate>Thu, 17 May 2007 16:57:47 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mucman/comments/112557.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mucman/archive/2007/05/17/112557.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mucman/comments/commentRss/112557.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mucman/services/trackbacks/112557.aspx</trackback:ping>
        </item>
        <item>
            <title>Devteach 2007 - Day 2</title>
            <link>http://geekswithblogs.net/mucman/archive/2007/05/16/112531.aspx</link>
            <description>&lt;h3&gt;Tips &amp;amp; Tricks to Boost Up Productivity with &lt;a href="http://claudiolassala.spaces.live.com/"&gt;Claudio Lassala&lt;/a&gt;&lt;br /&gt;
&lt;/h3&gt;
&lt;p&gt; The first set of sessions of the day didn't really interest me greatly. I enjoyed Camillo's style of presenting yesterday so I figured I would check out the session on productivity. &lt;/p&gt;
&lt;p&gt;The first half covered many things that I already know and use. Using the quicklaunch bar, keyboard shortcuts, &lt;a href="http://www.bayden.com/SlickRun/"&gt;slickrun&lt;/a&gt;, &lt;a href="http://www.microsoft.com/technet/sysinternals/default.mspx"&gt;sysinternal&lt;/a&gt; apps, folder organization were concepts/apps that I already follow/run. &lt;/p&gt;
&lt;p&gt; There were a couple nuggets that I had never known though. One is great for capturing the text of a dialog box. So many times you see a cryptic error message and you want to copy the text and send it to someone. The text can't be highlighted, but you can still just hit CTRL+C when the dialog is active and the text in the dialog will go into the clipboard. Secondly, if you want to do a batch rename of files in a directory (common with images off of a camera) you can do a CTRL+A in Windows Explorer then hit F2. When you rename the first file, all files in the directory will be renamed with a counter appended to the name.  &lt;/p&gt;
&lt;h3&gt;Behaviour Driven Design with &lt;a href="http://geekswithblogs.net/sbellware/Default.aspx"&gt;Scott Bellware&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt; Scott began the presentation emphasizing that &lt;a href="http://en.wikipedia.org/wiki/Unit_testing"&gt;Unit tests&lt;/a&gt; are documentation, and &lt;a href="http://en.wikipedia.org/wiki/Test-driven_development"&gt;TDD&lt;/a&gt; is design. The rest of the session was spent explaining these points. &lt;/p&gt;
&lt;p&gt; Keeping in mind that tests are documentation is something that must be thought about when writing tests. It was cool to see Scott go through some test code and clean it up so that its purpose was clear and concise. It was funny to see massive method names for the tests but it made sense. Instead of a test like GetOrderTotalTest it turned into A_10_Percent_Discount_Should_Be_Applied_To_All_Orders_Over_100_Dollars_Where_The_Customer_Has_Purchased_1000_Dollars_Of_Orders_In_The_Past. Who cares how long the method is since it's a test method not part of some API. It clearly states the business rule and the test will determine if the rule is being followed. &lt;/p&gt;
&lt;p&gt; Another interesting point of about the testing approach is that it forces good code development. In order to make code testable it has to be loosely coupled from the data access code in order to be mocked and tested. With these ideas a little clearer I am looking forward to attempt some of these patterns. &lt;/p&gt;
&lt;h3&gt;Interaction based testing With Rhino Mocks with &lt;a href="http://www.ayende.com/"&gt;Oren Eini&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt; This session went a little over my head. I've played with &lt;a href="http://www.ayende.com/projects/rhino-mocks.aspx"&gt;Rhino Mocks&lt;/a&gt; a bit a home but that was with the most trivial of examples. Oren is the author of Rhino Mocks so perhaps his pace was a bit fast because he knows it inside and out. Or it could have been that watching someone develop with &lt;a href="http://www.jetbrains.com/resharper/"&gt;Resharper&lt;/a&gt; was like watching a robot. The dude was that fast at using it. &lt;/p&gt;
&lt;p&gt;Unfortunately I didn't get as much from this session as I would have hoped but that was because of my own limited knowledge in the area. The advantages of testing using mocks are the following: &lt;a href="http://en.wikipedia.org/wiki/Dependency_injection"&gt;Dependency Injection&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Inversion_of_Control"&gt;Inversion of Control&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Interface_(computer_science)"&gt;Programming to Interfaces&lt;/a&gt;, Separation of Concerns. The first two concepts are relatively new to me, but the second pair are things that I've been attempting to do but now have a better method of trying to design with those concepts in mind. &lt;/p&gt;
&lt;h3&gt;Table and Index Partitioning with &lt;a href="http://www.sqljunkies.com/WebLog/rheiges/default.aspx"&gt;Rick Heiges&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt; Not really as practical as I had hoped for applications I work on but was interesting nevertheless. The session covered partitioning the data of a table for easy archive and potential speed optimizations. The discussion was more geared towards large databases so the tips didn't really pertain to Radio 3... unless we start adding billions of bands to our database.&lt;/p&gt;
&lt;h3&gt;Rapid development using Monorail with &lt;a href="http://www.ayende.com/"&gt;Oren Eini&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt; I *heart* Monorail. The more I see &lt;a href="http://www.castleproject.org/monorail/index.html"&gt;Monorail&lt;/a&gt; in action and the more I play with it the more it seems like it's too good to be true. I'm ready to dump the &lt;a href="http://msdn2.microsoft.com/en-us/library/ms178472.aspx"&gt;page life cycle&lt;/a&gt; of &lt;a href="http://msdn2.microsoft.com/en-us/library/ms973868.aspx"&gt;webforms&lt;/a&gt;. Oren's first example of showing what was wrong with the whole Page_Load() event was something that I've sort of been questioning as well. Too much code goes there with too many different concerns. &lt;br /&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112531"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112531" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/mucman/aggbug/112531.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Muc</dc:creator>
            <guid>http://geekswithblogs.net/mucman/archive/2007/05/16/112531.aspx</guid>
            <pubDate>Wed, 16 May 2007 13:40:43 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mucman/comments/112531.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mucman/archive/2007/05/16/112531.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mucman/comments/commentRss/112531.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mucman/services/trackbacks/112531.aspx</trackback:ping>
        </item>
        <item>
            <title>Devteach 2007 - Day 1</title>
            <link>http://geekswithblogs.net/mucman/archive/2007/05/15/112517.aspx</link>
            <description>&lt;p&gt; The &lt;a href="http://devteach.com/"&gt;Devteach&lt;/a&gt; conference has started, During breakfast I was seeing all the legends of the .Net world. It was pretty cool to be hanging out with the likes of &lt;a href="http://weblogs.asp.net/rosherove/"&gt;Roy Osherove&lt;/a&gt;, &lt;a href="http://codebetter.com/blogs/jeremy.miller/"&gt;Jeremy Miller&lt;/a&gt;, &lt;a href="http://www.jpboodhoo.com/blog/"&gt;Jean-Paul Boodhoo&lt;/a&gt;, &lt;a href="http://geekswithblogs.net/sbellware/Default.aspx"&gt;Scott Bellware&lt;/a&gt;, &lt;a href="http://www.ayende.com/Blog/"&gt;Oren Eini&lt;/a&gt;, &lt;a href="http://www.sqljunkies.com/weblog/amachanic/"&gt;Adam Machanic&lt;/a&gt;, &lt;a href="http://www.intellectualhedonism.com/"&gt;Carl Franklin&lt;/a&gt;, &lt;a href="http://www.markusegger.com/"&gt;Markus Egger&lt;/a&gt;, and &lt;a href="http://geekswithblogs.net/mcastro/Default.aspx"&gt;Miguel Castro&lt;/a&gt;! Anyways, here's a synopsis of day number 1. &lt;/p&gt;
&lt;h3&gt;Agile Development with &lt;a href="http://weblogs.asp.net/rosherove/"&gt;Ray Osherove&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt; I was really excited to see the Agile development track in the conference. Roy came in the room wearing a shirt that said "Geek" on the front and began the session by playing his guitar and singing the countdown to the start of the conference. &lt;/p&gt;
&lt;p&gt; This session was a Q&amp;amp;A period with Roy about &lt;a href="http://en.wikipedia.org/wiki/Agile_software_development"&gt;Agile development&lt;/a&gt;. Even the session was done in an Agile fashion. People spoke out questions and then the group as a whole determine the priority of the questions. The top question was about Agile Estimation practices. Just like regular software estimation the Agile way is just as tough. Instead of looking at the long term, Agile tries to estimate the length of  development for single tasks and make sure those estimates are as accurate as possible. We're talking about something that will span a weeks time. The other interesting comment was how estimation should be done by everyone on the team. If I say something will take 2 days,  Rahim will say it will take me 6 days, and Nicole will say it will take me 4 days. The Agile way will have us discuss our rationale and adjust our estimations until there is some sort of consensus.  &lt;/p&gt;
&lt;p&gt; There was also a shorter discussion on distributed teams. The major thing I got from that is that anyone in remote locations should be using some sort of source control. The session discussed &lt;a href="http://www.martinfowler.com/articles/continuousIntegration.html"&gt;Continuous Integration&lt;/a&gt;, but that may be too much for the few developers we have. &lt;/p&gt;
&lt;p&gt;Lastly the topic on getting managers to adopt agile techniques was discussed. The main point was that in order to these techniques adopted you have to have some sort of expert as a mentor or trainer first. The ultimate goal of Agile development is higher quality code. Agile might not be as fast at first to develop under, but in the long run you gain productivity due to the quality of your code. The less time fixing bugs means more time implementing new features. &lt;/p&gt;
&lt;h3&gt;Rules for Agile Design with &lt;a href="http://codebetter.com/blogs/jeremy.miller/default.aspx"&gt;Jeremy Miller&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt; The session started off with some points that I really liked. Embrace change and write code that can change. Easier said than done! The session was a good reminder of the many faults in my programming. The biggest problem is not following the "Good enough design" rule. There are times where my implementation is good enough and I should move on to the next task, but part of me always wants to make my code perfect. &lt;/p&gt;
&lt;p&gt; A couple themes that run through Agile practices are doing small tasks one at a time. No multi-tasking which goes into the next theme which is to minimize wasted motion, meaning that the focus is on the documented task and not dilly-dallying too long on extraneous programming efforts. &lt;/p&gt;
&lt;p&gt; In order to make Agile programming work, you need to work vertically. This is one thing that I think I do already. This means that you write your &lt;a href="http://en.wikipedia.org/wiki/Data_access_layer"&gt;DAL&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Business_logic_layer"&gt;BLL&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/User_interface"&gt;UI&lt;/a&gt; at the same time. The more your UI uses the BLL and the BLL uses the DAL you will see deficiencies in each layer easier than if you write the entire DAL all in one go. &lt;/p&gt;
&lt;h3&gt;RSS, Podcasting and Syndication with &lt;a href="http://www.intellectualhedonism.com/"&gt;Carl Franklin&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt; I had high hopes for this session but my experience with the &lt;a href="http://radio3.cbc.ca/podcasting/podcastplaylist.aspx"&gt;CBC Radio 3 podcast&lt;/a&gt; went over and above was was discussed in this session. It was disappointing to see the code samples used a search and replace template in an ASPX page. Our &lt;a href="http://en.wikipedia.org/wiki/RSS_(file_format)"&gt;RSS&lt;/a&gt; is outputted with an &lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.xmltextwriter.aspx"&gt;XmlTextWriter&lt;/a&gt; in order to guarantee correctly encoded output and and uses an &lt;a href="http://msdn2.microsoft.com/en-us/library/5c67a8bd(VS.71).aspx"&gt;HttpHandler&lt;/a&gt; (for website RSS) since there's no reason to load up the entire System.Web.Page class to output some XML. &lt;/p&gt;
&lt;p&gt; One thing that I did learn in the session was that Windows Vista has what is called a &lt;a href="http://msdn2.microsoft.com/en-us/library/ms686418.aspx"&gt;Common Feeds List&lt;/a&gt;. This allows Windows applications to share feed data between each other. Carl also talks about a web service call &lt;a href="http://www.feedburner.com/fb/a/home"&gt;Feed Burner&lt;/a&gt; which was really interesting because it is a full featured feed publisher. It makes sure feeds are valid before going public and has stat tracking features and a stylesheet for the feed. &lt;/p&gt;
&lt;h3&gt;Designing Highly Concurrent SQL Database Applications with &lt;a href="http://www.sqljunkies.com/weblog/amachanic/"&gt;Adam Machanic&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt; This was another session where nothing was really new. Adam went over the common concurrency control solutions that I learned at school. What was interesting about the session was the he implemented &lt;a href="http://en.wikipedia.org/wiki/Strict_two-phase_locking"&gt;pessimistic&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Optimistic_concurrency_control"&gt;optimistic&lt;/a&gt;, and &lt;a href="http://en.wikipedia.org/wiki/Multiversion_concurrency_control"&gt;multi-version concurrency control&lt;/a&gt; in the data model. He also demoed an application call the &lt;a href="http://www.datamanipulation.net/sqlquerystress/"&gt;SQL Stress Test&lt;/a&gt; which might be a tool that we could use to test load issues with certain queries! &lt;/p&gt;
&lt;h3&gt;New Features in C# 3.0 with &lt;a href="http://claudiolassala.spaces.live.com/"&gt;Claudio Lassala&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt; The last session of the day wasn't anything new but it's always good to hear material in spoken form rather than reading blogs and articles. Claudio put on a great presentation the highlighted all the aspects of C# 3.0 that were used to enable &lt;a href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx"&gt;LINQ&lt;/a&gt;. These features are: Automatic properties, Type Inference, Extension methods, Lambda Expressions, Expression Trees, Object Initializers, Anonymous Types. Near the end he explained how in a 4 line LINQ expression it utilized 4 of these new features! I thought that was a pretty cool way to summarize the session. Claudio also had a great sense of humour which is best represented by this &lt;a href="http://muc-central.com/images/etree.jpg"&gt;slide&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112517"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112517" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/mucman/aggbug/112517.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Muc</dc:creator>
            <guid>http://geekswithblogs.net/mucman/archive/2007/05/15/112517.aspx</guid>
            <pubDate>Tue, 15 May 2007 23:57:15 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mucman/comments/112517.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mucman/archive/2007/05/15/112517.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/mucman/comments/commentRss/112517.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mucman/services/trackbacks/112517.aspx</trackback:ping>
        </item>
    </channel>
</rss>