miércoles, 7 de marzo de 2012

TFS Service Preview on Windows Azure

image

Ya tengo mi TFS particular en Windows Azure. Aquí os dejo algunos pasos  para que veáis como funciona:

image

image

  • Esperamos a que se complete el proceso de creación  y obtengamos el mensaje de éxito.

image

Lo mejor de todo, ese mensaje,  “Your project is created and your team is going to absolutely love this.”, jeje…

Una vez creado nuestro Team project  e instalado el Fix comentado anteriormente , podremos acceder desde nuestro Visual Studio a este nuevo TFS de la misma manera que accedemos a cualquier otro TFS On-Premise.

El único inconveniente, es que por el momento parece que no podemos crear “Team Project” directamente desde Visual Studio:

image

En cuanto a lo demás, sin problema, podremos crear “Work Items”, Añadir proyectos al TFS, Check In, Ckeck Out, etc.  ¡Tendremos que seguir probando!

Si quieres aprender más echa un vistazo a este enlace: http://blogs.msdn.com/b/visualstudioalm/archive/2011/09/14/learning-about-team-foundation-service-preview.aspx

Si queréis vuestro propio TFS sólo tenéis que acceder a este enlace y esperar a que Microsoft os facilite el código de invitación

Saludos
@JuanluElGuerre

Etiquetas: ,


martes, 18 de octubre de 2011

TFS Integration Tool: Integrando/migrando de CMMI 4.2 a CMMI 5 y mapeos para Task y Requirements

Muy buenas,

No tenía pensado comentar nada al respecto, pero después de aprender a usar la herramienta, detectar algunos bugs y un poco de trabajo de “chinos”, creo que es una pequeña ayuda para que podáis entender la migración entre distintos “Team Projects” con distintas plantillas de procesos:

Antes de nada, para el que no conozca “TFS Integration Tool (o, TFS Integration Platform)” es un herramienta de CodePlex, que facilita la migración/integración entre diferentes versiones de Work Items, Bug Tracking, etc.

Aunque está en beta, siempre que no se haya “customizado” complicadamente algún work item, cosa que no es de extrañar en algún caso, Risa), la herramienta funciona bastante bien, salvo algunas limitaciones en cuanto a items que no son migrados a día de hoy:

Hasta donde he podido llegar, los “Labels” si los migra, Risa.

Aunque podemos encontrarnos casos más complejos, entre otros, que el TeamProject destino exista y ya tenga bastante código, Work Items, changesets, etc, por el momento, os dejo un resumen de mi caso en concreto (desde “MSF for CMMI Process Improvement v4.2” a “MSF for CMMI Process Improvement CMMI5”) donde el TeamProject destino está recién creado:

image

image

  • Utiliza los siguientes valores para realizar tu configuración de Mapeo/Migración:

image

image

   1: <SettingXml>



   2:   <WITSessionCustomSetting>



   3:     <Settings />



   4:     <WorkItemTypes>



   5:       <WorkItemType LeftWorkItemTypeName="Task" RightWorkItemTypeName="Task" fieldMap="Migrate2Tasks" />



   6:       <WorkItemType LeftWorkItemTypeName="Requirement" RightWorkItemTypeName="Requirement" fieldMap="Migrate2Requirements" />



   7:       <WorkItemType LeftWorkItemTypeName="Bug" RightWorkItemTypeName="Bug" fieldMap="*" />



   8:       <WorkItemType LeftWorkItemTypeName="Issue" RightWorkItemTypeName="Issue" fieldMap="*" />



   9:       <WorkItemType LeftWorkItemTypeName="Change Request" RightWorkItemTypeName="Issue" fieldMap="*" />



  10:     </WorkItemTypes>



  11:     <FieldMaps>



  12:  



  13:       <FieldMap name="Migrate2Tasks">



  14:         <MappedFields>



  15:  



  16:           <!-- Mapeo de todos los campos -->



  17:           <MappedField LeftName="*" RightName="*" MapFromSide="Left" />



  18:  



  19:           <!--- Excepciones a los mapeos  -->



  20:           <!-- Mapeos sin destino -->



  21:           <MappedField LeftName="Severity" RightName="" MapFromSide="Left" valueMap="" />



  22:           <MappedField LeftName="Issue" RightName="" MapFromSide="Left" valueMap="" />



  23:           <MappedField LeftName="Start Change Date" RightName="" MapFromSide="Left" valueMap="" />



  24:           <MappedField LeftName="Exit Criteria" RightName="" MapFromSide="Left" valueMap="" />



  25:           <MappedField LeftName="Test Id" RightName="" MapFromSide="Left" valueMap="" />



  26:           <MappedField LeftName="Test Name" RightName="" MapFromSide="Left" valueMap="" />



  27:           <MappedField LeftName="Test Path" RightName="" MapFromSide="Left" valueMap="" />



  28:           <MappedField LeftName="Estimate" RightName="Microsoft.VSTS.Scheduling.OriginalEstimate" MapFromSide="Left" valueMap="" />



  29:           <!-- Mapeos con cambio en el destino -->



  30:           <MappedField LeftName="Triage" RightName="Microsoft.VSTS.Common.Triage" MapFromSide="Left" valueMap="TriageMap" />



  31:           <MappedField LeftName="Priority" RightName="Microsoft.VSTS.Common.Priority" MapFromSide="Left" valueMap="PriorityMap" />



  32:           <MappedField LeftName="Discipline" RightName="Microsoft.VSTS.Common.Discipline" MapFromSide="Left" valueMap="DisciplineMap" />



  33:           <MappedField LeftName="Task Type" RightName="Microsoft.VSTS.Common.TaskType" MapFromSide="Left" valueMap="TaskTypeMap" />          



  34:  



  35:         </MappedFields>



  36:       </FieldMap>



  37:  



  38:       <FieldMap name="Migrate2Requirements">



  39:         <MappedFields>



  40:  



  41:           <MappedField LeftName="*" RightName="*" MapFromSide="Left" />



  42:  



  43:           <MappedField LeftName="Issue" RightName="" MapFromSide="Left" valueMap="" />



  44:           



  45:           <MappedField LeftName="Rank" RightName="Microsoft.VSTS.Common.StackRank" MapFromSide="Left" valueMap="" />



  46:           <MappedField LeftName="Estimate" RightName="Microsoft.VSTS.Scheduling.OriginalEstimate" MapFromSide="Left" valueMap="" />



  47:  



  48:           <MappedField LeftName="Requirement Type" RightName="Microsoft.VSTS.CMMI.RequirementType" MapFromSide="Left" valueMap="RequirementType2Map" />



  49:           <MappedField LeftName="Priority" RightName="Microsoft.VSTS.Common.Priority" MapFromSide="Left" valueMap="PriorityMap" />          



  50:           <MappedField LeftName="Triage" RightName="Microsoft.VSTS.Common.Triage" MapFromSide="Left" valueMap="TriageMap" />



  51:  



  52:           <!-- These are not exist on target  -->



  53:           <!--<MappedField LeftName="Start Date" RightName="Microsoft.VSTS.Scheduling.StartDate" MapFromSide="Left" valueMap="" />



  54:           <MappedField LeftName="Finish Date" RightName="Microsoft.VSTS.Scheduling.FinishDate" MapFromSide="Left" valueMap="" />-->



  55:  



  56:         </MappedFields>



  57:       </FieldMap>      



  58:     </FieldMaps>



  59:  



  60:     <ValueMaps>



  61:       <!-- Tasks values  -->



  62:       <ValueMap name="TriageMap">



  63:         <Value LeftValue="Pending" RightValue="Pending"/>



  64:         <Value LeftValue="More Info" RightValue="More Info"/>



  65:         <Value LeftValue="Info Recv" RightValue="Info Received"/>



  66:         <Value LeftValue="Triaged" RightValue="Triaged"/>



  67:       </ValueMap>



  68:  



  69:       <ValueMap name="PriorityMap">



  70:         <Value LeftValue="1" RightValue="1" />



  71:         <Value LeftValue="2" RightValue="2" />



  72:         <Value LeftValue="3" RightValue="3" />



  73:         <!--<Value LeftValue="" RightValue="4" />-->



  74:       </ValueMap>



  75:  



  76:       <ValueMap name="DisciplineMap">



  77:         <Value LeftValue="Analysis" RightValue="Analysis" />



  78:         <Value LeftValue="User Experience" RightValue="User Experience" />



  79:         <Value LeftValue="User Education" RightValue="User Education" />



  80:         <Value LeftValue="Test" RightValue="Test" />



  81:       </ValueMap>



  82:  



  83:       <ValueMap name="TaskTypeMap">



  84:         <Value LeftValue="Analysis" RightValue="Corrective Action" />



  85:         <Value LeftValue="User Experience" RightValue="Mitigation Action" />



  86:         <!--<Value LeftValue="" RightValue="Planned" />-->



  87:       </ValueMap>



  88:  



  89:       <ValueMap name="RequirementType2Map">



  90:         <Value LeftValue="Scenario" RightValue="Scenario"/>



  91:         <Value LeftValue="Quality of Service" RightValue="Quality of Service"/>



  92:         <Value LeftValue="Functional" RightValue="Functional"/>



  93:         <Value LeftValue="Operational" RightValue="Operational"/>



  94:         <Value LeftValue="Interface" RightValue="Interface"/>



  95:         <Value LeftValue="Security" RightValue="Security"/>



  96:         <Value LeftValue="Safety" RightValue="Safety"/>



  97:         <!--<Value LeftValue="" RigthValue="Business Objective"/>



  98:         <Value LeftValue="" RigthValue="Feature"/>-->



  99:       </ValueMap>



 100:     </ValueMaps>



 101:   </WITSessionCustomSetting>



 102: </SettingXml>



 103: <SettingXmlSchema />







Nota: Para completar el resto de mapeos, haz uso de los fichero “XML” de las distintas plantillas, así podrás conocer el detalle de los mapeos a realizar.







image






De la misma manera que este proceso de integración entre dos TeamProject ha sido un éxito, también podrás hacerlo para distintas “Queries” de origen y por tanto, “Area Path”, etc. El peso principal recae sobre cada uno de los mapeos según he comentado antes, y podrás hacerlo, para distintas plantillas de proceso, Scrum, MSF Agile, etc., e incluso entre distintas  plantillas origen y destino.



Mucha suerte y espero que sirva de ayuda/aclaración, Guiño



Saludos @TFS

Juanlu, elGuerre

Etiquetas: , ,


This page is powered by Blogger. Isn't yours?