<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://consultingblogs.emc.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>EMC Consulting Blogs</title><link>http://consultingblogs.emc.com/default.aspx</link><description>welcome to the &lt;a href="http://www.conchango.com" target="_blank"&gt;EMC Consulting&lt;/a&gt; blogging site</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Requirements Management versus Requirements Definition</title><link>http://consultingblogs.emc.com/petermeasures/archive/2012/05/14/requirements-management-versus-requirements-definition.aspx</link><pubDate>Mon, 14 May 2012 15:17:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19180</guid><dc:creator>peter.measures</dc:creator><slash:comments>0</slash:comments><description>&lt;o:p&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;SPAN style="BACKGROUND:white;"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;I recently worked on a selection process for a requirements management tool. It was great to look into tools that support the job that I do. The market is roughly split into two categories:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 0pt 36pt;mso-list:l2 level1 lfo2;" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Requirement definition tools that specialise in visualisations, prototyping, mock-ups, modelling and collaboration to help elicit and validate requirements.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 10pt 36pt;mso-list:l2 level1 lfo2;" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Requirement management tools that specialise in capturing, tracking and managing requirements in a central repository &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;SPAN style="BACKGROUND:white;"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;So which one is right for you? Well it depends what your problem is&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 0pt 36pt;mso-list:l1 level1 lfo3;" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="BACKGROUND:white;"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;If you have a problem with the quality of your requirements you probably want to be looking at the requirement definition market.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 0pt 36pt;mso-list:l1 level1 lfo3;" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="BACKGROUND:white;"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;If you have trouble maintaining requirements, struggling with change control or ensuring requirements are delivered then a requirement management tool will be more your thing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 0pt 36pt;mso-list:l1 level1 lfo3;" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="BACKGROUND:white;"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;If you are having trouble with storing requirements, test cases, change control, version control and defects and providing traceability between each of them then you probably should be looking in application lifecycle management (ALM).&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 10pt 36pt;mso-list:l1 level1 lfo3;" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="BACKGROUND:white;"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;If you have a poor or undefined requirements engineering process then it is probably best to re-work that before investing in a tool. If you just need a repository for requirements in the short-term, I would suggest you get a cheap SaaS requirements management solution on a monthly subscription, but make sure it has an export function!&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;SPAN style="BACKGROUND:white;"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Although I won’t be discussing application lifecycle management tools here, I would highly recommend that this option is investigated with your delivery team if a requirement management solution is required. ALMs can have as strong requirement management capabilities as standalone tools so they shouldn’t be discounted from a selection process. If your delivery team is already using an ALM that does not meet your requirement engineering needs, consider whether a tool has an interface to the ALM.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;To highlight the differences further I have broken down what I think the activities of requirements engineering in the following Business Activity Model.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;SPAN style="mso-fareast-language:EN-GB;mso-no-proof:yes;"&gt;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;IMG style="WIDTH:600px;HEIGHT:500px;" title="Requirements Engineering Business Activity model" alt="Requirements Engineering Business Activity model" align=middle src="http://consultingblogs.emc.com/photos/conchango_bloggers/images/19181/original.aspx" width=600 height=500&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;I have colour coded it to give an indication of a tools strength in a particular area.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 0pt 36pt;mso-list:l0 level1 lfo1;" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Red – the domain of requirements definition&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 0pt 36pt;mso-list:l0 level1 lfo1;" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Blue – the domain of requirements engineering&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 10pt 36pt;mso-list:l0 level1 lfo1;" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Yellow – neither solution is particularly strong&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;As with anything, there are never clear boundaries between requirements definition and requirements management applications as some tools operate across domains particularly for requirement definition platforms, so I have tried to introduce a spectrum of colour to indicate the amount of crossover. Please note that in my assessment I was focusing on SaaS requirement management tools with a focus on a unique set of requirements (some of which crossed into requirements definition) so this is my subjective view. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Once you have decided on the type of tool you need to consider the tools of that type.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;I found just over a 100 requirement management tools so coming up with a shortlist based on some high-level criteria was useful.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Then you can focus on choosing a product that meets your individual needs. I would strongly recommend you read &lt;/FONT&gt;&lt;A href="http://www.forrester.com/Right+Tools+Write+Requirements+Right+On/fulltext/-/E-RES56810?al=0"&gt;&lt;FONT color=#0000ff size=3 face=Calibri&gt;Right tools, write requirements, right on!&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; by Forrester’s Mary Gerush if you can get your hands on it. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Here is a summary of my findings regarding requirement tool capabilities which may help guide you if you are if you looking into this topic.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN:10pt 0cm 0pt;"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Analyse Stakeholders&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;There is very little functionality in analysing stakeholders apart from storing there names and most tools do not distinguish them from other users.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Abilities to model influence, interest and system usage would be very beneficial.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN:10pt 0cm 0pt;"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Requirements Elicitation&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Requirement elicitation&amp;nbsp;is defined as&amp;nbsp;a separate function from modelling and prototyping&amp;nbsp;but as this is the&amp;nbsp;heartland of requirement definition I have coloured this more&amp;nbsp;red than stricter rules would allow. &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Requirements management tools support elicitation through document management and one or two allow users to request requirements. However, I think that tools that support questionnaires and activity sampling could be really useful too.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN:10pt 0cm 0pt;"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Modelling&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Models are a powerful way of requirement definition. Process, Context, Class and Use Case diagrams describe requirements at the highest level. As stated above this is the domain of requirements definition but a few requirements management tools do support an element of this.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Not sure if any tools support these, but CRUD and Completeness matrices would be great addition.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN:10pt 0cm 0pt;"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Categorise Requirements&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Things like requirement hierarchies, requirement types and sub-types, projects, statuses and by other categories such use cases or features is the domain of requirement management. Most of these tools enable requirement attributes to be configured to support bespoke categorisation (and any other attribute you think would be useful). &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN:10pt 0cm 0pt;"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Necessity and Feasibility&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;I would hope all requirements management tools support prioritisation, but there appears to be little functionality beyond that. Capabilities to qualify business, technological and financial feasibility are generally not present. Requirements hierarchies can support necessity validation by ensuring that all requirements map back to the overall business goal.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN:10pt 0cm 0pt;"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Deliver Requirements&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Some requirement management tools allow requirements to be grouped into sprints, iterations, and releases for projects. Some tools are process specific (particularly for Agile development) while others are process agnostic. Requirement traceability is also provided and requirement support can be facilitated via requirement collaboration, although I have categorised these features elsewhere.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN:10pt 0cm 0pt;"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Requirements Management&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Obviously this is the main stay of requirement management tools.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;This area covers a plethora of functionality such as storage, security, traceability, approval and change management, workflow, baselines, version history and reporting. I would be surprised if any requirement management tool did not support this list of functionality.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN:10pt 0cm 0pt;"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Communicate and negotiate requirements&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Collaboration in requirements management is critical to requirements management and requirement definition. These days, teams are distributed and requirement elicitation and validation is becoming more a shared responsibility between the business, business analysts, developers and testers. On-line comments, review and approval facilities help with clarification and validation. Negotiation can be facilitated through discussion forums.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Of all the features discussed here I think this is one of the more powerful features of requirement management tools.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN:10pt 0cm 0pt;"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Validate Requirements&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The strength of requirement management tools here are workflow approval which pushes up the clarity and accuracy of requirements. The use of Glossaries is available in a few tools, but these are only really helpful if the application can highlight the terms used within the requirement.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN:10pt 0cm 0pt;"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Generate Scenarios and Prototypes&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;This area is all about processes, simulations, prototypes and mock-ups, and this constitutes the core features of requirement definition tools. Use case descriptions are supported by a few requirements management tools for scenario modelling.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN:10pt 0cm 0pt;"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Plan Analysis project&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Note I have used the term analysis here, to separate it from delivering requirements. There is little in the way features for planning analysis projects. All I can think of is assigning high level requirements to releases (or sprints) so the order in which detail is elicited can be planned. The requirement management tools that best support this are focused on Agile development. I imagine ALMs would be strong in this area too.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN:10pt 0cm 0pt;"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Track Progress&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Requirements management tools generally offer both “out-the-box” and configurable reporting. I think the key feature here is to track the progress of a requirement through its lifecycle, but assessing overall project progress based on where requirements are in the development cycle (e.g. burndown charts) could also be useful for a wider audience.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN:10pt 0cm 0pt;"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Measure Quality&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;I couldn’t really find features on measuring quality. Useful tools would be to ensure that patterns are followed, that requirements are atomic and that the appropriate terms are being used from the glossary.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN:10pt 0cm 0pt;"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Manage Analysis Projects&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;I didn’t really look into this area, but the strength of requirements management to report on progress would enable the control function. Better support for quality measurement would greatly enhance these features.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Please feel free to get in touch with me at &lt;/FONT&gt;&lt;A href="mailto:peter.measures@emc.com"&gt;&lt;FONT color=#0000ff size=3 face=Calibri&gt;peter.measures@emc.com&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;if you want discuss this with me.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/o:p&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19180" width="1" height="1"&gt;</description></item><item><title>Form or function, what matters more?</title><link>http://consultingblogs.emc.com/flowbohl/archive/2012/05/11/form-or-function-what-matters-more.aspx</link><pubDate>Fri, 11 May 2012 13:48:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19177</guid><dc:creator>Flow.Bohl</dc:creator><slash:comments>0</slash:comments><description>&lt;div style="padding-top:8px;padding-right:8px;padding-bottom:8px;padding-left:8px;"&gt;&lt;p class="MsoNormal" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:17px;"&gt;“Form follows function” is a frequently used phrase, incorrectly quoted from the original “form ever follows function” by architect Louis Sullivan. His point from the 60’s is that architecture’s style is determined by its functional purpose. Le Corbusier’s Brutalism concrete architecture as found in the suburbs of Paris is a perfect example, an arguably outdated approach to urban planning and design.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:17px;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:17px;"&gt;The other side of this argument would be that we engage with things not only because we have to, but because we want to. This applies not just to buildings, but products and every day interactions too. I recently read a good point on that topic from neurologist Viktor Frankl, who remarks that “people have enough to live but nothing to live for; they have the means but no meaning”.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:17px;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:17px;"&gt;We seek meaning in what we do and display our cultural identity through showing off symbols (i.e. football club icons on t-shirts) or demonstrate our desired social belonging (i.e. driving luxury cars). Economist Thorsten Veblen investigated this behavior and found that prestige is sought after in wealthy societies more than utility.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:17px;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:17px;"&gt;The discussion about form versus function also takes place between interaction designers in the UX industry. Many argue that usability is more important than user desirability.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:17px;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:17px;"&gt;But is it? The context of what a user expects from a website obviously matters. When I go to a website to buy something, I want to accomplish the task at hand as quickly and hassle-free as possible. That’s good for me but not necessarily for the seller, because I don’t stay long enough to stumble over other products I may like as well. Commoditization of products and services is a big problem because it drags down margins and unless a product or service is the only of its kind, it may be forgotten quickly.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:17px;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:17px;"&gt;But… when the seller knows WHY I want what I want I’d be willing to come back. Ideally this is not for the price alone but for my firm believe that this is a seller I can trust, provides quality, prestige etc.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:17px;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:17px;"&gt;Trust is often established on irrational elements such as familiarity. When something looks familiar we are more likely to trust it as research by Antonio Damasio suggests. This is one of many aspects when design becomes elemental for successful commerce and the “why” starts to matter as much as the “what”. When the interaction is not only physically satisfying but also emotionally inspiring and memorable.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:17px;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:17px;"&gt;The question should not be whether the functional or desirable elements are more important. The question should be how form and function play together most effectively.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:17px;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:17px;"&gt;Adam Swann in a Forbes article notes that companies “recognize that a great design leads to differentiation, customer loyalty and higher profits”. In a time that Swann declares as “Design Era”, we will have to continue placing value on form and function equally.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:Arial, Helvetica, sans-serif;font-size:10pt;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19177" width="1" height="1"&gt;</description><category domain="http://consultingblogs.emc.com/flowbohl/archive/tags/UX/default.aspx">UX</category><category domain="http://consultingblogs.emc.com/flowbohl/archive/tags/experience/default.aspx">experience</category><category domain="http://consultingblogs.emc.com/flowbohl/archive/tags/UI/default.aspx">UI</category><category domain="http://consultingblogs.emc.com/flowbohl/archive/tags/user/default.aspx">user</category><category domain="http://consultingblogs.emc.com/flowbohl/archive/tags/design/default.aspx">design</category><category domain="http://consultingblogs.emc.com/flowbohl/archive/tags/marketing/default.aspx">marketing</category><category domain="http://consultingblogs.emc.com/flowbohl/archive/tags/IA/default.aspx">IA</category></item><item><title>App design lessons from Instagram</title><link>http://consultingblogs.emc.com/dankalafus/archive/2012/04/14/app-design-lessons-from-instagram.aspx</link><pubDate>Sat, 14 Apr 2012 16:25:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19167</guid><dc:creator>Dan.Kalafus</dc:creator><slash:comments>0</slash:comments><description>&lt;div&gt;I noticed a pair of good product design lessons in an article about Instagram in today’s New York Times. The article’s focus was mostly on the networking that helped the company’s founders succeed; but these two items jumped out at me:&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;1. DESIGN MATTERS.&lt;/div&gt;&lt;div&gt; “[T]he two men were unusually obsessed with design detail. Once … they spent two hours perfecting the rounded corners of the app’s icons.” &lt;/div&gt;&lt;div&gt; I’ve seen countless clients give lip service to design, but ultimately let deadlines get in the way of creating a really beautiful app. We react emotionally to the tools we use; and the fact is, if you want users to really LOVE your app, good visual design is critical.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;2. TOO MANY FEATURES CAN HURT YOUR PRODUCT.&lt;/div&gt;&lt;div&gt; “Soon after they started working together in March 2010, Mr. Krieger and Mr. Systrom decided that Burbn [an earlier version of Instagram] would not work. It had too many features. It was too close to what Foursquare was already doing.” &lt;/div&gt;&lt;div&gt;Instagram’s genius lies in its simplicity. It doesn’t have lots of features and options. It effectively outsources some of its sharing functionality to other services like Facebook and Twitter. It doesn’t try to anticipate too much of what the user will do with it. It doesn’t provide lots of configuration options. It is trivially easy to use, with practically no learning curve, and there is an immediate payoff for the user.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;The article:&lt;/div&gt;&lt;div&gt;http://www.nytimes.com/2012/04/14/technology/instagram-founders-were-helped-by-bay-area-connections.html&amp;nbsp;&lt;/div&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19167" width="1" height="1"&gt;</description></item><item><title>MVC4+RavenDb Avoiding Quick Start Pitfalls</title><link>http://consultingblogs.emc.com/scottcurrier/archive/2012/04/04/mvc4-ravendb-avoiding-quick-start-pitfalls.aspx</link><pubDate>Wed, 04 Apr 2012 15:41:43 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19159</guid><dc:creator>Scott.Currier</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&amp;#160;&lt;a href="http://consultingblogs.emc.com/blogs/scottcurrier/image_2E318444.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px 5px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://consultingblogs.emc.com/blogs/scottcurrier/image_thumb_534ECEB0.png" width="301" height="133" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Coming from a SharePoint (library/list/caml) or SQL Server table point of view you typically construct end-user content based on normalized, or semi-normalized data formed from tables/libraries/lists of rows and columns. This is wonderful for adhoc reporting or creating new content pages from queries (or other middle tier magic programming). Once that data is “formed” you can display it directly or add to business objects having the “same shape” as the data for further processing. &lt;/p&gt;  &lt;p&gt;A few words on this approach – data coming from a SQL store will be processed based on a query that defines its ultimate purpose. This is fine for queries that must change often, such as a reporting application, and you have no substantial processing time constraints. However, for OLTP and other system elements that tend to use the same (unchanging) queries against raw data the adhoc nature of these queries adds a layer of unnecessary processing. This processing would be avoided if the data was already stored in the same “shape” as the original query. To say this another way, if the database preserved the hierarchical relationship between data elements and stored these elements together as a single document, blob, or class you could simply choose the proper index and pull the data out in a single “highly atomic” transaction. The document would naturally map into business logic objects (or better yet – be hydrated into the actual object). This is also referred to as the NoSQL approach.&lt;/p&gt;  &lt;p&gt;RavenDb is a database that captures data as documents. A NoSQL document database. The documents are formed by declaring classes in code and persisting those classes in its database. The concept has been around for a while – the key distinctions here are that objects are persisted using JSON syntax and directly executable by JavaScript (more or less). This means a modern web application can very easily take advantage of this style of storage and offers the programmer a virtually no impedance mismatch between the client and server – its easy to program.&lt;/p&gt;  &lt;p&gt;MVC is a perfect technology playground for testing the waters with RavenDb. I decided to construct a sample application using MVC 4 (currently in beta). So this post is a simple quick start that emphasizes a couple of tips…..at this point install MVC 4 into Visual Studio 2010, Create an MVC 4 Project.&lt;/p&gt;  &lt;p&gt;Tip 1: In NuGet (GUI version shown below) – search online using term, “RavenDb”. If you are on a development server you should choose the first option for these reasons:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;This is a stable version of RavenDb for use with MVC4 (as far as I can tell so far). Later (unstable) versions of RavenDb throw JSON exceptions (in my experience). I had to uninstall the later versions and add this one into my project. Lesson learned. &lt;/li&gt;    &lt;li&gt;Unless you’re building a true embedded version of your application – which is certainly possible – you would likely use a hosting providers RavenDb database instance provided via a unique port number (in my case its &lt;a href="http://dev:8080"&gt;http://dev:8080&lt;/a&gt; on my development server) &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Tip 2: &lt;/p&gt;  &lt;p&gt;If you find yourself installing from the NuGet command line in Visual Studio 2010 using this command &lt;strong&gt;Install-Package RavenDB -Pre&lt;/strong&gt;&amp;#160; you probably installed some ill-tempered version. To fix this simply issue this statement &lt;strong&gt;Uninstall-Package RavenDb –RemoveDependencies&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now, go back into the GUI package manager and click install as shown in this image (the first package on the list). You are ready to configure RavebDb&lt;/p&gt;  &lt;p&gt;&lt;a href="http://consultingblogs.emc.com/blogs/scottcurrier/image_20129547.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px 5px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://consultingblogs.emc.com/blogs/scottcurrier/image_thumb_77FFE627.png" width="684" height="208" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Tip 2: Be sure you have an instance of the RavenDb running on its default port within your development server. This operation is completely independent of your project. To install a running instance on your development database follow these steps:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Locate the downloaded package from your solutions pagages folder. I found mine located in the directory &lt;strong&gt;[solution name]\packages\RavenDB.1.0.701 &lt;/strong&gt;(your version may vary) &lt;/li&gt;    &lt;li&gt;Navigate to the \server folder and execute this command      &lt;p&gt;&lt;code&gt;&lt;font size="3"&gt;&lt;strong&gt;Raven.Server.exe /install&lt;/strong&gt; &lt;/font&gt;&lt;font size="2" face="Lucida Sans Unicode"&gt;see this link &lt;/font&gt;&lt;/code&gt;&lt;a title="http://ravendb.net/docs/server/deployment/as-a-service" href="http://ravendb.net/docs/server/deployment/as-a-service"&gt;http://ravendb.net/docs/server/deployment/as-a-service&lt;/a&gt;&lt;/p&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Verify that the service instance is started in your Windows Service administration panel&lt;/p&gt;  &lt;p&gt;&lt;a href="http://consultingblogs.emc.com/blogs/scottcurrier/image_0897E116.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px 5px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://consultingblogs.emc.com/blogs/scottcurrier/image_thumb_27DA87E9.png" width="539" height="63" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In your browser, navigate to &lt;a href="http://localhost:8080"&gt;http://localhost:8080&lt;/a&gt; and see the administrative screen is functional. Also, install Silverlight (as that is used by RavenDb for the page)&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://consultingblogs.emc.com/blogs/scottcurrier/image_66CC0884.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px 5px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://consultingblogs.emc.com/blogs/scottcurrier/image_thumb_45002FF3.png" width="704" height="232" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You are ready to “rock-and-roll”!&lt;/p&gt;  &lt;p&gt;Tip 3: Back to MVC, the following link provides the essential information to “rewire” your MVC project for use with RavenDb &lt;a title="http://ravendb.net/kb/3/using-ravendb-in-an-asp-net-mvc-website" href="http://ravendb.net/kb/3/using-ravendb-in-an-asp-net-mvc-website"&gt;http://ravendb.net/kb/3/using-ravendb-in-an-asp-net-mvc-website&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Once you have the MVC Controllers inheriting from the RavenDB base controller you can wire up some views for testing. &lt;/p&gt;  &lt;p&gt;My next RavenDb post will be on working with JavaScript and Views&lt;/p&gt;  &lt;p&gt;That’s it for now – Cheers!&lt;/p&gt;  &lt;p&gt;PS: I will resume my tutorial on building &lt;strong&gt;SharePoint 2010 Service Applications soon&lt;/strong&gt;…&amp;#160; &lt;/p&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19159" width="1" height="1"&gt;</description></item><item><title>Vacancies and New Starter update</title><link>http://consultingblogs.emc.com/michelleflynn/archive/2012/04/04/vacancies-and-new-starter-update.aspx</link><pubDate>Wed, 04 Apr 2012 09:35:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19156</guid><dc:creator>Michelle.Flynn</dc:creator><slash:comments>0</slash:comments><description>&lt;DIV class=BlogPostContent&gt;
&lt;P&gt;Morning all&lt;/P&gt;
&lt;P&gt;I have been busy working with the team to hire great people and I am excited to say we have quite a few new joiners coming on board in the next month or so (including a Director of UX, Creative Director, Art Director, Senior Designers, Project Managers, Business Analysts and Solutions Principals&amp;nbsp;- names and faces will be revealed in my next blog)&lt;/P&gt;
&lt;P&gt;We still have live roles for:&lt;/P&gt;
&lt;P&gt;Senior UX Architects&lt;/P&gt;
&lt;P&gt;UX Architects&lt;/P&gt;
&lt;P&gt;Business Analysts (Retail and Financial Services)&lt;/P&gt;
&lt;P&gt;Senior Project Manager (Financial Services and BI/DWH)&lt;/P&gt;
&lt;P&gt;Senior UI Developer&lt;/P&gt;
&lt;P&gt;Copywriter&lt;/P&gt;
&lt;P&gt;Data Architect&lt;/P&gt;
&lt;P&gt;I have full job specs for each of these and more on the insider perks check out my previous &lt;A href="http://consultingblogs.emc.com/michelleflynn/archive/2010/10/15/perks-that-make-jobs-better-the-flynny-sequel.aspx" target=_blank&gt;&lt;FONT color=#0095e6&gt;blog&lt;/FONT&gt;&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Email me on &lt;A href="mailto:emccukrecruitment@emc.com"&gt;&lt;FONT color=#0095e6&gt;emccukrecruitment@emc.com&lt;/FONT&gt;&lt;/A&gt; for the job specs and to submit your CVs.&lt;/P&gt;&lt;/DIV&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19156" width="1" height="1"&gt;</description><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/recruitment/default.aspx">recruitment</category><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/careers/default.aspx">careers</category><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/EMC+Consulting/default.aspx">EMC Consulting</category></item><item><title>Business justifications for using Cloud Foundry</title><link>http://consultingblogs.emc.com/dariuskhadjenouri/archive/2012/03/30/Business-justifications-for-using-Cloud-Foundry.aspx</link><pubDate>Fri, 30 Mar 2012 15:25:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19150</guid><dc:creator>Darius.Khadjenouri</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font face="verdana,geneva"&gt;I have been watching &lt;/font&gt;&lt;font face="verdana,geneva"&gt;Cloud Foundry&lt;/font&gt;&lt;font face="verdana,geneva"&gt; from the sidelines for months and it's about time I get in the game. In my role as an architect I need to be able to communicate to business stakeholders and development teams the value of the architectures I choose. So for me to engage with &lt;/font&gt;&lt;font face="verdana,geneva"&gt;Cloud Foundry&lt;/font&gt;&lt;font face="verdana,geneva"&gt; the first step is to look at what the business justifications are. &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="verdana,geneva"&gt;I am beginning my journey here and I'm still a
professed novice. I am using this blog to see how "on target" my understanding is, with help from you. The objective of this post is to explore why I would consider using Cloud Foundry for my next
project, is it justified, &lt;/font&gt;&lt;font face="verdana,geneva"&gt;and where would I start.&lt;br&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana,geneva"&gt;My previous experience with IaaS (Infrastructure as a
Service) was through my one year free trial with AWS (Amazon web services). For
this I used SpringSource / &lt;/font&gt;&lt;font face="verdana,geneva"&gt;WaveMaker&lt;/font&gt;&lt;font face="verdana,geneva"&gt;, at the time of this trial Cloud Foundry was not a deployment option but it is now. WaveMaker provides drag and drop &lt;/font&gt;&lt;font face="verdana,geneva"&gt;SpringSource development and &lt;/font&gt;&lt;font face="verdana,geneva"&gt;is as far as my Java
skills go. During the trial I was able to create and deploy a small sample
application this took less time than registering for AWS, I can only now imagine what a real developer could
do with these tools? &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="verdana,geneva"&gt;Forgetfully I left my VM running for a quarter
during my free trial and got a bill for $61 for the storage the VM consumed. &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="verdana,geneva"&gt;I wonder what a full blown application with a DB and the other add-ons would actually
cost? Comparatively, it's probably not appropriate for a B&amp;amp;B hosting a web
site and some forms. But if you compare the cost to a scalable infrastructure
able to handle the first hour selling Madonna concert tickets then it make
sense. &amp;nbsp;I would also say that you can
change your IaaS service levels very quickly giving substantial control over cost.
&lt;/font&gt;&lt;/p&gt;&lt;p&gt;Playing with the links below I was able to model my &lt;font face="verdana,geneva"&gt;Madonna concert sales application from between 6 and 16 thousand dollars per month based on the amount and frequency of snapshots needed, stay away from the hourly ones.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;link for cost justification and a worksheet&amp;nbsp; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;font face="verdana,geneva"&gt;&lt;a href="http://aws.amazon.com/economics/"&gt;http://aws.amazon.com/economics/&lt;/a&gt;&lt;/font&gt;
&lt;/li&gt;&lt;li&gt;&lt;font face="verdana,geneva"&gt;&lt;a href="http://calculator.s3.amazonaws.com/calc5.html"&gt;http://calculator.s3.amazonaws.com/calc5.html&lt;/a&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;



&lt;p&gt;&lt;font face="verdana,geneva"&gt;Trying to get my head around Cloud Foundry's I looked back
at what N-tier applications were all about. This architecture separated data,
logic and presentation allowing teams of developers to work on each in isolation. This made it easier to develop in teams with the developers having the ability to concentrate&lt;/font&gt;&lt;font face="verdana,geneva"&gt; on using complex data not extracting or joining it. This is similar to the basic premise
of PaaS, Cloud Foundry, it will separate the platform from the application and
therefore a developer only has to focus the applications instead of the infrastructure.
&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="verdana,geneva"&gt;This may not seem like a major issue at the start of a project, but wait until the end where the time
to deploy becomes an issue, as do clear responsibilities for the application working
on the target platform. One of Cloud Foundry's main promises is to make your life
as a developer a whole lot easier without limiting available choices. You write
your web application, declare services, push it to Cloud Foundry and it deploys
and connects your application to all the required services.&lt;br&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="verdana,geneva"&gt;For the architects and designers the benefits of using Cloud Foundry has
to be the freedom away from the heavy focus on non functional technical
requirement to business requirements. This is assuming that scaling is offloaded to the platform, this
is yet to be proven.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="verdana,geneva"&gt;For the application owner who has already outsourced the end
to end solution this may be thought as someone else's problem, but for the delivery team having
a standard platform has to be reassuring. For the application owner the attraction
comes from taking advantage of cost savings that cloud can offer. So the compelling
story has to be around reliability, overall cost of ownership and with cloud
foundry add to this portability and then this seems to become a good Idea. &lt;/font&gt;&lt;/p&gt;



&lt;p&gt;&lt;font face="verdana,geneva"&gt;&lt;i&gt;&amp;nbsp;"The shift to cloud computing is driving
large-scale, lasting change to the way modern applications are built, deployed,
operated and managed........The introduction of Cloud Foundry is a seminal moment
for the market, intelligently bringing together this dynamic environment via an
open platform built and oriented specifically for the demands of cloud
computing."&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="verdana,geneva"&gt;&lt;i&gt;Eweek.com&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="verdana,geneva"&gt;&lt;a href="http://www.eweek.com/c/a/Cloud-Computing/VMware-Launches-Cloud-Foundry-Open-PAAS-Solution-585043/"&gt;http://www.eweek.com/c/a/Cloud-Computing/VMware-Launches-Cloud-Foundry-Open-PAAS-Solution-585043/&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-weight:bold;"&gt;&amp;nbsp;So what is it in a nutshell?&lt;/span&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="verdana,geneva"&gt;Ultimately Cloud Foundry makes it faster and easier to
build, test, deploy and scale applications. It is a open source platform, and in short includes:&lt;/font&gt;&lt;/p&gt;









&lt;ul&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
self-service application execution engine&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
automation engine for application deployment and
lifecycle management&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
scriptable command line interface (CLI)&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
integration with development tools&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
open architecture for adding development
frameworks&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
application services interface&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
cloud provider interface&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;font face="verdana,geneva"&gt;It supports languages/frameworks like Spring Java, Rails and
Sinatra for Ruby, Node.js. Scala. With additional support via partners including
PHP, Python, .NET . &lt;/font&gt;

&lt;p&gt;&lt;font face="verdana,geneva"&gt;It includes services vFabric Postgres, vFabric RabbitMQ and
Redis and others from the open source community including MySQL and MongoDB. &lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-weight:bold;"&gt;Some reassurance from the community..&lt;/span&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="verdana,geneva"&gt;Cloud foundry could become the preferred choice of
developers who have rated Cloud Foundry as the top cloud platform of choice. This
is because most PaaS offerings will restrict developer choices of frameworks,
application infrastructure services and ultimately deployment clouds. The open
and extensible nature of Cloud Foundry means developers will not be locked into
a single framework, single set of application services or a single cloud. Wide
spread grassroots adoption may be the thing that propels Cloud Foundry over any
of it rivals.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="verdana,geneva"&gt;&lt;i&gt;HP has embraced the open
source alternative to Windows Azure: VMware's Cloud Foundry.&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="verdana,geneva"&gt;&lt;i&gt;HP is currently running the
VMware platform atop the cloud service it privately introduced to a small
number of testers earlier this fall. In all likelihood, the company will
eventually make good on its Windows Azure promise, but at the same time, it's
fully committed to Cloud Foundry, and the platform will be part of HP's cloud
service when it's unofficially unveiled in the spring.&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="verdana,geneva"&gt;&lt;i&gt;The move is a boost for
VMware's project, which seeks to provide a common way of building what are
typically called "platform clouds." VMware runs its own Cloud Foundry service -
also in beta - and several outside outfits have deployed the platform in recent
months, but HP is certainly the biggest name to do so. VMware aims to create a
cloud "ecosystem" where applications can span disparate services - or even move
from service to service.&lt;/i&gt;&lt;/font&gt;&lt;span style="font-weight:bold;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight:bold;"&gt;Getting started.. &lt;/span&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="verdana,geneva"&gt;To help me decide if the next project is a candidate for Cloud Foundry I created the quick checklist below:&lt;br&gt;&lt;/font&gt;&lt;/p&gt;

&lt;ul class="unIndentedList"&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
Is there a dedicated platform architect ready to
do manage deployments release and life-cycles?&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
Is there a clear strategy for managing scaling and are the usage metrics sound?&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
Is there a dedicated infrastructure already in
place?&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
Is there any reason the application can not be on
a public cloud then why not a private cloud?&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
Is there a testing strategy that will separate application
from infrastructure?&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
Is there a cloud strategy for the enterprise or
for the future of the application?&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
Can we save costs?&lt;/font&gt;&lt;/li&gt;
&lt;/ul&gt;







&lt;p&gt;&lt;font face="verdana,geneva"&gt;Once we determine we can develop on cloud infrastructure
then the benefits that should be realized are: &lt;br&gt;&lt;/font&gt;&lt;/p&gt;

&lt;ul class="unIndentedList"&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
Reuse current language and frameworks expertise including IP&lt;br&gt;&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
Make your applications as portable as possible&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
Take advantage of a large open source community&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
Avoid the "works on my machine" reply&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="verdana,geneva"&gt;
Build enterprise scalable application from anywhere
to deploy anywhere&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face="verdana,geneva"&gt;etc..&lt;br&gt;&lt;/font&gt;&lt;/li&gt;
&lt;/ul&gt;





&lt;p&gt;&lt;font face="verdana,geneva"&gt;I hope that the community can add to both of the list
above, but for me this exercise has at least opened my mind to the real benefits
of Cloud Foundry. Now the next step for me is to seriously argue the point on the
next project where we are about to repeat the same old mistakes. As far as extending this post, the next stop for me is to look specifically at Cloud Foundry and .NET&lt;/font&gt;&lt;/p&gt;

&lt;p style="font-weight:bold;"&gt;&lt;font face="verdana,geneva"&gt;Useful links:&lt;/font&gt;&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;font face="verdana,geneva"&gt;&lt;a href="http://blog.springsource.org/2011/03/08/vmware-acquires-wavemaker/"&gt;http://blog.springsource.org/2011/03/08/vmware-acquires-wavemaker/&lt;/a&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face="verdana,geneva"&gt;&lt;a href="http://blog.springsource.org/2011/04/12/launching-cloud-foundry/"&gt;http://blog.springsource.org/2011/04/12/launching-cloud-foundry/&lt;/a&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face="verdana,geneva"&gt;&lt;a href="http://classic.cloudfoundry.com/faq.html"&gt;http://classic.cloudfoundry.com/faq.html&lt;/a&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face="verdana,geneva"&gt;&lt;a href="http://aws.typepad.com/aws/2009/08/springsource-cloud-foundry-enterprise-java-in-the-cloud.html"&gt;http://aws.typepad.com/aws/2009/08/springsource-cloud-foundry-enterprise-java-in-the-cloud.html&lt;/a&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face="verdana,geneva"&gt;&lt;a href="http://classic.cloudfoundry.com/getting_started.html"&gt;http://classic.cloudfoundry.com/getting_started.html&lt;/a&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face="verdana,geneva"&gt;&lt;a href="http://blog.modeltwozero.com/2011/05/running-cloud-foundry-on-amazon-ec2-or.html"&gt;http://blog.modeltwozero.com/2011/05/running-cloud-foundry-on-amazon-ec2-or.html&lt;/a&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face="verdana,geneva"&gt;&lt;a href="http://dev.wavemaker.com/wiki/bin/wmdoc_6.4/CloudTutorial"&gt;http://dev.wavemaker.com/wiki/bin/wmdoc_6.4/CloudTutorial&lt;/a&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face="verdana,geneva"&gt;&lt;a href="http://www.cloudave.com/11714/vmware-disrupts-paas-space-with-cloud-foundry/"&gt;http://www.cloudave.com/11714/vmware-disrupts-paas-space-with-cloud-foundry/&lt;/a&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;font face="verdana,geneva"&gt;&lt;/font&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19150" width="1" height="1"&gt;</description><category domain="http://consultingblogs.emc.com/dariuskhadjenouri/archive/tags/PaaS/default.aspx">PaaS</category><category domain="http://consultingblogs.emc.com/dariuskhadjenouri/archive/tags/Cloud/default.aspx">Cloud</category><category domain="http://consultingblogs.emc.com/dariuskhadjenouri/archive/tags/cloud+Foundry/default.aspx">cloud Foundry</category><category domain="http://consultingblogs.emc.com/dariuskhadjenouri/archive/tags/Spring/default.aspx">Spring</category><category domain="http://consultingblogs.emc.com/dariuskhadjenouri/archive/tags/Amazon/default.aspx">Amazon</category><category domain="http://consultingblogs.emc.com/dariuskhadjenouri/archive/tags/VMware/default.aspx">VMware</category><category domain="http://consultingblogs.emc.com/dariuskhadjenouri/archive/tags/IaaS/default.aspx">IaaS</category><category domain="http://consultingblogs.emc.com/dariuskhadjenouri/archive/tags/AWS/default.aspx">AWS</category></item><item><title>On the excesses of digital intervention</title><link>http://consultingblogs.emc.com/marcusalexander/archive/2012/03/30/on-the-excesses-of-digital-intervention.aspx</link><pubDate>Fri, 30 Mar 2012 07:51:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19149</guid><dc:creator>marcus.alexander</dc:creator><slash:comments>0</slash:comments><description>&lt;br&gt;I used to freecycle. I've always been environmentally conscious and I don't like waste.&amp;nbsp; I grew up renewing and repurposing old objects and skip-diving. So when I heard about the freecycle network of websites a few years ago I took to it like a duck to water.&lt;br&gt;&lt;br&gt;Now, however, I use something much easier - streetcycling. That's not a real name, it's something I made up. It's been a tradition in my neigbhourhood ever since the Rag &amp;amp; Bone man passed away. Streetcycling is simple - if there's something you don't want, leave it out on the pavement. There's an tacit agreement in the area that anything left out is up for grabs - in a polite, helpful way.&lt;br&gt;&lt;br&gt;Over the years I've managed to pass on an old table, bicycle parts, both pots and numerous pot plants (they keep propagating), a record player, some building equipment, kitchen scales, a laptop bag, redundant IT peripherals... The list is endless. &lt;br&gt;&lt;br&gt;All without the Internet. For one simple reason - it's easier. No amount of 'social' or 'layering' makes a difference here. I don't need kudos, or feelgood, or badges, I just want to get rid of stuff, and know that it's going to a good home.&amp;nbsp; It works.&lt;br&gt;&lt;br&gt;Technology is there as an enabler. Either to do new things, or to make existing things easier to do. Reduce the friction. The problem is in understanding what the friction is, and whether it is worth reducing. As we develop further, the gains are increasingly marginal.&lt;br&gt;&lt;br&gt;Take the recently hyped "this is my jam". Users can share, with their friends, their latest favourite track. It sends out a tweet with the #thisismyjam hashtag. It's a celebration of the ephemeral, the momentary, the now. It's the latest attempt at augmented serendipity. Except, a few weeks on, people are now bypassing the site and sending out their own tweets, with the #thisismyjam hashtag on it. The website's already failed, beaten by its own meme. And why - because it's not as easy as not using it. It didn't reduce friction, it generated it.&lt;br&gt;&lt;br&gt;Identifying the friction is hard.&amp;nbsp; Twitter had the genius to create an almost frictionless environment - for anything - the social equivalent of assembly code. Most ventures don't. Last year's buzz around gamification was a waste of time - literally. The 'game layer' is increased friction, increased obstacle. Increased difficulty. Fine for a time of tired, lazy, post-millenial excess, or bored 30-something neo-Barley hipsters - but it's not what people need in times of need. Right now, people want things easier, faster, cheaper and better. Supermarkets are losing out to farmer's markets because they are all of the above. Freecycle may give kudos, but streetcycle wins on simplicity alone.&lt;br&gt;&lt;br&gt;Reduced friction is critical to business success. This is we do with our clients at EMC Consulting. Facilitating transformation in processes, in customer engagement, in purchase flows, in office environments. That which flows freely is cheaper, and more effective. Our work in retail banking helps customers do things faster, more simply and wherever they are - at work, at home, on holiday. Our omnichannel approach to retail joins the dots in a customer-centric way, creating simple, effective journeys in which purchase becomes inevitable. Once the path is clear, anything is possible.&lt;br&gt;&lt;br&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19149" width="1" height="1"&gt;</description><category domain="http://consultingblogs.emc.com/marcusalexander/archive/tags/freecycle/default.aspx">freecycle</category><category domain="http://consultingblogs.emc.com/marcusalexander/archive/tags/friction/default.aspx">friction</category><category domain="http://consultingblogs.emc.com/marcusalexander/archive/tags/omnichannel/default.aspx">omnichannel</category><category domain="http://consultingblogs.emc.com/marcusalexander/archive/tags/thisismyjam/default.aspx">thisismyjam</category><category domain="http://consultingblogs.emc.com/marcusalexander/archive/tags/game+layer/default.aspx">game layer</category></item><item><title>Removing customized permissions for SharePoint list items and documents</title><link>http://consultingblogs.emc.com/robertoortega/archive/2012/03/28/removing-customized-permissions-for-sharepoint-list-items-and-documents.aspx</link><pubDate>Wed, 28 Mar 2012 04:00:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19154</guid><dc:creator>roberto.ortega</dc:creator><slash:comments>0</slash:comments><description>&lt;b&gt;Background and Problem&lt;/b&gt;
&lt;p&gt;
Recently I had to reset the permission of a large number of files so that they would inherit permissions from the library instead of having their own customized permissions. I had gotten into a pickle after copying over 50 thousand files over to a new location only to realize later that the client did not need the file-level permission from the old location.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;The Solution&lt;/b&gt;
&lt;/p&gt;

&lt;p&gt;
Of course I could have redone the copy, which was originally with a third party tool, specifying not to include the permissions. I did that for the files I copied later. For the first set of file, I simply wrote a simple one-liner PowerShell to do the reinheritance as follows.
&lt;/p&gt;

&lt;pre&gt;(get-spweb "http://example.org/sites/somesite").Lists["Collaboration"].Items | %{ $_.ResetRoleInheritance() }
&lt;/pre&gt;I was surprised by how fast this runs. It only took a few seconds. It went ahead and reset all the items and folders in the library.&lt;br&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19154" width="1" height="1"&gt;</description></item><item><title>Big Data – Doing the Research</title><link>http://consultingblogs.emc.com/scottcurrier/archive/2012/03/15/big-data-doing-the-research.aspx</link><pubDate>Thu, 15 Mar 2012 15:02:41 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19134</guid><dc:creator>Scott.Currier</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Nope, I’m not an expert here but I keep seeing this phrase “big data” thrown around (very much like the term “cloud”) and these terms are often left open to interpretation. My advice is to spend a few minutes and research these (especially if you’re a decision maker listening to market hype).    &lt;br /&gt;The most succinct definition of “big data” IMHO is simply this: large datasets that require substantial resources to conduct ETL/simulation/analysis in a timely fashion. That’s it.&lt;/p&gt;  &lt;p&gt;What I think people (including myself) can get hung up on are the ancillary associations with big data such as business intelligents (BI), storage architecture/availability, and parallelism among others. All of these will factor into purchase decisions. However, ancillary associations should not be grouped together or mixed in with the basic definition of “big data”.&lt;/p&gt;  &lt;p&gt;For example, the decision to purchase a BI solution depends on how much pre-processed information (structure) you end up with at the end of your ETL process or simulation. Lower end BI solutions may be perfectly fine in this case. Disk performance versus cost is not part of the “big data” definition as such but remains a substantial factor in evolving a workable solution (ex: comparing IO costs between solid state disks versus magnetic platters). This next link is an interesting presentation related to the pharmaceutical industry on the choice of database software. Highly recommended even if you may not agree with everything said.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;   &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:1e04afe5-664e-43f6-90a3-471aaade7ed3" class="wlWriterEditableSmartContent"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=QQdbTpvjITM" target="_new"&gt;&lt;img src="http://consultingblogs.emc.com/blogs/scottcurrier/videob7a24ab89b05_368BC866.jpg" style="border-style:none;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;    &lt;br /&gt;    &lt;br /&gt;link: &lt;a href="http://www.youtube.com/watch?v=QQdbTpvjITM"&gt;www.youtube.com/watch?v=QQdbTpvjITM&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Another way I see “big data” is simply how much are you willing to spend to reach your goal. It’s old school thinking but fits nicely here. &lt;strong&gt;The difference now is that allied technologies that handle “big data” have only recently evolved into more cost friendly solutions&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;Also see &lt;a title="http://www.greenplum.com/products/greenplum-database" href="http://www.greenplum.com/products/greenplum-database"&gt;http://www.greenplum.com/products/greenplum-database&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Still confused, this is a fun (and basic) video that talks about what big data is about:&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:4795d2a6-58c8-46b0-bf4e-aed756dc465d" class="wlWriterEditableSmartContent"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=qD5S6yZXaVI" target="_new"&gt;&lt;img src="http://consultingblogs.emc.com/blogs/scottcurrier/video151f192943ca_46B7905F.jpg" style="border-style:none;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Big data purchase decisions may include solutions for processing massive amounts of “social” data, examples&lt;/p&gt;  &lt;p&gt;Greenplum: &lt;a title="http://gigaom.com/cloud/emc-greenplum-puts-a-social-spin-on-big-data/" href="http://gigaom.com/cloud/emc-greenplum-puts-a-social-spin-on-big-data/"&gt;http://gigaom.com/cloud/emc-greenplum-puts-a-social-spin-on-big-data/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Storm: &lt;a title="http://engineering.twitter.com/2011/08/storm-is-coming-more-details-and-plans.html" href="http://engineering.twitter.com/2011/08/storm-is-coming-more-details-and-plans.html"&gt;http://engineering.twitter.com/2011/08/storm-is-coming-more-details-and-plans.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Background Information: &lt;a title="http://bigdataintegration.blogspot.com/2012/01/how-would-your-enterprises-social-graph.html" href="http://bigdataintegration.blogspot.com/2012/01/how-would-your-enterprises-social-graph.html"&gt;http://bigdataintegration.blogspot.com/2012/01/how-would-your-enterprises-social-graph.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;That’s it…Cheers!&lt;/p&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19134" width="1" height="1"&gt;</description></item><item><title>A handy set of extension methods for handling null fields and properties</title><link>http://consultingblogs.emc.com/robertoortega/archive/2012/03/14/a-handy-set-of-extension-methods-for-handling-null-fields-and-properties.aspx</link><pubDate>Wed, 14 Mar 2012 05:00:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19152</guid><dc:creator>roberto.ortega</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;b&gt;Background and Problem&lt;/b&gt;

&lt;/p&gt;&lt;p&gt;
Often before dereferencing variables or call methods, we need check for null so that we avoid throwing an exception. Sometimes it is desirable to throw an exception, have it logged, show to the user or sent to an administrator so that the issue can be addressed, but in any situation where it is known that a variable may correctly be null or if you are writing error handling code where all bets are off, you must explicitly check before you dereference.&lt;/p&gt;&lt;p&gt;While handling an error condition in some Active Directory code recently I had to write this lovely snippit: &lt;br&gt;&lt;/p&gt;
&lt;pre style="font-family:monospace;"&gt;    string userDistinguishedName = string.Empty;
    string connectedServer = "Not determined";
    if (userPrincipal != null)
       userDistinguishedName = userPrincipal.DistinguishedName;
    if (groupPrincipalContext != null)
       connectedServer = groupPrincipalContext.ConnectedServer;

    string errorText = string.Format(
        @"User: '{0}'; Group: '{1}\{2}'; Group container: '{3}'; Group Context Server: '{4}'",
        userDistinguishedName, groupDomainName, groupName, 
        commonContainer, 
        connectedServer);&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;From the point of view of code elegance, this snippit is not actually lovely at all. One issue is that it spreads out the relatively simply task of creating a text message out to several lines. String.Format handles null values for us very nicely, but it does not and C# does not give us an easy way to perform the "." (dot) dereference safely handling for nulls and punting in a way similar to COALESE in SQL. As a side note, C# has a convenient ?? (double question mark) operator for COALESE-like functionality but does not handle dereferencing.&lt;/p&gt;&lt;p&gt;Another issue with the code above is that it also has an unnatural sequence of logic and concerns. This is a very common issue in programming, but as much as it can be avoided the better. In this case all we want to do is construct a simple string but to do so, we have to start preparing for it six lines earlier by declaring otherwise useless variables with default values, and using if..then logic, as if we were programming in assembler or something. Somebody pull out an 8086 so that I can do a JZ (jump if zero). What a pain!&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;The Solution&lt;/b&gt;
&lt;/p&gt;

&lt;p&gt;
I wrote a simple extensions class that in C# will attach to any class and allow us to write much cleaner, more natural code.&lt;br&gt;&lt;/p&gt;

&lt;pre style="font-family:monospace;"&gt;    static class Extensions
    {
        /// &amp;lt;summary&amp;gt;
        /// Dereference only if the object is not null. May throw exception if 
        /// the property 'getter' method throws an exception, which can happen
        /// depending on the internal state of the object. Use SafeIfNotNull 
        /// to eat any exceptions due to the call.
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;returns&amp;gt;The value returned by the 'getter' method, or the default
        /// value for the TReturn type if the instance is null.&amp;lt;/returns&amp;gt;
        public static TReturn IfNotNull&amp;lt;t, treturn=""&amp;gt;(
            this T instance, Func&amp;lt;t, treturn=""&amp;gt; getter) where T : class
        {
            return IfNotNull&amp;lt;t, treturn=""&amp;gt;(instance, getter, 
                default(TReturn));
        }
 
        /// &amp;lt;summary&amp;gt;
        /// Dereference only if the object is not null. Will not throw 
        /// exception if the property 'getter' method throws an exception, 
        /// which can happen depending on the internal state of the object.
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;returns&amp;gt;The value returned by the 'getter' method, or the default 
        /// value for the TReturn type if either
        /// the instance is null or if the getter throws an exception.&amp;lt;/returns&amp;gt;
        public static TReturn SafeIfNotNull&amp;lt;t, treturn=""&amp;gt;(this T instance, 
            Func&amp;lt;t, treturn=""&amp;gt; getter) where T : class
        {
            return SafeIfNotNull&amp;lt;t, treturn=""&amp;gt;(instance, getter, 
                default(TReturn));
        }
 
        /// &amp;lt;summary&amp;gt;
        /// Dereference only if the object is not null. Will not throw exception
        /// if the property 'getter' method throws an exception, which can 
        /// happen depending on the internal state of the object.&amp;lt;/summary&amp;gt;
        /// &amp;lt;returns&amp;gt;The value returned by the 'getter' method, or 
        /// &amp;lt;i&amp;gt;defaultValue&amp;lt;/i&amp;gt; for the TReturn type if 
        /// the instance is null or if the getter throws an exception.
        /// &amp;lt;/returns&amp;gt;
        public static TReturn SafeIfNotNull&amp;lt;t, treturn=""&amp;gt;(this T instance, 
            Func&amp;lt;t, treturn=""&amp;gt; getter, TReturn defaultValue) where T : class
        {
            try { 
                return IfNotNull&amp;lt;t, treturn=""&amp;gt;(
                    instance, getter, default(TReturn)); 
            }
            catch { return defaultValue; }
        }
 
        /// &amp;lt;summary&amp;gt;
        /// Dereference only if the object is not null. May throw exception if
        /// the property 'getter' method throws an exception, which can 
        /// happen depending on the internal state of the object. Use 
        /// SafeIfNotNull to eat any exceptions due to the call.&amp;lt;/summary&amp;gt;
        /// &amp;lt;returns&amp;gt;The value returned by the 'getter' method, or 
        /// &amp;lt;i&amp;gt;defaultValue&amp;lt;/i&amp;gt; for the TReturn type if the instance is null.
        /// &amp;lt;/returns&amp;gt;
        public static TReturn IfNotNull&amp;lt;t, treturn=""&amp;gt;(this T instance, 
            Func&amp;lt;t, treturn=""&amp;gt; getter, TReturn defaultValue) where T : class
        {
            if (instance != null) 
                return getter(instance);
            return defaultValue;
        }
    }
&lt;/pre&gt;&lt;b&gt;How to use it&lt;/b&gt;&lt;br&gt;&lt;p&gt;Using this solution is intuitive if you have used lambda expressions in C# already. The following example shows the same error message construction as above, except this time using the IfNotNull method.&lt;br&gt;&lt;/p&gt;

&lt;pre style="font-family:monospace;"&gt;    string errorText = string.Format(
        @"User: '{0}'; Group: '{1}\{2}'; Group container: '{3}'; Group Context Server: '{4}'",
        userPrincipal.IfNotNull(u =&amp;gt; u.DistinguishedName), groupDomainName, groupName, 
        commonContainer, 
        groupPrincipalContext.IfNotNull(g =&amp;gt; g.ConnectedServer, "Not determined"));&lt;br&gt;&lt;/pre&gt;
As you can see, the concerns are better encapsulated and kept together and the main objective of constructing an error string is the first thing you see following by the format we want followed by the values. Within those values we can handle the minor nuisance of having handle null values and provide defaults.&amp;nbsp; I included extensive comments on the functions so you should be able to read those so that you understand how and when to use each one. Don't you wish all C# methods were so documented?&lt;p&gt;&lt;b&gt;Feedback&lt;/b&gt; &lt;/p&gt;&lt;p&gt;I would appreciate any feedback and in particular, any improvements to the code. I did not allow it to handle methods or setter function for no other reason other than that I did not need it, but it would also be useful.&lt;br&gt;&lt;/p&gt;Please contact me directly at roberto.ortega (at) emc.com.&lt;br&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19152" width="1" height="1"&gt;</description></item><item><title>New Blog Location</title><link>http://consultingblogs.emc.com/christianwade/archive/2012/03/09/new-blog-location.aspx</link><pubDate>Fri, 09 Mar 2012 23:21:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19132</guid><dc:creator>christian.wade</dc:creator><slash:comments>1</slash:comments><description>I have relocated my blog. &amp;nbsp;Here is the new address:&amp;nbsp;
&lt;a href="http://christianwade.wordpress.com/"&gt;http://christianwade.wordpress.com/&lt;/a&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19132" width="1" height="1"&gt;</description></item><item><title>Checking in all files in a document library from PowerShell</title><link>http://consultingblogs.emc.com/robertoortega/archive/2012/03/03/checking-in-all-files-in-a-document-library-from-powershell.aspx</link><pubDate>Sat, 03 Mar 2012 05:00:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19151</guid><dc:creator>roberto.ortega</dc:creator><slash:comments>0</slash:comments><description>&lt;b&gt;Background and Problem&lt;/b&gt;
&lt;p&gt;
Recently I had to check in a large number of files in that were checked out to me due to another process that I had run. SharePoint does provide a simple way to do this for many 
files, but since I also had to run this over several document libraries.
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The Solution&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;
I wrote a simple solution to do the check in.
&lt;/p&gt;
&lt;pre&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") &amp;gt; $null
 
function global:Get-SPSite($url){
    return new-Object Microsoft.SharePoint.SPSite($url)
}
 
#Change these variables to your site URL and list name
$siteColletion = Get-SPSite("http://example.org/");

$folder = $siteColletion.RootWeb.Folders["Documents"];

$collFiles = $folder.Files;

for ($intIndex=0; $intIndex -ne $folder.Count; $intIndex++)
{
    if ($folder[$intIndex].CheckedOutBy.LoginName -eq "domain\ortegroadmin")
    {
        $folder[$intIndex].CheckIn("");
    }
}
#Dispose of the site object
$siteColletion.Dispose()

&lt;/pre&gt;I did not parametrize the script. Instead, I ran it a debugger to allow me to correct the myriad of issues that may come up while handling files in general. It would be interesting to also handle the case of taking ownership of checked out files and undoing them. This can be useful for running certain third-party tools over the document library if they can't handle checked out files well.&lt;br&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19151" width="1" height="1"&gt;</description><category domain="http://consultingblogs.emc.com/robertoortega/archive/tags/Script/default.aspx">Script</category><category domain="http://consultingblogs.emc.com/robertoortega/archive/tags/PowerShell/default.aspx">PowerShell</category><category domain="http://consultingblogs.emc.com/robertoortega/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://consultingblogs.emc.com/robertoortega/archive/tags/SharePoint+2010_2F00_WSS+4/default.aspx">SharePoint 2010/WSS 4</category></item><item><title>Our latest recruitment news</title><link>http://consultingblogs.emc.com/michelleflynn/archive/2012/02/06/our-latest-recruitment-news.aspx</link><pubDate>Mon, 06 Feb 2012 16:46:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19104</guid><dc:creator>Michelle.Flynn</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;A quick update for you to let you know all the exciting perm roles are currently looking to fill:&lt;/P&gt;
&lt;P&gt;Senior UX Architects&lt;/P&gt;
&lt;P&gt;UX Architects&lt;/P&gt;
&lt;P&gt;Business Analysts (Retail and Financial Services)&lt;/P&gt;
&lt;P&gt;Senior Project Managers (Retail and Financial Services)&lt;/P&gt;
&lt;P&gt;Associate Creative Director&lt;/P&gt;
&lt;P&gt;Senior UI Developer&lt;/P&gt;
&lt;P&gt;Art Directors&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Senior Designers&lt;/P&gt;
&lt;P&gt;Copywriter&lt;/P&gt;
&lt;P&gt;I have full job specs for each of these and more on the insider perks check out my previous &lt;A href="http://consultingblogs.emc.com/michelleflynn/archive/2010/10/15/perks-that-make-jobs-better-the-flynny-sequel.aspx" target=_blank&gt;blog&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Email me on &lt;A href="mailto:emccukrecruitment@emc.com"&gt;emccukrecruitment@emc.com&lt;/A&gt; for the job specs and to submit your CVs.&lt;/P&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19104" width="1" height="1"&gt;</description><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/financial+services/default.aspx">financial services</category><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/User+experience/default.aspx">User experience</category><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/recruitment/default.aspx">recruitment</category><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/retail/default.aspx">retail</category><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/design/default.aspx">design</category><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/consultancy/default.aspx">consultancy</category><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/project+management/default.aspx">project management</category><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/business+analysis/default.aspx">business analysis</category><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/careers/default.aspx">careers</category><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/EMC+Consulting/default.aspx">EMC Consulting</category></item><item><title>Best practice for pushing programmatic updates to SharePoint development, test and production environments</title><link>http://consultingblogs.emc.com/robertoortega/archive/2012/02/04/best-practice-for-pushing-programmatic-updates-to-sharepoint-development-test-and-production-environments.aspx</link><pubDate>Sat, 04 Feb 2012 05:00:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19121</guid><dc:creator>roberto.ortega</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;b&gt;Background &lt;/b&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Often when deploying or upgrading a SharePoint-based application, it is necessary to update the schema or content for the site. As an example if a simple web part is to be updated so that it supports a new field in a list, the following will typically need to take place:&amp;nbsp;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;The field needs to be added to the list or content type.&lt;br&gt;&lt;/li&gt;&lt;li&gt;The field order needs to be set for the list.&lt;/li&gt;&lt;li&gt;The field may need to be surfaced in a view for display, filtering, grouping, or sorting.&lt;/li&gt;&lt;li&gt;The field values for existing items may need to be set.&lt;/li&gt;&lt;li&gt;The web part must be deployed and made available within the site.&lt;/li&gt;&lt;li&gt;The web part must be added to a page and configured.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;b&gt;Code deployment best practice&lt;/b&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;In this situation and in any other where new functionality is being delivered in a solution, the most elegant solution is to handle this programmatically rather than by using manual steps. I recommend that the programmatic approach is the best practice. As is often the case, best practice is easier said than done. This approach will require using API that programmers generally do not use very much. Testing that the deployment code works can also be very difficult because for many code/run/test cycles you will need to perform a site collection restoration which can take several minutes or longer.&lt;/p&gt;&lt;p&gt;The ideal final result would be a simple command-line or one-click installation. To achieve this, the programmers need to write all the deployment code. There are several ways to do this for SharePoint application deployment and upgrades and each has its own merits.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Create an elaborate batch file, or PowerShell scripts that automate the installation of the solution, by preparing the environment as in steps 1-4 above, deploy the web part file or WSP solution containing it, and add it to the page.&lt;/li&gt;&lt;li&gt;Create a simple batch files or scripts for deployment of WSP and write deployment code within the activate and deactivate event receivers for the features within the WSP.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;With either approach, once the code is well tested, you can free up valuable time that you would otherwise need to deploy and redeploy in each environment. You probably have a local development environment on your workstation or a virtual machine, a colleague may also have their own local dev environment, you should also have a central or integration development environment for combining everyone's code, a test environment and a production environment. Each of these will need to be deployed possibly multiple times, especially in the case of integration dev and test. If your deployment is not automated, then in each environment you may have installation errors that prevent you from reliably reproducing features and bugs across the environment as you promote code and find bugs.&lt;br&gt;&lt;/p&gt;&lt;p&gt;The alternative, which is manual deployment and configuration, can certainly be made relatively rigorous by having documentation for the steps to take while deploying. The problem with this tends to be the lack of governance and the general distaste people have for following long detailed written instructions. In certain industries, such as pharmaceuticals and certain manufacturing, these written instructions for deployment are common. They have their basis in manufacturing operations and may be called IQ/OP/PQ for Installation Qualification, Operation Qualification, and Performance Qualification. They even come with built-in verification steps that must be individually signed off on and governance around the entire process such that the installer must submit the checklist supporting the fact that all steps were read and evaluated for correctness on the effected machines. &lt;/p&gt;&lt;p&gt;This process is often the bane of operational personnel in IT. And writing it and getting approval from the governance team for the level of detail sufficient screen shots and sufficient testing procedures can be very time consuming. In this respect, if you have a system that deploys itself with a single command line, then the only thing that the installer has to do is verify that certain new deployed elements exist and that error logs and event logs do not show that any errors or warnings that are related to the installation.&lt;br&gt;&lt;/p&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19121" width="1" height="1"&gt;</description><category domain="http://consultingblogs.emc.com/robertoortega/archive/tags/Application+Development/default.aspx">Application Development</category><category domain="http://consultingblogs.emc.com/robertoortega/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>2012, Year of the SPDragon</title><link>http://consultingblogs.emc.com/scottcurrier/archive/2012/01/29/2012-year-of-the-spdragon.aspx</link><pubDate>Mon, 30 Jan 2012 00:24:47 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19099</guid><dc:creator>Scott.Currier</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This my latest installment of SPDragon – Now with SharePoint 2010 Web Parts!!!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://consultingblogs.emc.com/blogs/scottcurrier/image_67FBFBE2.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://consultingblogs.emc.com/blogs/scottcurrier/image_thumb_1B944274.png" width="680" height="361" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;click on area below to watch on youtube&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:dcb52354-ff86-44fb-9faa-077cdb42ff32" class="wlWriterEditableSmartContent"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=4F3OjZho7xM&amp;amp;feature=youtube_gdata_player" target="_new"&gt;&lt;img src="http://consultingblogs.emc.com/blogs/scottcurrier/video9b5a2874a33b_319AAE06.jpg" style="border-style:none;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="width:682px;clear:both;font-size:.8em;"&gt;SPDragon–click area to watch on YouTube&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;Media Credits:&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.flickr.com/photos/25802865@N08/6631322331/"&gt;chooyutshing&lt;/a&gt; via &lt;a href="http://photopin.com"&gt;photopin&lt;/a&gt; &lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.0/"&gt;cc&lt;/a&gt; &lt;a href="http://www.flickr.com/photos/cyndy666/6705471817/"&gt;cyndy666&lt;/a&gt; via &lt;a href="http://photopin.com"&gt;photopin&lt;/a&gt; &lt;a href="http://creativecommons.org/licenses/by-nc-nd/2.0/"&gt;cc&lt;/a&gt; &lt;a href="http://www.flickr.com/photos/mura82/6577784073/"&gt;Francesco Muratori&lt;/a&gt; via &lt;a href="http://photopin.com"&gt;photopin&lt;/a&gt; &lt;a href="http://creativecommons.org/licenses/by-nc/2.0/"&gt;cc&lt;/a&gt; &lt;a href="http://www.flickr.com/photos/9545289@N05/4806158208/"&gt;tonbabydc&lt;/a&gt; via &lt;a href="http://photopin.com"&gt;photopin&lt;/a&gt; &lt;a href="http://creativecommons.org/licenses/by-nc-nd/2.0/"&gt;cc&lt;/a&gt; &lt;a href="http://www.flickr.com/photos/kyletaylor/3927189426/"&gt;Kyle Taylor, Dream It. Do It. World Tour&lt;/a&gt; via &lt;a href="http://photopin.com"&gt;photopin&lt;/a&gt; &lt;a href="http://creativecommons.org/licenses/by/2.0/"&gt;cc&lt;/a&gt; &lt;a href="http://www.flickr.com/photos/daves-f-stop/5473406178/"&gt;Dave Morrow's Custom Creations&lt;/a&gt; via &lt;a href="http://photopin.com"&gt;photopin&lt;/a&gt; &lt;a href="http://creativecommons.org/licenses/by/2.0/"&gt;cc&lt;/a&gt; &lt;a href="http://www.flickr.com/photos/sprengben/4925677979/"&gt;Sprengben [why not get a friend]&lt;/a&gt; via &lt;a href="http://photopin.com"&gt;photopin&lt;/a&gt; &lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.0/"&gt;cc&lt;/a&gt; &lt;a href="http://www.flickr.com/photos/stuckincustoms/2221402277/"&gt;Stuck in Customs&lt;/a&gt; via &lt;a href="http://photopin.com"&gt;photopin&lt;/a&gt; &lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.0/"&gt;cc&lt;/a&gt; &lt;a href="http://www.flickr.com/photos/yakobusan/3986658544/"&gt;Jakob Montrasio&lt;/a&gt; via &lt;a href="http://photopin.com"&gt;photopin&lt;/a&gt; &lt;a href="http://creativecommons.org/licenses/by/2.0/"&gt;cc&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;Music: &lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Artist/Composer: &lt;a href="http://www.archive.org/search.php?query=creator%3A%22yuanji-chen%22"&gt;yuanji-chen&lt;/a&gt;     &lt;br /&gt;Keywords: &lt;a href="http://www.archive.org/search.php?query=subject%3A%22Chinese%22"&gt;Chinese&lt;/a&gt;; &lt;a href="http://www.archive.org/search.php?query=subject%3A%22Folk+Electrical%22"&gt;Folk Electrical&lt;/a&gt;; &lt;a href="http://www.archive.org/search.php?query=subject%3A%22China-wave%22"&gt;China-wave&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Creative Commons license: &lt;a href="http://creativecommons.org/licenses/publicdomain/"&gt;Public Domain&lt;/a&gt;&lt;/p&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19099" width="1" height="1"&gt;</description></item><item><title>Restoring from Enterprise to Standard can have very strange effects</title><link>http://consultingblogs.emc.com/robertoortega/archive/2012/01/29/restoring-from-enterprise-to-standard-can-have-very-strange-effects.aspx</link><pubDate>Sun, 29 Jan 2012 21:37:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19120</guid><dc:creator>roberto.ortega</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;b&gt;Background and Problem&lt;/b&gt;
&lt;/p&gt;&lt;p&gt;While preparing a development environment for myself, I ran into an error that took me some time to resolve. I had restored a copy of a site collection that contained a SharePoint-based application I had developed. This application used OOTB SharePoint forms, ASPX custom pages and also InfoPath forms. When I had everything set up, I began to test the application to make sure the configuration was okay. Everything was working except for the InfoPath forms. 

&lt;/p&gt;&lt;p&gt;The error shown to the user is “The specified form template could not be found, or is not compatible with rendering in the browser. It might need to be republished as a browser-enabled form.” The only verbose message that was logged to the ULS was “Failing to map invalid relative URL ~list/Item/template.xsn to an absolute site URL” and “FormInvocation: Could not find list ~list/Item/template.xsn.” Other than that were no other errors.

&lt;/p&gt;&lt;p&gt;&lt;b&gt;The Solution&lt;/b&gt;
&lt;/p&gt;&lt;p&gt; As is often the case the solution was simple once I had figured it out. I had installed my development system using a standard license, while the production system was using an enterprise license. When I set the license I figured I would know when I have an issue that requires enterprise and I can upgrade to it if I need to. Since I was not getting an error that directly indicated that a feature was not available or that the license level was not high enough for the operation, I looked elsewhere to solve the problem for a couple of hours. After upgrading to enterprise, the InfoPath forms worked perfectly.

&lt;/p&gt;&lt;p&gt;This experience shows that restoring a site collection from enterprise to standard can have very strange effects. I stumbled on this once, but there be many more. There is no warning when do the restore, and the error messages that surface later do not indicate the root of the problem. It’s even possible that some things break and do not produce an error message at all. In my example, the “error” logging is actually at the verbose level. Therefore it simply takes knowing that even for your development environment, you will need the same type of license as production no matter what features you think you need to use and that we cannot depend on getting an error message that will specifically tell us that a certain feature will not work due the license level. 

&lt;/p&gt;&lt;p&gt;&lt;b&gt;Additional Notes&lt;/b&gt;
&lt;/p&gt;&lt;p&gt;
On my development machine, it appears that upgrading from standard to enterprise deleted the master key in the secure store. It was a good thing that I had recorded it when I first set it up a few days before. After providing the original master key all of credentials that I had set up reappeared.

&lt;/p&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19120" width="1" height="1"&gt;</description><category domain="http://consultingblogs.emc.com/robertoortega/archive/tags/SharePoint+2010_2F00_WSS+4/default.aspx">SharePoint 2010/WSS 4</category></item><item><title>What happened at Last Orders?</title><link>http://consultingblogs.emc.com/michelleflynn/archive/2012/01/27/what-happened-at-last-orders.aspx</link><pubDate>Fri, 27 Jan 2012 15:14:45 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19098</guid><dc:creator>Michelle.Flynn</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;We are very lucky to have Mark Wilson as one of our taverners as he writes up brilliant blogs to remind everyone who was there what happened and to show those who were not able to make it what they missed.&lt;/p&gt;  &lt;p&gt;Mark again has been a star and here is his &lt;a href="http://www.markwilson.co.uk/blog/2012/01/last-orders-at-the-fantastic-tavern-tftlondon.htm?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+marksweblog+%28markwilson.it%29"&gt;blog&lt;/a&gt; for you to check out.&lt;/p&gt;  &lt;p&gt;Also for those of you who loved Leemail (the service that lets you sign up to any website, subscribe to any newsletter and never worry about what may happen to your email) but missed the link for a special invite just click &lt;a href="https://leemail.me/r/TFT"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I will be collating all of the presentations and will post them shortly.&lt;/p&gt;  &lt;p&gt;For now taverners watch this space.....&lt;/p&gt;  &lt;p&gt;&lt;a href="http://consultingblogs.emc.com/blogs/michelleflynn/image_1C8C35D5.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://consultingblogs.emc.com/blogs/michelleflynn/image_thumb_1B4CBE58.png" width="244" height="183" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;A packed house listening to Mike Short, VP of Innovation and R&amp;amp;D at O2/Telefonica&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://consultingblogs.emc.com/blogs/michelleflynn/image_36851759.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://consultingblogs.emc.com/blogs/michelleflynn/image_thumb_781F53A5.png" width="244" height="183" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;How about a prize for the person who can name the most taverners???&lt;/p&gt;  &lt;p&gt;&lt;a href="http://consultingblogs.emc.com/blogs/michelleflynn/image_7BB4496A.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://consultingblogs.emc.com/blogs/michelleflynn/image_thumb_1D3609AB.png" width="244" height="183" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Let the dancing begin…&lt;/p&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19098" width="1" height="1"&gt;</description></item><item><title>Last Orders at The Bar – The details</title><link>http://consultingblogs.emc.com/michelleflynn/archive/2012/01/25/last-orders-at-the-bar-the-details.aspx</link><pubDate>Wed, 25 Jan 2012 13:51:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19095</guid><dc:creator>Michelle.Flynn</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;A message from Matt Bagwell&amp;nbsp;&lt;/P&gt;
&lt;P&gt;"On the eve of the &lt;A href="http://consultingblogs.emc.com/michelleflynn/archive/2012/01/12/the-fantastic-tavern-last-orders-at-the-bar.aspx" target=_blank&gt;Last Orders at the Bar Fantastic Tavern&lt;/A&gt; event, I wanted to whet your appetite for the evening ahead and ensure that come rain or shine (mostly rain I suspect), you brave the weather, make the trip and are with us by 7pm at Ravensbourne. &lt;/P&gt;
&lt;P&gt;I have worked with Ravensbourne, their students and incubating companies, Greenwich Council and their start up businesses and The Future Laboratories to make sure we have plenty of thoughts on 2012 trends to hear about and assess. We will also be joined by Mike Short, VP of Innovation and R&amp;amp;D at O2/Telefonica, who will help us understand the vision for the Digital Peninsula and what is already happening. As I have said before – and to paraphrase Alan Kay – the best way to predict the future is to actually invent it. That is true of what a variety of organisations – including Ravensbourne – are actually doing and it is something different, something special. &lt;/P&gt;
&lt;P&gt;I've ordered enough beer and wine to sink a battleship (thanks EMC Consulting). Greenwich Council and our kind sponsors, Marcus Donald People, will feed you and make sure you have entertainment after the main event. &lt;/P&gt;
&lt;P&gt;And yes, my twitter feed tells no lies. Jesus really is a DJ. From Fabric. Playing just for you. &lt;/P&gt;
&lt;P&gt;I think we are set to finish on a high. Please be a part of it."&lt;/P&gt;
&lt;P&gt;&lt;B&gt;The details&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Thursday 26th January 2012 From 6pm&lt;/P&gt;
&lt;P&gt;The informal formal bit starts at 7.15. &lt;/P&gt;
&lt;P&gt;Finishes when we drink the bar dry.&lt;/P&gt;
&lt;P&gt;Ravensbourne, 6 Penrose Way, Greenwich Peninsula, London SE10 0EW&lt;/P&gt;
&lt;P&gt;For map click &lt;A href="http://www.rave.ac.uk/about/maps-and-directions/"&gt;here&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The nearest tube is North Greenwich (only a couple of stops from London Bridge), or for those of you who opted for the James Bond entrance your boat tickets will be emailed over shortly.&lt;/P&gt;
&lt;P&gt;If you have not signed up yet we have a few places left so mail me on michelle.flynn@emc.com&lt;/P&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19095" width="1" height="1"&gt;</description><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/The+Fantastic+Tavern/default.aspx">The Fantastic Tavern</category><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/community/default.aspx">community</category><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/beers/default.aspx">beers</category><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/_2300_TFTLondon/default.aspx">#TFTLondon</category><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/EMC+Consulting/default.aspx">EMC Consulting</category></item><item><title>Add “Change Item Order” to a Custom Link List</title><link>http://consultingblogs.emc.com/mattlally/archive/2012/01/16/add-change-item-order-to-a-custom-link-list.aspx</link><pubDate>Mon, 16 Jan 2012 17:22:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19085</guid><dc:creator>matt.lally</dc:creator><slash:comments>1</slash:comments><description>&lt;P&gt;I built a SharePoint 2010 Visual Studio solution which included a &lt;STRONG&gt;custom list definition&lt;/STRONG&gt; based on a &lt;STRONG&gt;custom content type&lt;/STRONG&gt; inherited from the out-of-the-box &lt;STRONG&gt;Links content type&lt;/STRONG&gt;.&amp;nbsp; The out-of-the-box links list contains a “Change Item Order” button in it’s ribbon bar which I needed for my solution (see image below).&amp;nbsp; I thought I’d get in my custom list by inheriting from the Links content type but that didn’t happen.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://consultingblogs.emc.com/blogs/mattlally/image_2E782235.png"&gt;&lt;IMG style="BACKGROUND-IMAGE:none;BORDER-RIGHT-WIDTH:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;PADDING-TOP:0px;" title=image border=0 alt=image src="http://consultingblogs.emc.com/blogs/mattlally/image_thumb_1EF51066.png" width=358 height=112&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;So I had to get the Change Item order back in my ribbon.&amp;nbsp; Looking deeper I found that there’s a hidden page called &lt;STRONG&gt;reorder.aspx &lt;/STRONG&gt;in &lt;STRONG&gt;_layouts &lt;/STRONG&gt;which, with the combination of your list GUID, brings you to a page where you can reorder items.&amp;nbsp; Try it – go into your list settings and change the page part of the URL from &lt;STRONG&gt;listedit.aspx&lt;/STRONG&gt; to &lt;STRONG&gt;reorder.aspx (e.g. &lt;A href="http://sitename/_layouts/reorder.aspx?List=[GUID"&gt;http://sitename/_layouts/reorder.aspx?List=[GUID&lt;/A&gt;]).&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The links list appears to be the only list where this reordering impacts a list view.&amp;nbsp; You can reorder other lists or libraries using the _&lt;STRONG&gt;layouts/reorder.aspx?List=[GUID]&lt;/STRONG&gt; page but it does nothing to change your list views.&amp;nbsp; Comparing the Links list view settings to other list view settings, you’ll see that you have an option in the Links list to &lt;STRONG&gt;“Allow users to order items” &lt;/STRONG&gt;(screenshot below) which you don’t get with other types of lists.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://consultingblogs.emc.com/blogs/mattlally/image_3AD61F91.png"&gt;&lt;IMG style="BACKGROUND-IMAGE:none;BORDER-RIGHT-WIDTH:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;PADDING-TOP:0px;" title=image border=0 alt=image src="http://consultingblogs.emc.com/blogs/mattlally/image_thumb_5FF369FD.png" width=477 height=85&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;However, the reorder values do stick when you go back to this reorder page for any type of list so in theory you could use this in a CAML query using a hidden field named&lt;STRONG&gt; “order”&lt;/STRONG&gt; (e.g. string qry = "&amp;lt;OrderBy&amp;gt;&amp;lt;FieldRef Name='Order' /&amp;gt;&amp;lt;/OrderBy&amp;gt;";) if you were to build a custom content query webpart which needed a link to a sorting interface.&lt;/P&gt;
&lt;P&gt;But for my solution, I’m inheriting from the links list content type so the sort works, I just don’t get the option in the ribbon bar.&amp;nbsp; Chris O’Brien gives a good overview of customizing the ribbon here (&lt;A href="http://www.sharepointnutsandbolts.com/2010/01/adding-ribbon-items-into-existing.html" target=_blank&gt;Adding ribbon items into existing tabs/groups (ribbon customization part 2)&lt;/A&gt;.&amp;nbsp; With Chris’ guide and viewing the source on an OOB Links list view page, I was able to determine that I could get the XML I needed to display the “Change Item Order” in my ribbon by opening the CMDUI.XML and grab the button element XML for &lt;STRONG&gt;Ribbon.ListItem.Actions.ChangeItemOrder&lt;/STRONG&gt; (below).&lt;/P&gt;&lt;PRE id=codeSnippet class=csharpcode&gt;&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;Button&lt;/SPAN&gt;&lt;BR&gt;  &lt;SPAN class=attr&gt;Id&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="Ribbon.ListItem.Actions.ChangeItemOrder"&lt;/SPAN&gt;&lt;BR&gt;  &lt;SPAN class=attr&gt;Sequence&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="20"&lt;/SPAN&gt;&lt;BR&gt;  &lt;SPAN class=attr&gt;Command&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="ChangeLinkOrder"&lt;/SPAN&gt;&lt;BR&gt;  &lt;SPAN class=attr&gt;Image16by16&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="/_layouts/$Resources:core,Language;/images/formatmap16x16.png"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;Image16by16Top&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="-192"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;Image16by16Left&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="-144"&lt;/SPAN&gt;&lt;BR&gt;  &lt;SPAN class=attr&gt;Image32by32&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="/_layouts/$Resources:core,Language;/images/formatmap32x32.png"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;Image32by32Top&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="-192"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;Image32by32Left&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="-288"&lt;/SPAN&gt;&lt;BR&gt;  &lt;SPAN class=attr&gt;LabelText&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="$Resources:core,cui_ButChangeItemOrder;"&lt;/SPAN&gt;&lt;BR&gt;  &lt;SPAN class=attr&gt;ToolTipTitle&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="$Resources:core,cui_ButChangeItemOrder;"&lt;/SPAN&gt;&lt;BR&gt;  &lt;SPAN class=attr&gt;ToolTipDescription&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="$Resources:core,cui_STT_ButChangeItemOrder;"&lt;/SPAN&gt;&lt;BR&gt;  &lt;SPAN class=attr&gt;TemplateAlias&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="o1"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;Here’s the final XML I used for the element I added to my visual studio solution to get the “Change Item Order” button to appear in my custom link list.&amp;nbsp; Highlighted in below example: &lt;BR&gt;&lt;STRONG&gt;-- Registrationid=”30099”&lt;/STRONG&gt; is my custom list definition's &lt;STRONG&gt;Type &lt;/STRONG&gt;value. &lt;BR&gt;&lt;STRONG&gt;-- Location&lt;/STRONG&gt;&lt;STRONG&gt;="Ribbon.ListItem.Actions.Controls._children &lt;/STRONG&gt;is the location where I want to place my button in the ribbon.&lt;/SPAN&gt; &lt;BR&gt;-- I changed the &lt;STRONG&gt;Id&lt;/STRONG&gt; for the button from &lt;STRONG&gt;Ribbon.ListItem.Actions.ChangeItemOrder&lt;/STRONG&gt; to &lt;STRONG&gt;Ribbon.ListItem.Actions.RibbonSortOrderButton&lt;/STRONG&gt; (when viewing source on initial deployment of my custom list, I saw ChangeItemOrder was being trimmed by an OOB JavaScript function so by changing this &lt;STRONG&gt;Id&lt;/STRONG&gt; I’m ensuring the OOB JavaScript isn’t trimming it) &lt;BR&gt;&lt;STRONG&gt;-- Sequence="25" &lt;/STRONG&gt;is my custom sequence for the order in which this button appears (see Chris O’Brien’s &lt;A href="http://www.sharepointnutsandbolts.com/2010/01/adding-ribbon-items-into-existing.html" target=_blank&gt;blog&lt;/A&gt; for more info). &lt;BR&gt;&lt;STRONG&gt;-- Command="ChangeLinkOrder"&lt;/STRONG&gt; is the OOB command which means I don’t have to add a CommandUIHandler.&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;&amp;lt;?&lt;/SPAN&gt;&lt;SPAN class=html&gt;xml&lt;/SPAN&gt; &lt;SPAN class=attr&gt;version&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="1.0"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;encoding&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="utf-8"&lt;/SPAN&gt;?&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;Elements&lt;/SPAN&gt; &lt;SPAN class=attr&gt;xmlns&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;  &lt;SPAN class=rem&gt;&amp;lt;!--Change Item order Ribbon--&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;  &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;CustomAction&lt;/SPAN&gt;&lt;BR&gt;    &lt;SPAN class=attr&gt;Id&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="XYZ.Webpart.Links.XYZLinksListDefinition.RibbonSortOrderButton"&lt;/SPAN&gt;&lt;BR&gt;    &lt;SPAN class=attr&gt;Location&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="CommandUI.Ribbon"&lt;/SPAN&gt;&lt;BR&gt;    &lt;FONT style="BACKGROUND-COLOR:#ffff00;"&gt;&lt;SPAN class=attr&gt;RegistrationId&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="30099"&lt;/SPAN&gt;&lt;BR&gt;&lt;/FONT&gt;    &lt;SPAN class=attr&gt;RegistrationType&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="List"&lt;/SPAN&gt;&lt;BR&gt;    &lt;SPAN class=attr&gt;Title&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="List View Ribbon Customization"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;    &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;CommandUIExtension&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;      &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;CommandUIDefinitions&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;        &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;CommandUIDefinition&lt;/SPAN&gt; &lt;SPAN class=attr&gt;&lt;FONT style="BACKGROUND-COLOR:#ffff00;"&gt;Location&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&lt;FONT style="BACKGROUND-COLOR:#ffff00;"&gt;="Ribbon.ListItem.Actions.Controls._children&lt;/FONT&gt;"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;          &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;Button&lt;/SPAN&gt;&lt;BR&gt;            &lt;SPAN class=attr&gt;&lt;FONT style="BACKGROUND-COLOR:#ffff00;"&gt;Id&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&lt;FONT style="BACKGROUND-COLOR:#ffff00;"&gt;="&lt;/FONT&gt;&lt;FONT style="BACKGROUND-COLOR:#ffff00;"&gt;Ribbon.ListItem.Actions.RibbonSortOrderButton&lt;/FONT&gt;"&lt;/SPAN&gt;&lt;BR&gt;            &lt;FONT style="BACKGROUND-COLOR:#ffff00;"&gt;&lt;SPAN class=attr&gt;Sequence&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="25"&lt;/SPAN&gt;&lt;BR&gt;&lt;/FONT&gt;            &lt;FONT style="BACKGROUND-COLOR:#ffff00;"&gt;&lt;SPAN class=attr&gt;Command&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="ChangeLinkOrder"&lt;/SPAN&gt;&lt;BR&gt;&lt;/FONT&gt;            &lt;SPAN class=attr&gt;Image16by16&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="/_layouts/$Resources:core,Language;/images/formatmap16x16.png"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;Image16by16Top&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="-192"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;Image16by16Left&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="-144"&lt;/SPAN&gt;&lt;BR&gt;            &lt;SPAN class=attr&gt;Image32by32&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="/_layouts/$Resources:core,Language;/images/formatmap32x32.png"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;Image32by32Top&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="-192"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;Image32by32Left&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="-288"&lt;/SPAN&gt;&lt;BR&gt;            &lt;SPAN class=attr&gt;LabelText&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="$Resources:core,cui_ButChangeItemOrder;"&lt;/SPAN&gt;&lt;BR&gt;            &lt;SPAN class=attr&gt;ToolTipTitle&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="$Resources:core,cui_ButChangeItemOrder;"&lt;/SPAN&gt;&lt;BR&gt;            &lt;SPAN class=attr&gt;ToolTipDescription&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="$Resources:core,cui_STT_ButChangeItemOrder;"&lt;/SPAN&gt;&lt;BR&gt;            &lt;SPAN class=attr&gt;TemplateAlias&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="o1"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;        &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;CommandUIDefinition&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;      &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;CommandUIDefinitions&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;    &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;CommandUIExtension&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;  &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;CustomAction&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;Elements&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;DIV&gt;&lt;/DIV&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19085" width="1" height="1"&gt;</description><category domain="http://consultingblogs.emc.com/mattlally/archive/tags/Ribbon/default.aspx">Ribbon</category><category domain="http://consultingblogs.emc.com/mattlally/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category></item><item><title>Must-Read Books: Refactoring</title><link>http://consultingblogs.emc.com/brandonmcmillon/archive/2012/01/15/must-read-books-refactoring.aspx</link><pubDate>Mon, 16 Jan 2012 04:32:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19081</guid><dc:creator>Brandon.McMillon</dc:creator><slash:comments>0</slash:comments><description>&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Next up on the “Must Read” list is the follow-up book from Martin Fowler of the Gang of Four, &lt;I style="mso-bidi-font-style:normal;"&gt;Refactoring: Improving the Design of Existing Code&lt;/I&gt;.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;I hesitated with this one for a bit, thinking about adding it to the “Should Read” book list rather than the “Must Read.”&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;I did this because, for many experienced developers, the topics of this book are going to seem elementary.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Anyone decently experienced is going to look at a section header such as “Changing a Reference object to a Value object” and think “why I am even wasting my time with this Programming 101 refresher?”&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;But, much like Design Patterns, the fact that much of the information in the book has already been deduced through a combination of ingenuity and experience does not mean that the refresher cannot be extremely valuable.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;And not ruffle any feathers, but usually the people that are most dismissive of “refresher” material are exactly those that need it the most!&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;g&amp;gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;At the very least, this book is an encyclopedia of these changes, and while many or most of the changes will be elementary, even the sections on those changes might have a new insight or viewpoint that the developer has not considered.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Chapter 3, which I’ll discuss below, is particularly useful here.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Another benefit is that any development manager or mentor of younger developers would be well-served to be familiar with this book so that they can point their less experienced colleagues to the proper place to learn how to correct mistakes they have made.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Like Design Patterns before it, this book is about more than just specific techniques for one language.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;The advice for guidelines and techniques in this book can be applied across all object oriented programming.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;It’s a common viewpoint to dismiss refactoring as a problem that you only encounter in projects involving legacy systems.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;That’s not really the case, though, as it is common to see these types of problems in daily work when interfacing with different systems, reviewing the work done by less experienced developers, etc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The first 50 pages are a good introduction to draw someone in, as it provides a walkthrough of a standard refactoring problem.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;This is a great read for the inexperienced programmer, as it can be an enlightening view into the daily problem solving in the lives of senior developers and architects.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;The next chapter makes a case for refactoring, which can be interesting for some, but doesn’t hold a candle to Chapter 3.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Chapter 3 is 20 pages of gold, as it examines the “Smell” of problems in need of refactoring.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;When confronted with a specific problem, it’s easy enough to know the solution.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;This chapter focuses on how to identify problems that are present.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;This is really a brilliant piece of writing, in that it is clear cut, with obvious warning signs on what to recognize to diagnose the problem.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The next chapter, Building Tests, focuses on an area that we frequently don’t do enough of.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;It focuses on JUnit, but the testing focus, as with the patterns and coding elsewhere, can be applied to other languages.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;The other chapters, again, exactly like Design Patterns, group the common techniques and problems into common areas and then proceed through each of them in a very straightforward matter.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;At the very least, the book makes a fantastic reference to keep around and to thumb through when you run into problems you can’t quite put your finger on, or when you’re just looking for a great refresh of some standard material.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19081" width="1" height="1"&gt;</description></item><item><title>PowerShell script for updating content types on all files in a document library</title><link>http://consultingblogs.emc.com/robertoortega/archive/2012/01/14/powershell-script-for-updating-content-types-on-all-files-in-a-document-library.aspx</link><pubDate>Sat, 14 Jan 2012 20:57:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19119</guid><dc:creator>roberto.ortega</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;&lt;b&gt;Background and Problem&lt;/b&gt;

&lt;/p&gt;&lt;p&gt;
Recently I had to change the content type of many files within a SharePoint web site as part of a larger SharePoint 2007 to 2010 migration. SharePoint does not provide a simple way to do this for many files.

&lt;/p&gt;&lt;p&gt;&lt;b&gt;The Solution&lt;/b&gt;
&lt;/p&gt;&lt;p&gt;
I wrote a simple solution to do the switch.

&lt;/p&gt;&lt;pre&gt;function Reset-SPFileContentType ($WebUrl, $ListName, $OldCTName, $NewCTName)
{
    #Get web, list and content type objects
    $web = Get-SPWeb $WebUrl
    $list = $web.Lists[$ListName]
    $oldCT = $list.ContentTypes[$OldCTName]
    $newCT = $list.ContentTypes[$NewCTName]
    $newCTID = $newCT.ID
    
    #Check if the values specified for the content types actually exist on the list
    if (($oldCT -ne $null) -and ($newCT -ne $null))
    {
        #Go through each item in the list
        $list.Items | ForEach-Object {
            #Check if the item content type currently equals the old content type specified
            if ($_.ContentType.Name -eq $oldCT.Name)
            {
                #Check the check out status of the file
                if ($_.File.CheckOutType -eq "None")
                {
                    $_.File.UndoCheckOut()
                }

                #Change the content type association for the item
                $_.File.CheckOut()
                write-host "Resetting content type for file" $_.Name "from" $oldCT.Name "to" $newCT.Name
                $_["ContentTypeId"] = $newCTID
                $_["Date of Document"] = $_["Date of the Document"]
                $_.SystemUpdate()
                $_.File.CheckIn("System update: Content type changed to " + $newCT.Name, 1)
            }
            else
            {
                write-host "File" $_.Name "is associated with the content type" $_.ContentType.Name "and will not be modified"
            }
        }
    }
    else
    {
        write-host "One of the content types specified has not been attached to the list"$list.Title
    }
    $web.Dispose()
}
&lt;/pre&gt;
&lt;p&gt;
To use this function, you can call the function within the same script file as follows:
&lt;/p&gt;&lt;p&gt;
Reset-SPFileContentType("http://dev.example.org/sites/MyNewSite ", "Sales Reports", "Document", "Sales Report Document")
&lt;/p&gt;&lt;p&gt;
This will open the site mentioned and will change all files in the Sales Reports document library from the content type of “Document” to “Sales Report Document”.
&lt;/p&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19119" width="1" height="1"&gt;</description><category domain="http://consultingblogs.emc.com/robertoortega/archive/tags/Script/default.aspx">Script</category><category domain="http://consultingblogs.emc.com/robertoortega/archive/tags/PowerShell/default.aspx">PowerShell</category><category domain="http://consultingblogs.emc.com/robertoortega/archive/tags/SharePoint+2010_2F00_WSS+4/default.aspx">SharePoint 2010/WSS 4</category></item><item><title>Must-Read Books: Rapid Development</title><link>http://consultingblogs.emc.com/brandonmcmillon/archive/2012/01/14/must-read-books-rapid-development.aspx</link><pubDate>Sat, 14 Jan 2012 14:25:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19080</guid><dc:creator>Brandon.McMillon</dc:creator><slash:comments>0</slash:comments><description>&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;My library of books should have a wing dedicated to Steve McConnell.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;He’s a great writer, in that he discusses technical issues with an approachable style and a practical outlook.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Much like Peopleware, he’s looking for things that can be proven to work, not just treading out the same axiomatic fluff that eventually becomes mantra because it’s repeated so many times.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;To give you an idea of the impact his books and articles have had, in 1998, he was named alongside Bill Gates &amp;amp; Linus Torvalds as the one of the 3 most important people in the software industry by Software Development Magazine.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Today we’re going to focus on Rapid Development, mainly because it ties in so well with my previous blog on Peopleware.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Rapid Development is all about how to manage a program or a project.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;It was written after his book Code Complete, which you can expect to see showing up in this blog shortly.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Code Complete focuses on the day-to-day practice of how to code and techniques to employ, while this book focuses more on the software engineering aspect, looking at methodologies and practices that work and don’t work, and why.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Early on in the book, McConnell hits you with some of the “Classic Mistakes”, and this is sure to make you wince if you’re fairly experienced.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;One of those winces for me was the “Overly Optimistic Schedule” (&lt;A href="http://consultingblogs.emc.com/brandonmcmillon/archive/2012/01/12/lessons-learned-the-overly-aggressive-project-schedule.aspx" target=_blank&gt;see my blog on this mistake&lt;/A&gt;).&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Some of them won’t evoke such bad feelings, though…you might even get a little boost from memory of how you successfully navigated one of them.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;For me, that one was the classic mistake of uncontrolled problem employees.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;I don’t know that I actually solved the problem myself, but I don’t wince because everything turned out great.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;You can read about it &lt;A href="http://consultingblogs.emc.com/brandonmcmillon/archive/2012/01/14/lessons-learned-dealing-with-problem-employees.aspx" target=_blank&gt;HERE&lt;/A&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;As an aside on hiring, I’ll point out that many people don’t realize that a bad hire doesn’t just “not help”…it actually hurts.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;The wrong employee doesn’t just contribute at a rate lower than others, they can actually have a negative overall contribution to the team.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Think about all of the time invested in a person training them up, having weekly meetings with them, and how much time their mistakes take other people time to fix.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;And then figure up all of the motivation and momentum that the “wrong” person can suck out of a team.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Someone that is incompetent or negative can completely sidetrack a team as they devote energy to dealing with them.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Too often, though, the belief is to just “fill the spot” with a candidate that’s less than stellar.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;This lack of recognition of the value of each and every team member on a software team often shows the need for management to clue in and read one of the other “Must Read” books, Peopleware.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Other classic mistakes that I’ll point out is the “overestimation of savings from new tools and technologies”, which goes hand-in-hand with the “Silver Bullet Syndrome.”&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Both are related to human nature in that we always try to look for just one thing that will be the huge productivity boost the manager desires.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;It’s not sexy to realize that you’re not going to get a 30% productivity gain from the application of one thing, like the latest version of Visual Studio, or moving everyone to the cool new language/library, or implementing Agile (especially given how many “Agile shops” are anything but Agile!), etc.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Large productivity gains are the combination of doing 1000 small things correctly, and then implementing the right changes that continue to build upon the base you already have.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;But again, it’s human nature to always expect a little more, so not only does Steve McConnell cover this, but Dr. Fred Brooks (author of The Mythical Man Month) also wrote up a short treatise about it.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;You can find “No Silver Bullet” easily with an internet search, and it has also been reprinted in later copies of The Mythical Man Month.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;I’ll cover it in a blog here in the near future, as understanding accidental versus essential complexity is a key skill as a software designer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;And to build on this idea of how 1000 small things must be done well for great productivity gains, McConnell devotes the last section of the book to be an encyclopedia of software best practices.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Well, it’s actually better than an encyclopedia because it breaks down and correlates each of the best practices to specific problems that it solves and trade-offs or issues that it might cause itself.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;It’s not that you need to go and do every single one of these gains, it’s that you need to be aware of what you’re gaining from choosing a particular best practice, and what you might be losing or conflict you might be creating as well.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;And the key to remember is that this isn’t written for the programmers specifically.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;We’ve got enough books on “how to get better programming”, such as McConnell’s own Code Complete, the Gang of 4’s Design Patterns &amp;amp; Refactoring books, etc.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;This is written for management and senior development to determine the best way to plan for development.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;This is a software engineering book, which is why I said up front that it goes hand-in-hand with a book like Peopleware.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;You’ll even see some overlap, such as both recommending taking advantage of The Hawthorne Effect.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Highly recommended.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19080" width="1" height="1"&gt;</description></item><item><title>Lessons Learned: Dealing with Problem Employees</title><link>http://consultingblogs.emc.com/brandonmcmillon/archive/2012/01/13/lessons-learned-dealing-with-problem-employees.aspx</link><pubDate>Sat, 14 Jan 2012 01:12:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19079</guid><dc:creator>Brandon.McMillon</dc:creator><slash:comments>0</slash:comments><description>&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;For obvious reasons, the names and specifics will be left out, but the lesson will remain.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;I was brought in to advise a product team on the right architecture and tools for their next generation product.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;I met a highly competent team that had been together for a long time, to the point where it wasn’t uncommon for everyone on the team to head to dinner or to watch a game together.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;It was very close knit, and management had invested heavily in everyone.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Management was also heavily invested in the future.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;The current product was going to be completely revamped, and contracts were in place that required this.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;So when 3 of the 7 members on the development team privately confided that the new product was a pipe dream and that they believed it would never work, you can imagine how seriously I took this!&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;And it wasn’t just the normal gripe: in some cases it was outright rebellion with undone work items, returning “it’s not possible” findings on relatively simple research tasks, and talking the future of the company down to even those that believed in what they were doing.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;I found out about this because the positive members complained to me in confidence, saying it was really bringing them down.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;My plan was pretty straightforward.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;I approach everything with a high degree of transparency, so I first talked to 2 of them to see if I could get them to “get on the bus” and at least open themselves up to this.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;This was a disaster.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;One of the members, I’ll call him The Pessimist, flat out told me that it wasn’t going to work, and that things would be better off if they would just quit dreaming.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;I talked to him about the contracts and how this wasn’t really optional for his company, and he was fairly nonchalant about it, but adamant that he wasn’t going to change, and that the sooner everyone realized this for the failure it was, the better.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;The second one agreed to an attitude change, but it was obvious that this was just an attempt to be a team player, as the negativity still crept in at every possibility.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Part 2 of the plan was to go to management.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Within 2 weeks of my initial suspicions, I had informed management of just how serious this problem was.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;I shared with them articles about problem employees, talked to them about possible remedies, and I found out that one of the managers went back for years with The Pessimist, and that even having a “hard” talk with The Pessimist was farther than they would be willing to go.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;He was family, and they were settled just pulling his dead weight rather than having to lose a member of the family. &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;But as with most things in consulting, when the first attempt fails, but you know that you’re right, you try &amp;amp; try again.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The first strategy was to separate the 3.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;They were working together a lot and forming a cluster of negativity, so we worked on finding them tasks that didn’t overlap, and that had them working with the other, more positive employees.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;The third member literally turned around just on that.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Within 2 weeks, he was enjoying what he was working on and it completely turned around.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Within the month, our second grumpy employee was happy as well.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;By giving people the ability to pick areas they were working on, the second employee threw himself into support of the old product.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;A month in, he had gone from a 60-40 split to nearly 100% on the older product, and he loved it.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Everyone else moved their responsibilities for the previous version to him, and he kept learning more about a product he loved.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;Problem #2 was solved, as long term support for the previous product was going to span years, and he was happy being “the guy” for Tier 3 support and new features for the old product.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Only Mr. Pessimist remained.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;This problem was solved in the 2&lt;SUP&gt;nd&lt;/SUP&gt; month.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;I had 2 very “strong” talks with management about how a change needed to be made, and I hit the wall with them.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;I was sure they would never be able to even put Mr. Pessimist on notice, let alone be able to fire him without improvement.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;His productivity was down and he was still loading down the team.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;And then he resigned.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Call it Deus Ex Machina, but it was based on him getting tired of working with people that didn’t share his same beliefs.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;He simply packed up his ball and went home.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Now this left a particularly bad taste in my mouth at the time.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Not because it wasn’t good for the team that he left, but that I had failed to give management the “proof” they needed to make a change.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;I’ve since learned that people make bad decisions for bad reasons all the time, and that you’re not going to win every battle.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;But the good news is that the team replaced Mr. Pessimist with another good contributor, and within 18 months the new software was released.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;The contracts were satisfied and everyone was happy.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNoSpacing&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Best of all, management talked to me and said that they now “got it” with regards to the problem employees.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;They admitted to knowing it was wrong, but they hadn’t really seen “how wrong” it was until the change was made.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;But they had learned the lesson now, and understood what team dynamics meant.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;In retrospect, I likely should have come up with some mechanism to isolate Mr. Pessimist outside of the team for a couple of weeks, either an offsite, or training, or some “deep project” that he could do at home.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;That likely would have been enough to show the difference in attitudes and productivity when he returned, but hindsight is always 20-20!&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Again, you can’t win them all, but it’s fun to try.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19079" width="1" height="1"&gt;</description></item><item><title>{Follow Up} Why Entertainment Industry still has Digital all wrong - Midem 2012</title><link>http://consultingblogs.emc.com/derekdunlop/archive/2012/01/12/follow-up-why-entertainment-industry-still-has-digital-all-wrong-midem-2012.aspx</link><pubDate>Thu, 12 Jan 2012 19:15:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19076</guid><dc:creator>Derek.Dunlop</dc:creator><slash:comments>0</slash:comments><description>Thanks to all of you that have emailed me regarding my post, I do enjoy the emails that I receive from around the world - and there were a number of questions posed that I decided to add as a supplement Blog post to the original post from yesterday... First off, questions around the iTunes image that was posted... I used to live in the UK and probably spent a fair amount of UK ££££ on the iTunes store over there - I had a different email address and as such used to flip back and forth between my...(&lt;a href="http://consultingblogs.emc.com/derekdunlop/archive/2012/01/12/follow-up-why-entertainment-industry-still-has-digital-all-wrong-midem-2012.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19076" width="1" height="1"&gt;</description><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Innovation/default.aspx">Innovation</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Internet+Service+Providers/default.aspx">Internet Service Providers</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/iPhone/default.aspx">iPhone</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/iPod/default.aspx">iPod</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/ISP/default.aspx">ISP</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/iTunes/default.aspx">iTunes</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/fairplay/default.aspx">fairplay</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/File+Sharing/default.aspx">File Sharing</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/FLAC/default.aspx">FLAC</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/free+music/default.aspx">free music</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/P2P/default.aspx">P2P</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/CDs/default.aspx">CDs</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/cloud/default.aspx">cloud</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Sony/default.aspx">Sony</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Spotify/default.aspx">Spotify</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/user+experience/default.aspx">user experience</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Amazon/default.aspx">Amazon</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Amazon+Cloud+Drive/default.aspx">Amazon Cloud Drive</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/android/default.aspx">android</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/apple/default.aspx">apple</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/art+of+strategy/default.aspx">art of strategy</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Midem/default.aspx">Midem</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/MidemNet/default.aspx">MidemNet</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/the+cloud/default.aspx">the cloud</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/The+Digital+Asylum/default.aspx">The Digital Asylum</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Torrent+Freak/default.aspx">Torrent Freak</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/torrents/default.aspx">torrents</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/total+customer+experience/default.aspx">total customer experience</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/google/default.aspx">google</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Google+Music/default.aspx">Google Music</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Guy+Hands/default.aspx">Guy Hands</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/mp3/default.aspx">mp3</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/MPAA/default.aspx">MPAA</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Music+Industry/default.aspx">Music Industry</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/music+retail/default.aspx">music retail</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/music+subscription/default.aspx">music subscription</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Netflix/default.aspx">Netflix</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Diary+Of+A+Madman/default.aspx">Diary Of A Madman</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/digital+downloads/default.aspx">digital downloads</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/digital+library/default.aspx">digital library</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/digital+lifestyle/default.aspx">digital lifestyle</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/digital+living/default.aspx">digital living</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Digital+Long+Tail/default.aspx">Digital Long Tail</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/digital+media/default.aspx">digital media</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/digital+media+evangelist/default.aspx">digital media evangelist</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Digital+Media+Long+Tail/default.aspx">Digital Media Long Tail</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Digital+Music+2.0/default.aspx">Digital Music 2.0</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/digital+rights+agency/default.aspx">digital rights agency</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Last+FM/default.aspx">Last FM</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/RIAA/default.aspx">RIAA</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Coldplay/default.aspx">Coldplay</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Longtail/default.aspx">Longtail</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Make+Tech+Easier/default.aspx">Make Tech Easier</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/MCPS_2F00_PRS/default.aspx">MCPS/PRS</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/BPI/default.aspx">BPI</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/brand+development/default.aspx">brand development</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/consulting/default.aspx">consulting</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/PPL/default.aspx">PPL</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/publishing/default.aspx">publishing</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Sharing+Media/default.aspx">Sharing Media</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/strategy/default.aspx">strategy</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Terra+Firma/default.aspx">Terra Firma</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Warners/default.aspx">Warners</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/Business+Innovation/default.aspx">Business Innovation</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/business+strategy/default.aspx">business strategy</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/business+vision/default.aspx">business vision</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/DRM/default.aspx">DRM</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/EMI/default.aspx">EMI</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/iCloud/default.aspx">iCloud</category><category domain="http://consultingblogs.emc.com/derekdunlop/archive/tags/illegal+file+sharing/default.aspx">illegal file sharing</category></item><item><title>The Fantastic Tavern - Last Orders at the Bar</title><link>http://consultingblogs.emc.com/michelleflynn/archive/2012/01/12/the-fantastic-tavern-last-orders-at-the-bar.aspx</link><pubDate>Thu, 12 Jan 2012 14:11:25 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:19074</guid><dc:creator>Michelle.Flynn</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Here is an update from Matt for those of you who have signed up to the TFT on the 26&lt;sup&gt;th&lt;/sup&gt;, and a reminder for those of you who have not signed up yet….&lt;/p&gt;  &lt;p&gt;“Some three years or so ago, I started the Fantastic Tavern. It was to be a meeting of people who cared about ‘digital’ – as it was then – gathering in a pub and having a conversation. Over the months, we have run 28 events and the community has grown to over 1000 Taverners. &lt;/p&gt;  &lt;p&gt;We have explored so much together and enjoyed a fair few pubs and pints. It's been a great experience, made possible by great contributions – of time and content – from people. &lt;/p&gt;  &lt;p&gt;Now it is time to assign the Fantastic Tavern to history. &lt;/p&gt;  &lt;p&gt;In keeping with the brand, the next – and last event – is Last Orders at the Bar and it will be held somewhere magical on the 26&lt;sup&gt;th&lt;/sup&gt; January (that's in three weeks). There are still lots of details to be planned but I wanted to ensure that you get a flavor for the evening and get it – and your attendance – in the diary. &lt;/p&gt;  &lt;p&gt;Each year at about this time, we run a Trends Briefing. Typically friends and colleagues create the content and then pitch the trend to the audience. They in turn rate it as ‘hot’ or ‘not’ for the year ahead. Think Top Gear. &lt;/p&gt;  &lt;p&gt;It’s great fun and also very informative. As it’s not broken, I’ll not change it this year. &lt;/p&gt;  &lt;p&gt;Oh, go on then. Lets change it a bit. Change is good.&lt;/p&gt;  &lt;p&gt;Firstly, we are inviting the students of Ravensbourne to create the content, not the typical crowd. This should give all of us a unique, fresh and cutting edge perspective on what’s going to be important to us this year – as practitioners but also as part of society as a whole. The students are briefed and already working away on some great presentations. &lt;/p&gt;  &lt;p&gt;There will also be guest speakers not least my beloved friends from the Future Laboratories. Of course, we will not have time for one of their conventional trends briefing – an immersion I highly recommend – but they are preparing a point of view about 2012 to share with us. Trust me when I say that what they do and what they talk about is of the highest quality and well worth coming to hear. &lt;/p&gt;  &lt;p&gt;Finally, lets reinvent the pub bit. &lt;/p&gt;  &lt;p&gt;There is something – somewhere – that I have been involved in (a little) for several years and it's an incredible gem that I want to share with you. I’m going to ask you to take a trip with me. A short one. &lt;/p&gt;  &lt;p&gt;The Greenwich Peninsula, home to the 02 and Ravensbourne, lots of new enterprises and some established one (like TFL) and the Council itself – is an incredible place. Moreover, it represents an incredible idea. There is something different happening here – something powerful and full of promise. &lt;/p&gt;  &lt;p&gt;Today, at it’s heart there is Ravensbourne. I guarantee you that this place for learning and developing will power you away. Set aside your memories of education and come and see the future, now. &lt;/p&gt;  &lt;p&gt;Then also hear the vision therest of the Peninsula – a vision for an enabled community that is being planned to be a better, prosperous, open and exciting place to work, live, learn and be entertained. You may remember we all brainstormed ideas for that vision in 2011? They are coming to life. &lt;/p&gt;  &lt;p&gt;You have to see this to believe it, to understand its potential. Forget the Roundabout. This is where it’s at. It’s where something different is happening. &lt;/p&gt;  &lt;p&gt;So yes, I’m asking you to be at Ravensbourne, which is at Greenwich North, at 6.30 for a 7pm start in two weeks time. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.rave.ac.uk/about/maps-and-directions/"&gt;http://www.rave.ac.uk/about/maps-and-directions/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you would like to be there and bring your colleagues and friends and haven’t already signed up, please email &lt;/p&gt;  &lt;p&gt;&lt;a href="mailto:Michelle.flynn@emc.com"&gt;Michelle.flynn@emc.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you would like to take the boat from central London to the north Greenwich terminal, we can provide times and tickets. Tell us you would like to get there on the boat in your email. &lt;/p&gt;  &lt;p&gt;Greenwich Council, Marcus Donald and EMC Consulting have thrown some cash – very generously – into a tankard and there will be a pop-up pub, food and dancing. &lt;/p&gt;  &lt;p&gt;I think that we have a memorable night planned and I’d like to think you could all make it – to hear the trends that we should think about in 2012 and celebrate the Fantastic Tavern as itcomes to an end. “&lt;/p&gt;  &lt;p&gt;We already have over 100 people signed up so make sure you do not miss the grand finale.&lt;/p&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=19074" width="1" height="1"&gt;</description><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/The+Fantastic+Tavern/default.aspx">The Fantastic Tavern</category><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/_2300_TFT/default.aspx">#TFT</category><category domain="http://consultingblogs.emc.com/michelleflynn/archive/tags/_2300_TFTLondon/default.aspx">#TFTLondon</category></item></channel></rss>
