<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>Tiago Pascoal</title>
        <link>http://agilior.pt/blogs/tiago.pascoal/Default.aspx</link>
        <description>The only person who can truly persuade you is yourself. You must turn the issues over in your mind at leisure, consider the many arguments, let them simmer, and after a long time turn your preferences into convictions.Milton Friedman</description>
        <language>en-US</language>
        <copyright>Tiago Pascoal</copyright>
        <managingEditor>tiago.pascoal@agilior.pt</managingEditor>
        <generator>Subtext Version 1.9.0.27</generator>
        <image>
            <title>Tiago Pascoal</title>
            <url>http://agilior.pt/blogs/images/RSS2Image.gif</url>
            <link>http://agilior.pt/blogs/tiago.pascoal/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Visual Studio Export Templates and conditional inclusion of content</title>
            <link>http://agilior.pt/blogs/tiago.pascoal/archive/2009/05/31/8094.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;Visual Studio templates are a great way to give you an head start with code that has a lot of boilerplate code. &lt;/p&gt;  &lt;p&gt;In fact you may already be using project templates withouth knowing. :-) When do option &lt;em&gt;Open New Project&lt;/em&gt; in Visual Studio and select a project type (Windows Application, Console Application,etc) you are in fact selecting the project template that will be used to generate your project skeleton. This project skeleton not only includes some code/data files but it also includes the references to the .Net assemblies that your particular project type needs.&lt;/p&gt;  &lt;p&gt;If you are curious of how out of the box project template looks like you can find them at:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;VS 2005 - %ProgramFiles%\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates&lt;/li&gt;    &lt;li&gt;VS 2008 - %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Visual Studio not only provides you with a great number of project templates out of the box, but you can also write your own project templates&lt;/p&gt;  &lt;p&gt;If you don’t want to spend time writing your project template you can find that a lot of people make them freely available on the net. For example &lt;a href="http://msmvps.com/blogs/vstsblog/"&gt;Team System MVP Neno Loje&lt;/a&gt; created a project template that you can use to kickstart &lt;a href="http://msmvps.com/blogs/vstsblog/archive/2009/01/14/download-visual-studio-2008-project-template-for-tfs-utilities.aspx"&gt;Team System Utilities&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;You can create your own project by hand (which involves some labor) or you can create your project like you regularly do. Create all the boilerplate code, include all the references,all your content and then use that project as your project template by exporting it to a project template using the Export Template wizard (available in &lt;strong&gt;File-&amp;gt;Export as Template&lt;/strong&gt;)&lt;/p&gt;  &lt;p&gt;I don’t want to get into much details of how you can create project templates. Either by hand or using the export option. There is plenty of information about that already.&lt;/p&gt;  &lt;p&gt;You can read some fine information about it on these articles:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc188697.aspx"&gt;Create Reusable Project And Item Templates For Your Development Team&lt;/a&gt; – What are project/item templates and how you can create them. This should be enough to get you started. Although creating your own wizards it a little bit light.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeproject.com/KB/codegen/Templates.aspx"&gt;Visual Studio 2005 Project And Item Templates&lt;/a&gt; – How to create project/item templates.  The author explains the inner workings of project templates, how you can create them by hand, using the export wizard. It also explains how to include your own wizard and a even how to create an installer for your project template (however this is only needed if your project template has code that needs to by installed in the GAC (eg: your own wizards). If it’s only the template you can get away with the much easier VS Studio Content Installer VSI files)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://badcorporatelogo.spaces.live.com/blog/cns!43EB71B104A2D711!186.entry"&gt;Custom Project Templates for XNA Game Studio 2.0&lt;/a&gt; – Not only explains how to export project templates. But also explains some inner working of project templates by explaining how you can merge two different project templates. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms246580.aspx"&gt;How to: Package Community Components to Use the Visual Studio Content Installer&lt;/a&gt; – How to create a VS content installer file (VSI) to easily install your project templates&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Not to get back to the real intent of this post. :-) Conditional inclusion of content. &lt;/p&gt;  &lt;p&gt;Starting with VS 2008 your project templates can have content that is only included &lt;strong&gt;if a certain condition is met&lt;/strong&gt;. This is a simple IF condition and all you can do is comparing the value of a parameter to a value. &lt;/p&gt;  &lt;p&gt;for this you simple have to use on your template files &lt;strong&gt;$if$ (&amp;lt;expression&amp;gt;) &amp;lt;your content here&amp;gt; $endif$&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;For example if your project template allows framework multi targeting you can use this to include references to Framework 3.5&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;$if$ ($targetframeworkversion$ == 3.5)using System.Linq;     &lt;br /&gt;$endif$&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You can check &lt;a href="http://www.windowsdevcenter.com/pub/a/windows/2006/10/17/creating-visual-studio-project-templates.html?page=2"&gt;here&lt;/a&gt; the list of parameters that are available out of the box and but you can also reference parameters added in the &lt;strong&gt;CustomParameters &lt;/strong&gt;element or parameters added by your wizard.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Now there is a catch&lt;/strong&gt;. In order to use conditions, your template has to be a template of version 3.0.0 (the template version is defined in &lt;strong&gt;VSTemplate &lt;/strong&gt;element of the .vstemplate file)&lt;/p&gt;  &lt;p&gt;eg: &amp;lt;VSTemplate Version="3.0.0" Type="Project" xmlns="&lt;a href="http://schemas.microsoft.com/developer/vstemplate/2005&amp;quot;"&gt;http://schemas.microsoft.com/developer/vstemplate/2005"&lt;/a&gt;&amp;gt;&lt;/p&gt;  &lt;p&gt;What is the catch then? If you use the export template to create your project template (even in VS 2008) the project template is exported as version 2.0.0 and you have to manually edit the .vstemplate file to use version 3.0.0 if you wish to use the $if$ functionality.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Post Scriptum&lt;/em&gt;: If you think project templates aren’t up to the level of customization you want, you can also use your own wizard in project template. And from that wizard use the VS API to do more complex things on the created project (or/and the solution that is going to hold it). And if that is not enough you can combine it with Software Factories to make it even more powerful.&lt;/p&gt;&lt;img src="http://agilior.pt/blogs/tiago.pascoal/aggbug/8094.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tiago Pascoal</dc:creator>
            <guid>http://agilior.pt/blogs/tiago.pascoal/archive/2009/05/31/8094.aspx</guid>
            <pubDate>Sun, 31 May 2009 09:37:32 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/tiago.pascoal/comments/8094.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/tiago.pascoal/archive/2009/05/31/8094.aspx#feedback</comments>
            <slash:comments>18</slash:comments>
            <wfw:commentRss>http://agilior.pt/blogs/tiago.pascoal/comments/commentRss/8094.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/tiago.pascoal/services/trackbacks/8094.aspx</trackback:ping>
        </item>
        <item>
            <title>DevDays 09 wrap up</title>
            <link>http://agilior.pt/blogs/tiago.pascoal/archive/2009/02/24/7113.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;Last week we had the &lt;a href="http://www.devdays09.com/"&gt;DevDays 09&lt;/a&gt; event. A two day event packed with more than 50 sessions in which i did 3 sessions (technically two and a half). &lt;/p&gt;  &lt;p&gt;The last time we had a local DevDays event was in 2004. Which brings back some memories, Due to the foulness of someone &lt;a href="canoas.com/blog"&gt;who shall remain nameless&lt;/a&gt; i was invited to speak for the first on a Microsoft event (something which has been repeating ever since). It was a session about the on the defunct &lt;a href="http://weblogs.asp.net/tspascoal/archive/2004/06.aspx"&gt;Shadowfax&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Since then Microsoft didn’t organized any local Devdays (in 2005,2007 and 2008 we had TechDays) but this year IT was left out so we had DevDays which is mainly a developer event.&lt;/p&gt;  &lt;p&gt;This year i was present in the architecture and the developer tracks. I did three sessions:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ARC206 Patterns &amp;amp; Anti-Patterns – &lt;/strong&gt;While attending a session on Teched EMEA, me and &lt;a href="http://www.arquitecturasoftware.org/blogs/joaomartins/"&gt;Jota&lt;/a&gt; agreed that not only it was the best session we had attended so far. That we should present it on &lt;a href="http://www.devdays09.com"&gt;DevDays 09&lt;/a&gt; :-). &lt;/p&gt;  &lt;p&gt;It was a presentation about Architectue Patterns &amp;amp; Anti-Patterns, the first (and only :-)) mistake we did was placing patterns on the title since we only talked about architecture anti-patterns. &lt;/p&gt;  &lt;p&gt;The presentation went very well, the room was packed (actually it was overflowing the people present exceeded the capacity of the room (which was 150 people)) and people seemed to genuinely like it (at least the session feedback was unusually high for an architecture talk). The presentation was based on Teched EMEA’s &lt;strong&gt;ARC 203 Architectures: The Good, the Bad, and the Ugly.&lt;/strong&gt; Based being the operative word. We not only cut the presentation in half so we could concentrate on the most important issues we also rewrote the content. If I’m allowed to say so i think we somehow manage to surpass the original presentation. :-)&lt;/p&gt;  &lt;p&gt;The session went so well that me and &lt;a href="http://www.arquitecturasoftware.org/blogs/joaomartins/"&gt;Jota&lt;/a&gt; are already conjuring what we should come with next time. :-)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;TLA206-Scrum e Team System – &lt;/strong&gt;This was a mixed and ungrateful presentation. I wanted to do a talk on both Scrum and Team System. Since the time was short i had to base my session on the assumption that people were allready familiar with Scrum and had a vague idea what Tem System is. &lt;/p&gt;  &lt;p&gt;In this session I’ve shown the three available process templates to use Scrum with Team System, namely:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.scrumforteamsystem.com"&gt;Scrum for Team System&lt;/a&gt; from Conchango&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=55a4bde6-10a7-4c41-9938-f388c1ed15e9&amp;amp;displaylang=en"&gt;eScrum&lt;/a&gt; from Microsoft&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeplex.com/VSTSScrum"&gt;VSTS Scrum Template (AKA lightweight scrum)&lt;/a&gt; which is driven by the &lt;a href="http://www.codeplex.com/VSTSScrum/People/ProjectPeople.aspx"&gt;community&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I’ve tried to enumerate the advantages and disadvantages of the three alternatives and i showed how you can leverage Team System while using Scrum. I did this by demoing Scrum for Team System and how you can complement it by using &lt;a href="http://www.codeplex.com/scrumdashboard/"&gt;Scrum Dashboard&lt;/a&gt; to have a complete and visual grasp of the progress of your sprint. I’ve also shown how you can use &lt;a href="http://www.scrumforteamsystem.com/en/TaskBoard/default.aspx"&gt;Conchango’s TaskBoard&lt;/a&gt; to let you plan and manage your sprint more easily in a graphical manner.&lt;/p&gt;  &lt;p&gt;The session was well received by the 120 people that were present.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;TLA303 – Customização e Extensibilidade Team System – &lt;/strong&gt;This was a session on customization and extensibility of Team System. This was a 300 level session and it was assumed people knew what Team System is. Perhaps this scared people off because the session wasn’t full. I don’t have an official count, but by calculations there were probably 68-80 people on the room. This is a purely hands on session. The session has 5 slides with content (excluding titles,etc) on which 3 are images, so it leaves us with 2 slides of information. The rest was done purely on a Virtual Machine with VSTS doing demos. Customization and extensibility is a topic that can be talked for hours so i had to focus my talk on a few topics. I’ve chosen these ones:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Customizing a process template (including reporting)&lt;/li&gt;    &lt;li&gt;Using the Object Model&lt;/li&gt;    &lt;li&gt;Work Item Custom Controls&lt;/li&gt;    &lt;li&gt;Source Control Checkin Policies&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In this session I wanted to do something different. Instead of the usual &lt;em&gt;show the power and ease of process customization &lt;/em&gt; demo by demoing how it is possible to customize a process by adding a field to a bug to allow you to list the client who reported it or the date that is expected to have this feature implement or such trivial task.&lt;/p&gt;  &lt;p&gt;To show the power of TFS i did a demo totally unrelated to software development. I created a process template from scratch to manage a soccer championship. Not only i modeled the games fixtures (so we can track the calendar, the results, which games have already been played,etc) I’ve also used it to model the workflow of the logistics that happens behind the scenes the allow the game to happen (you know, arrange the police escorts,referees, game reports, notify the press in sum all the tasks that need to happen before and after a game).&lt;/p&gt;  &lt;p&gt;The has been modeled using TFS built in capabilities.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Areas to segregate different divisions (1st division, 2nd division,etc)&lt;/li&gt;    &lt;li&gt;Iterations to model championship seasons and game weeks &lt;/li&gt;    &lt;li&gt;Global list to hold the list of teams&lt;/li&gt;    &lt;li&gt;Team Queries to see which games are scheduled, already played,etc,etc&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;To show the power of the object model I’ve created two demos&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;One that draws the whole championship fixtures in a random manor by creating all the work items that represent a game&lt;/li&gt;    &lt;li&gt;An editor that allow you to see the games (leverages the team queries defined in the process template), edit a game or create associated tasks to a game. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Since the referee have to send reports about the game and sometimes they may include in the report non advisable words I’ve also shown how do develop a custom checkin policy to recommend referees not to include some words in the report. :-) (If you are Portuguese and keep up to date with soccer behind the scenes maneuvers this is much more clearer. Como diria o &lt;a href="http://pt.wikipedia.org/wiki/Oct%C3%A1vio_Machado"&gt;Octávio&lt;/a&gt; “&lt;em&gt;Vocês sabem do que eu estou a falar”)&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;The session went well (not great but well), but the feedback was positive and people seemed to like my non traditional demo. :-)&lt;/p&gt;  &lt;p&gt;I have to refine some of the demos and to make the story and the transition between the demos more smooth. To make things more easy i wanted to have a slide explaining the things i was leveraging in a demo, but this required a second project to show the slides while the demos were happening and a second project simply wasn’t available. Alas next time things will go smoother.&lt;/p&gt;  &lt;p&gt;I thing overrall DevDays was very positive. As a whole things seemed to went rather well and this year the evaluations (at a general level) seemed to be above last events average.&lt;/p&gt;  &lt;p&gt;At a personal level things went well too. I pulled of the fact that I had to present three sessions in two days.&lt;/p&gt;  &lt;p&gt;Not to escape other events tradition, I was stalked by the usual &lt;a href="http://weblogs.pontonetpt.com/chaves"&gt;Paparazzi&lt;/a&gt; which at the end of the last day managed to corner me and made &lt;a href="http://gozoomin.com/blogs/devdays/archive/2009/02/19/jo-227-o-martins-tiago-pascoal-patterns.aspx"&gt;me mumble a few words to a camera&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://agilior.pt/blogs/tiago.pascoal/aggbug/7113.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tiago Pascoal</dc:creator>
            <guid>http://agilior.pt/blogs/tiago.pascoal/archive/2009/02/24/7113.aspx</guid>
            <pubDate>Tue, 24 Feb 2009 14:52:44 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/tiago.pascoal/comments/7113.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/tiago.pascoal/archive/2009/02/24/7113.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://agilior.pt/blogs/tiago.pascoal/comments/commentRss/7113.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/tiago.pascoal/services/trackbacks/7113.aspx</trackback:ping>
        </item>
        <item>
            <title>New Team System Web Site</title>
            <link>http://agilior.pt/blogs/tiago.pascoal/archive/2009/02/05/6875.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;Microsoft has launched a revamped &lt;a href="http://msdn.microsoft.com/en-us/teamsystem/default.aspx"&gt;Team System web site&lt;/a&gt;. It’s not only a more clean site has it has more dynamic content coming not only from MS team system team as well as aggregating and pointing to content written by the community.&lt;/p&gt;&lt;img src="http://agilior.pt/blogs/tiago.pascoal/aggbug/6875.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tiago Pascoal</dc:creator>
            <guid>http://agilior.pt/blogs/tiago.pascoal/archive/2009/02/05/6875.aspx</guid>
            <pubDate>Thu, 05 Feb 2009 20:31:11 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/tiago.pascoal/comments/6875.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/tiago.pascoal/archive/2009/02/05/6875.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://agilior.pt/blogs/tiago.pascoal/comments/commentRss/6875.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/tiago.pascoal/services/trackbacks/6875.aspx</trackback:ping>
        </item>
        <item>
            <title>A never ending quest&amp;hellip;</title>
            <link>http://agilior.pt/blogs/tiago.pascoal/archive/2009/01/21/6759.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;In a world that is becoming increasingly virtual and the manufacturing of physical objects are pure commodities. Which skills and techniques are more important for the people who earn their live using their brains ,intellectual skills and their (high paced fading) knowledge? Working harder, working smarter or something else? What is the key to being productive?&lt;/p&gt;  &lt;p&gt;It appears that working smarter is an already worn out cliché and needs to be replaced by something else. Mike Elgan says they key is a &lt;a href="http://itmanagement.earthweb.com/features/article.php/3791936/Hard+Work+is+Dead.+Call+It+Work+Ethic+2.0.htm"&gt;Work Ethic 2.0&lt;/a&gt; (the follow-up with the help of GTD’s fame Dave Allen &lt;a href="http://itmanagement.earthweb.com/features/article.php/3796256/Making-It-All-Work-In-60-Seconds.htm"&gt;follows the same path of thought&lt;/a&gt;) but &lt;a href="http://radar.oreilly.com/2008/12/hard-work-and-practice-in-programming.html"&gt;Alan Kay&lt;/a&gt; seems to advocate getting back to basics with the willingness to learn through practice (should I repeat the old joke about how to get to &lt;a href="http://en.wikipedia.org/wiki/Carnegie_Hall"&gt;Carnegie Hall&lt;/a&gt;?).&lt;/p&gt;  &lt;p&gt;This &lt;a href="http://radar.oreilly.com/2008/12/hard-work-and-practice-in-programming.html"&gt;thread on an Tim O’Reilly post&lt;/a&gt; discusses this specifically to programming.&lt;/p&gt;  &lt;p&gt;But with all these discussions could be nicely summoned on a single phrase&lt;/p&gt;  &lt;p&gt;&lt;a href="http://quotationsbook.com/quote/6367/"&gt;Do not handicap your children by making their lives easy.&lt;/a&gt;  &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;                                                            -- &lt;a href="http://en.wikipedia.org/wiki/Robert_A._Heinlein"&gt;Robert Heinlein&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/tspascoal/archive/2004/10/12/241186.aspx"&gt;Deja Vu&lt;/a&gt; , &lt;a href="http://weblogs.asp.net/tspascoal/archive/2004/09/08/227037.aspx"&gt;Deja Vu&lt;/a&gt;&lt;/p&gt;&lt;img src="http://agilior.pt/blogs/tiago.pascoal/aggbug/6759.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tiago Pascoal</dc:creator>
            <guid>http://agilior.pt/blogs/tiago.pascoal/archive/2009/01/21/6759.aspx</guid>
            <pubDate>Wed, 21 Jan 2009 22:39:51 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/tiago.pascoal/comments/6759.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/tiago.pascoal/archive/2009/01/21/6759.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://agilior.pt/blogs/tiago.pascoal/comments/commentRss/6759.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/tiago.pascoal/services/trackbacks/6759.aspx</trackback:ping>
        </item>
        <item>
            <title>Passatempo MSDN Flash</title>
            <link>http://agilior.pt/blogs/tiago.pascoal/archive/2009/01/14/6698.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;Queres ganhar uns livros? Participa no &lt;a href="http://www.microsoft.com/portugal/msdn/msdnflash/passatempo/default.mspx"&gt;passatempo da MSDN Flash&lt;/a&gt;&lt;/p&gt;&lt;img src="http://agilior.pt/blogs/tiago.pascoal/aggbug/6698.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tiago Pascoal</dc:creator>
            <guid>http://agilior.pt/blogs/tiago.pascoal/archive/2009/01/14/6698.aspx</guid>
            <pubDate>Wed, 14 Jan 2009 15:22:50 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/tiago.pascoal/comments/6698.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/tiago.pascoal/archive/2009/01/14/6698.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://agilior.pt/blogs/tiago.pascoal/comments/commentRss/6698.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/tiago.pascoal/services/trackbacks/6698.aspx</trackback:ping>
        </item>
        <item>
            <title>DevDays 2009</title>
            <link>http://agilior.pt/blogs/tiago.pascoal/archive/2009/01/14/6695.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;The cat is almost out of the bag&lt;/p&gt;  &lt;p&gt;&lt;a href="http://agilior.pt/blogs/images/agilior_pt/blogs/tiago.pascoal/WindowsLiveWriter/DevDays2009_FC1A/devdays_180x150%5B1%5D_2.gif"&gt;&lt;img style="display: inline" title="devdays_180x150[1]" alt="devdays_180x150[1]" src="http://agilior.pt/blogs/images/agilior_pt/blogs/tiago.pascoal/WindowsLiveWriter/DevDays2009_FC1A/devdays_180x150%5B1%5D_thumb.gif" width="180" height="150" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;DevDays 2009 is going to be announced very soon in the meanwhile you can browse the &lt;a href="www.devdays09.com "&gt;official site&lt;/a&gt; :-)&lt;/p&gt;  &lt;p&gt;It’s a two day event with over 50 sessions and 40 hands on labs.&lt;/p&gt;  &lt;p&gt;With a lot of topics including:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Visual Studio 10 and .Net 4 &lt;/li&gt;    &lt;li&gt; Microsoft Surface&lt;/li&gt;    &lt;li&gt;Windows 7 &lt;/li&gt;    &lt;li&gt;Internet Explorer 8 &lt;/li&gt;    &lt;li&gt;Windows Azure and Azure Services Platform &lt;/li&gt;    &lt;li&gt;Biztalk 2009 &lt;/li&gt;    &lt;li&gt;Silverlight e WPF&lt;/li&gt;    &lt;li&gt;SQL Server 2008&lt;/li&gt;    &lt;li&gt;ASP.NET&lt;/li&gt;    &lt;li&gt; Windows Live Services&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The agenda is not closed yet, so I’m not yet sure which topics i will be talking this year. :-)&lt;/p&gt;  &lt;p&gt;The date and location is already closed. 18 and 19 of February.&lt;/p&gt;  &lt;p&gt;Keep an eye on the &lt;a href="http://www.devdays09.com/Sess%C3%B5es"&gt;session page&lt;/a&gt; to see which news are going to be announced in the next few days and weeks. :-)&lt;/p&gt;&lt;img src="http://agilior.pt/blogs/tiago.pascoal/aggbug/6695.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tiago Pascoal</dc:creator>
            <guid>http://agilior.pt/blogs/tiago.pascoal/archive/2009/01/14/6695.aspx</guid>
            <pubDate>Wed, 14 Jan 2009 14:55:50 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/tiago.pascoal/comments/6695.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/tiago.pascoal/archive/2009/01/14/6695.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://agilior.pt/blogs/tiago.pascoal/comments/commentRss/6695.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/tiago.pascoal/services/trackbacks/6695.aspx</trackback:ping>
        </item>
        <item>
            <title>Malevich &amp;ndash; A new code review system</title>
            <link>http://agilior.pt/blogs/tiago.pascoal/archive/2009/01/11/6647.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;In a &lt;a href="http://agilior.pt/blogs/tiago.pascoal/archive/2008/12/28/6528.aspx"&gt;previous post&lt;/a&gt; i slightly grasped (actually just pointed to a good post) about the dynamic of code reviews. &lt;/p&gt;  &lt;p&gt;I’ve also talked about the lack of tools for doing code reviews in Team System, something that &lt;a href="http://agilior.pt/blogs/tiago.pascoal/archive/2008/12/28/6528.aspx"&gt;JB Brown&lt;/a&gt; (from TeamReview) picked it up and &lt;a href="http://jb-brown.blogspot.com/2009/01/social-dynamics-of-code-reviews.html"&gt;wrote about it&lt;/a&gt;  a such clear and sucint way that i should have done it in the first place. :-)&lt;/p&gt;  &lt;p&gt;Anyway there seems to be a new kid in town. A new web based code review system that can be used in conjunction with TFS.&lt;/p&gt;  &lt;p&gt;It is called Malevich, you can read it’s announcement &lt;a href="http://1-800-magic.blogspot.com/2009/01/malevich-new-code-review-system.html"&gt;right here&lt;/a&gt; or you can just go directly to the &lt;a href="http://www.codeplex.com/Malevich"&gt;Malevich project site on codeplex.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I haven’t tried it yet but it seems a nice and capable. The TFS integration is a bit on the light side, since it only interacts with source control (since it supports other source control systems as well). You also need to use a command line tool to start code reviews.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;If &lt;/strong&gt;Visual Studio supported extending the checkin window it would be possible to add a way to trigger a code review directly from there. Since an addin would be come in very handy to start code reviews directly from Visual Studio. &lt;/p&gt;  &lt;p&gt;When a code review is “requested” a mail is sent to the person (or persons) that are invited to review the code, it would also be nice if a code review task as automatically created in the work item store.&lt;/p&gt;  &lt;p&gt;The good thing is that Malevich is available with source so you can hack it yourself. :-)&lt;/p&gt;&lt;img src="http://agilior.pt/blogs/tiago.pascoal/aggbug/6647.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tiago Pascoal</dc:creator>
            <guid>http://agilior.pt/blogs/tiago.pascoal/archive/2009/01/11/6647.aspx</guid>
            <pubDate>Sun, 11 Jan 2009 08:53:12 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/tiago.pascoal/comments/6647.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/tiago.pascoal/archive/2009/01/11/6647.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://agilior.pt/blogs/tiago.pascoal/comments/commentRss/6647.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/tiago.pascoal/services/trackbacks/6647.aspx</trackback:ping>
        </item>
        <item>
            <title>MVP Renewed</title>
            <link>http://agilior.pt/blogs/tiago.pascoal/archive/2009/01/01/6566.aspx</link>
            <description>&lt;p&gt;At the first day of every quarter Microsoft MVPs stare at their mail client for THE email. Was the award renewed? or did we dropped the ball?&lt;/p&gt;  &lt;p&gt;My award starts at 1st January, so this was one of those mails for me. After dinner I arrived home and checked my email.&lt;/p&gt;  &lt;p&gt;No renew email on the inbox. Usually the mail arrives after lunch, so in wondered if I was kicked out? :-)&lt;/p&gt;  &lt;p&gt;A cursory look on the spam folder and there it was. My renew mail was there.&lt;/p&gt;  &lt;p&gt;So Team System MVP for 2009 again. A good way to start the year. :-)&lt;/p&gt;&lt;img src="http://agilior.pt/blogs/tiago.pascoal/aggbug/6566.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tiago Pascoal</dc:creator>
            <guid>http://agilior.pt/blogs/tiago.pascoal/archive/2009/01/01/6566.aspx</guid>
            <pubDate>Thu, 01 Jan 2009 19:11:30 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/tiago.pascoal/comments/6566.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/tiago.pascoal/archive/2009/01/01/6566.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://agilior.pt/blogs/tiago.pascoal/comments/commentRss/6566.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/tiago.pascoal/services/trackbacks/6566.aspx</trackback:ping>
        </item>
        <item>
            <title>Gendarme - Code analysis tool</title>
            <link>http://agilior.pt/blogs/tiago.pascoal/archive/2008/12/29/6537.aspx</link>
            <description>&lt;p&gt;In the last few days I've found a tool called &lt;a href="http://www.mono-project.com/Gendarme"&gt;Gendarme&lt;/a&gt; it is an open source tool from the &lt;a href="http://www.mono-project.com"&gt;Mono Project&lt;/a&gt; that allows you to find problems in .Net (either Mono or Microsoft.Net) applications and libraries. &lt;/p&gt;  &lt;p&gt;It has a rule based system to do the analysis and it can be seen as an FXCop/Team System Code Analysis kind of system. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;I haven't counted the number of rules it provides but doing a visual analysis it doesn't seem to have as many rules as Team System Code Analysis. However quantity isn't everything and from my analysis it has a pretty number of good &lt;a href="http://www.mono-project.com/Gendarme#Rules"&gt;rules&lt;/a&gt; (including some categories that the Code Analysis doesn't has like Linq)&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;The rules are grouped in the following categories&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.mono-project.com/Gendarme.Rules.BadPractice"&gt;BadPractice&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mono-project.com/Gendarme.Rules.Concurrency"&gt;Concurrency&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mono-project.com/Gendarme.Rules.Correctness"&gt;Correctness&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mono-project.com/Gendarme.Rules.Design"&gt;Design&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mono-project.com/Gendarme.Rules.Design.Generic"&gt;Design.Generic&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mono-project.com/Gendarme.Rules.Design.Linq"&gt;Linq&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mono-project.com/Gendarme.Rules.Exceptions"&gt;Exceptions&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mono-project.com/Gendarme.Rules.Interoperability"&gt;Interoperability&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mono-project.com/Gendarme.Rules.Maintainability"&gt;Maintainability&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mono-project.com/Gendarme.Rules.Naming"&gt;Naming&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mono-project.com/Gendarme.Rules.Performance"&gt;Performance&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mono-project.com/Gendarme.Rules.Portability"&gt;Portability&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mono-project.com/Gendarme.Rules.Security"&gt;Security&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mono-project.com/Gendarme.Rules.Security.Cas"&gt;Security Cas&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mono-project.com/Gendarme.Rules.Serialization"&gt;Serialization&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mono-project.com/Gendarme.Rules.Smells"&gt;Smells&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mono-project.com/Gendarme.Rules.Ui"&gt;Ui&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;You can see the full list (and description) of the &lt;a href="http://www.mono-project.com/Gendarme#Rules"&gt;rules here&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;There is no Visual Studio integration so you either have to run it from the command line or from a supplied windows form wizard. No MSBuild integration exists either but it would be fairly easy to implement a custom action or just call the &lt;a href="http://msdn.microsoft.com/en-us/library/x8zx72cd.aspx"&gt;execute task&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Integration with TFS could be either easy or hard depending on how fully integrated you would want it. Since the execution of Gendarme produces a report (XML,HTML,etc) you can execute on your build process and make the HTML report available on the build results (the easy part) or if you want full integration like having the data directly on the TFS build warehouse that could a lot more work.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;I've spent a couple of hours running it on a median sized project and it enabled me to fix some naming mistakes, make the code more clear in some areas and even fix an error where disposed wasn't being called.&lt;/p&gt;  &lt;p&gt;During my analysis I also found a bunch of false positives. The tool has a feature that categorizes the issues that it has found with a degree of confidence, which states the degree of confidence that the rule has in the face of the found issue (most false positives had a medium to high degree of confidence which is a bummer). &lt;/p&gt;  &lt;p&gt;The rules documentation is complete and allows you to understand the consequence of not implementing the rule and why you should fix the found issue (although some rules are not documented). &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Definitively a tool to use in the future.&lt;/p&gt;&lt;img src="http://agilior.pt/blogs/tiago.pascoal/aggbug/6537.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tiago Pascoal</dc:creator>
            <guid>http://agilior.pt/blogs/tiago.pascoal/archive/2008/12/29/6537.aspx</guid>
            <pubDate>Mon, 29 Dec 2008 10:14:30 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/tiago.pascoal/comments/6537.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/tiago.pascoal/archive/2008/12/29/6537.aspx#feedback</comments>
            <slash:comments>478</slash:comments>
            <wfw:commentRss>http://agilior.pt/blogs/tiago.pascoal/comments/commentRss/6537.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/tiago.pascoal/services/trackbacks/6537.aspx</trackback:ping>
        </item>
        <item>
            <title>Your Code Sucks and I Hate You</title>
            <link>http://agilior.pt/blogs/tiago.pascoal/archive/2008/12/28/6528.aspx</link>
            <description>&lt;p&gt;Did the title catch your attention? Well it did mine.&lt;/p&gt;  &lt;p&gt;It is the title of a &lt;a href="http://mumak.net/stuff/your-code-sucks.html"&gt;post that I've just read&lt;/a&gt;. Although the title seems a little bit &lt;a href="http://en.wikipedia.org/wiki/Troll_(Internet)"&gt;trolish&lt;/a&gt; it's because it probably is, if you read the subtitle you will see the main title is not only trollish but very misleading. The post subtitle is &lt;em&gt;The Social Dynamics of Code Reviews. &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;It mainly talks about code reviews in open source projects&lt;em&gt; &lt;/em&gt;but most of the knowledge sprung in this post is applicable to close source projects.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Code reviews is something that is hard to do effectively. Even you get past the sociological issues mentioned on the post, without a decent tool it is very hard to keep track what has been reviewed and it's not.&lt;/p&gt;  &lt;p&gt;Code review is one of the area I wish there were some kind of offering for TFS. Granted you can do code reviews with shelve sets and some sort of informal communication via email (assigning code review tasks or even a work item type) but that would give us no metrics or a simple way to keep track which parts of the code have been reviewed.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;The more complete solution for TFS seems to be &lt;a href="http://www.codeplex.com/TeamReview"&gt;TeamReview&lt;/a&gt; (freely available on codeplex) which combines specific work item types and a Visual Studio add-in to help you manage the process. While I never tested the tool, I've given some attention to the description and workflow and it seems to work at a very micro level of the code. And the metric tools (what has been reviewed, what is not, etc,etc) seems to be non existant.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;There are some more mature solutions that perhaps can be adapted to be used with TFS:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://review-board.org/"&gt;Review board&lt;/a&gt; which has originated from VMware&lt;/li&gt;    &lt;li&gt;The venerable &lt;a href="http://codestriker.sourceforge.net"&gt;Codestriker&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://sourceforge.net/projects/jcodereview/"&gt;JCR&lt;/a&gt; - which unlike other tools doesn't work at the source control level but with whole files&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;On the commercial side &lt;a href="http://smartbear.com/codecollab.php"&gt;Code Collaborator&lt;/a&gt; from Smart Bear has a good reputation and it works with TFS but never tried it either.&lt;/p&gt;&lt;img src="http://agilior.pt/blogs/tiago.pascoal/aggbug/6528.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tiago Pascoal</dc:creator>
            <guid>http://agilior.pt/blogs/tiago.pascoal/archive/2008/12/28/6528.aspx</guid>
            <pubDate>Sun, 28 Dec 2008 20:56:35 GMT</pubDate>
            <wfw:comment>http://agilior.pt/blogs/tiago.pascoal/comments/6528.aspx</wfw:comment>
            <comments>http://agilior.pt/blogs/tiago.pascoal/archive/2008/12/28/6528.aspx#feedback</comments>
            <slash:comments>22</slash:comments>
            <wfw:commentRss>http://agilior.pt/blogs/tiago.pascoal/comments/commentRss/6528.aspx</wfw:commentRss>
            <trackback:ping>http://agilior.pt/blogs/tiago.pascoal/services/trackbacks/6528.aspx</trackback:ping>
        </item>
    </channel>
</rss>