Sunday, June 6, 2010

Team Foundation Server 2010 : Too many users in your Team Project

By default, you have half of the world accessing your Team Project in Team Foundation Server 2010. Since it is based on the AD group, the amount of people automatically added to your project is particularly impressive in large companies.

This is an old problem, since TFS 2008 ; you have to remove the security group : "Team Foundation Valid Users" which could be found in the "Project Security" form.

http://msmvps.com/blogs/vstsblog/archive/2008/08/06/users-can-see-all-team-projects-after-upgrading-from-tfs-2005-to-2008.aspx

Edit your workitems' template in Team Foundation Server

If you've already edited your workitems' template in TFS 2008 (using PowerTools)


You could go far beyond in customizing your Workitems :
TFS 2010 (b2) Custom Work-item-controls getting-started

Wednesday, May 26, 2010

Gated Check-in in TFS 2010

TFS 2010 allows you to create a build definition with the option "Gated Check-in". As the name suggests, a developper could check-in his code ONLY IF the build server validates the code.

Once the build is done, and validated, you can clic "Ignore" to the sacry pop-up "If you did not undo your local pending changes when you submitted your check-in, you may need to reconcile your workspace with the repository."


Then, your code is checked in.

Great feature !!

Sunday, May 16, 2010

Great addon to VS 2010 to better SCRUM

Urban Turtle is an intuitive Agile Project Management tool (plug-in) for Visual Studio 2010 to ease by Drag and Drop within the browser any SCRUM projects connected to TFS.

 
http://www.urbanturtle.com/

Thank you Pyxis !

Where to start when auditing a web application ?

Here is a short questionnaire when starting to audit the performance of a web application:

For instance :

Server :

. Make of the production server : HP

. Year : 2007

. Description : Proliant DL580 G4



Processeur(s) :

. Number : 16 (quad/quad)

. Type : Intel Xeon MP /3.20GHz FSB 800 MHz



RAM :

. Type and numbers of physical unit : 4 * 1 Go de RAM DDR2 533MHz ECC

. Maximum supported size : 256 Go (8*8*4 Go)

. Size of the RAM : 4 Go (Physical)



OS :

. 32 bit ? Oui or 64 bits ?

. Precise version of Windows : Windows Server 2003 Standard

"Microsoft Windows [version 5.2.3790]"

. Service pack : SP 2

. Updating strategies : WSUS (following the updates every 14 days)

. Version du IIS : 6.0



LDAP-Novell :

LDAP Novell eDirectory 8.7.3.7



HD :

. Number of physical disk : 8

. Number of logical disk : 3

. Speed of the disk : 10000 rev/min type SAS, 2.5 inches

. Type of RAID :

2 RAID 1+0 (2 disks each)

1 RAID 5 (3 disks)



LAN :

. Type : RJ45 wire

. Speed : 1 Gbit/s



Virtualisation :

. Any virtual machine hosted on the production server ?

SQL serveur :

. Precise version of the SQL-server : SQL Server 9.0.3050

. Service pack : SP 2

. Updating strategies : WSUS (following the updates every 14 days)


Architecture :

. DMZ, firewall

Saturday, May 15, 2010

SQL optimisation : How to find out the most used T-SQL queries ?

Provided you have the required autorisations to run those SCRIPTS, here are handfull T-SQL query to find out the most used queries within the SQL Server's cache (since the last reboot).

Thank you Christian Robert !
SELECT
      LEFT(tx.text, 50) AS 'Query',
      SUM(qs.total_logical_reads) 'Logical Reads'
FROM
      sys.dm_exec_cached_plans AS cp
      JOIN sys.dm_exec_query_stats AS qs
      ON cp.plan_handle =qs.plan_handle
      CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) AS tx
--WHERE qs.max_logical_reads> 0 And (0. + qs.min_logical_reads) / (0. + qs.max_logical_reads ) > 0.1
GROUP BY LEFT(tx.text, 50)
ORDER BY 2 DESC


Another version by pinaldave :
SELECT TOP 10
    qt.TEXT AS 'SP Name',
    qs.execution_count AS 'Execution Count',
    qs.total_worker_time/qs.execution_count AS 'AvgWorkerTime',
    qs.total_worker_time AS 'TotalWorkerTime',
    qs.total_physical_reads AS 'PhysicalReads',
    qs.creation_time 'CreationTime',
    qs.execution_count/DATEDIFF(Second, qs.creation_time, GETDATE()) AS 'Calls/Second'
FROM
    sys.dm_exec_query_stats AS qs
    CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE
    qt.dbid = (
        SELECT dbid
        FROM sys.sysdatabases
        WHERE name = 'AdventureWorks')
ORDER BY
    qs.total_physical_reads DESC


=================

SET STATISTICS IO ON;

Tuesday, April 27, 2010

Recommanded SCRUM reading

Here is a great book about SCRUM (unfortunately in French so far) :
SCRUM : Le guide pratique de la méthode agile la plus populaire
(or amazon).


The great thing is that the author (Claude AUBRY) gave us his feedbacks and returned of experiments about SCRUM.
As a Product Owner of "IceScrum" (OpenSource), he also tells us how to use it; the only drawback so far is that he does not presents other tools.



Great value either for beginners willing to improve their knowledge or for confirmed SCRUM practitioner.

Thanks.