mardi 8 mai 2012

Intégration des tests dans le cycle projet scrum et l'équipe

Bonjour à tous,

Aujourd'hui je vous propose un article que j'ai co-écrit avec un de mes collègues (Fabien Guede), et qui concerne l'organisation des tests dans nos projets Scrum.
Cet article indique l'organisation mise en place à ce jour sur nos projets de développement asp.net Mvc. Vous remarquerez que nous adressons plusieurs types de tests qu'ils soient automatisés ou manuels : tests unitaires, tests de navigation, tests d'interface et tests exploratoires.

Ces pratiques ont émergées au fil des itérations et des projets, à la lecture de divers blogs, participations à des conférences sur l'agilité (Scrumday, XP days, Journée agile...) et de différents ouvrages sur l'agilité ("Agile Testing" de Lisa Cispin et Janet Gregory...).

Bonne lecture et à vos commentaires !
Lien vers l'article: http://fabienguede.blogspot.be/2012/04/integration-des-tests-dans-le-cycle.html

vendredi 30 mars 2012

Introduction à Microsoft Code Contracts

Hello world,

I just saw a very great video where Greg Young made an introduction to Microsoft Code Contracts. I recommand it for every .net users who want to improve their skills.

Enjoy.

http://www.infoq.com/presentations/Contracts-Library

jeudi 31 mars 2011

Scrumday 2011 : retours à chaud

lien vers le site scrumday : http://www.scrumday.fr/

Aujourd'hui je suis allé à Paris (Issy les Moulinaux très exactement) dans les locaux de Microsoft pour assister au Scrumday 2011, organisé par Microsoft et le French Scrum User Group.
Mes objectifs étaient d'une part de me faire une idée sur l'adoption de l'agilité dans les DSI et les SSII, et d'autre part de voir quelles pratiques étaient utiliser et celles qui ne le sont pas ou peu. Tout ça bien sûr dans l'optique très altruiste de situer et tenter d'évaluer -avec toute l'objectivité qui s'impose, :)- l'implémentation de l'agilité dans notre service de développement.
Rassurez-vous l'objet de mon billet n'est pas de vous parler du résultat de mon introspection mais plutôt de vous mettre en avant les sessions auxquelles j'ai assistées et qui ont vraiment attirés mon attention.
Je parlerai donc de deux :
- "ScrumMasters, devenez le coach de votre équipe agile" animé par Véronique Messager, dans le track ADOPTION.
- "Quarante ans de crise, dix ans d'agilité" présenté par Laurent Bossavit, Directeur de l'Institut Agile, dans le track PRATIQUES AGILES.

Dans sa présentation, Véronique Messager a aborder les missions de coaching qu'un Scrum master doit ou devrait adresser. Son message, auquel j'adhère complètement, est qu'être scrum master demande des connaissances en management et en "psychologie" pour pouvoir correctement faire ce travail de coaching. Wow ! Quel changement de mentalité cela demande à nos chefs de projets.  Devoir se soucier des relations humaines là où on leur avait toujours fait comprendre que ce qui compte c’est le respect des délais et des spécifications !
Je ne sais pas si cette présentation a été filmée et sera diffusée sur un site ou un autre mais si c’est le cas je la conseille à tous celles et ceux qui s’intéressent à scrum et en particulier au rôle de scrum master.
Par ailleurs et pour soumettre mon point de vue à ceux qui liraient ce billet (n’hésitez pas à laisser un commentaire), je pense que même si l’adoption de Scrum, pour des raisons de ressources humaines, passe naturellement par des équivalences MOA devient Product Owner et chef de projet devient scrum master, il apparait assez clairement que l’on parle ici de nouveaux métier ou de mutation très forte de ces métiers. Et ce à un point tel que tous les  chefs de projet ne pourront pas ou n’auront pas envie de devenir scrum master. Il faudra donc créer ces nouveaux spécialistes de ces métiers, ce qui nous amène à la deuxième session que je recommande.

Ayant découvert récemment l'institut agile (cf mon billet précédent) j’ai recherché un peu plus d’informations à son sujet et je suis tombé en début de semaine sur un podcast sur Visual Studio Talk Show où Laurent Bossavit le créateur de l’institut agile, était l’invité. Je vous le conseil vivement et il vous apportera des réponses sur les missions de cet institut.
Pour en revenir à la session, Laurent Bossavit nous livre une partie d’histoire sur l’ingénierie logicielle pour aider à comprendre pourquoi un tel engouement pour les méthodes agiles mais aussi pourquoi leur mauvaise transmission et compréhension pourrait leur être préjudiciable à moyen terme. Si toutefois la présentation d’aujourd’hui n’est pas téléchargeable dans les prochaines semaines, Laurent Bossavit a annoncé qu’il y aurait fin avril, probablement à Paris, une conférence organisée par l’institut agile pour le présenter. Ce sera donc probablement l’occasion pour lui de reparler de ce qu’il a présenté aujourd’hui et pour vous d'aller le rencontrer.

Globalement cet événement était vraiment bien préparé et les sujets couverts étaient intéressants et comme souvent on aimerait pouvoir se dédoubler pour suivre 2 ou 3 sessions positionnées sur le même créneau horaire. Mon seul regret, dommage pour la session « Mode Forfait et Méthode Scrum : Les frères ennemis ? » que je n’ai pas pu suivre car la salle était plus que pleine.

Bonne continuation à toutes et tous.

lundi 28 mars 2011

L'agilité dans un monde commercial

En 2009 lorsque j'ai commencé à m'intéresser sérieusement à l'agilité j'étais aller aux xpdays à Vincennes (devenue conf agileen 2010). J'y avais rencontré un monde d'extra-terrestres où les projets informatiques n'étaient pas que des aventures techniques et des délais, mais aussi des aventures humaines... J'ai découvert et redécouvert les concepts d'équipe, d'informatique hédoniste et d'autres sujets qui m'étaient apparus tabou dans le monde de l'entreprise.

Une session était co animée par Eric Lefevre Ardant et Laurent Bossavit : "Is Srcum Evil ?". De la, plusieurs questions autour de la certification à grande échelle, le galvaudage des mots clés de l'agilité, les abus prévisibles de certaines sociétés de services autour de l'agilité, l'identité des faussaires et des "vrais" praticiens de l'agilité... On pourrait parler ici de déontologie.

Laurent Bossavit à justement créer "l'Institut agile" qui semble tout à fait adresser ces sujets. Ceci peuvent paraitres idéalistes mais dans un contexte où tout est du commerce pour certains et que les projets informatiques sont vitaux pour d'autres il ne faudrait pas qu'une des valeurs, à mon avis phare de l'agilité qu'est la confiance perde en crédibilité. Il fallait essayer quelque chose et je crois que c'est ce que Laurent Bossavit a fait.

Je salue cette initiative en espérant qu'elle ne sera pas perçue comme une lubie d'élitiste et qu'elle permettra aux "clients de l'agilité" de mieux s'y retrouver parmis les prestataires dont le nombre ne cessent de croître.

mercredi 12 janvier 2011

Only parameterless constructors and initializers are supported in LINQ to Entities.

Linq to Entities est parfois un peu déconcertant, voici donc une déconvenue que j'ai rencontré sur un de mes récents développements.
"Only parameterless constructors and initializers are supported in LINQ to Entities."

Le code qui déclenche cette erreur est le suivant :

var events = (from c in _articleRepository.FindEvenementArticles()
orderby c.DatePublication descending
select new ArticleDto(c)
).Take(10);

une correction possible :
var events = (from c in _articleRepository.FindEvenementArticles()
orderby c.DatePublication descending
select new ArticleDto()
{
  Id = c.IdArticle,
  ContenuHtml = c.ContenuHTML
  }
).Take(10);

une autre correction possible :


var retList = new IEnumerable();


var events = (from c in _articleRepository.FindEvenementArticles()
orderby c.DatePublication descending
select c
).Take(10);


foreach (var e in events)
{
   retList.Add(new ArticleDto(e);
}

mardi 4 mai 2010

My WCF application is not called by TFS 2010 Event Service

For TFS 2010 be able to contact your WCF you have to use the WSHttpBinding and you have to specify a bindingConfiguration that disable the security. You can see below what I use for mine.

I hope that will help someone (at least Nicolas M).


ITfsEventSubscriber.cs :


...
[ServiceContract(Namespace = "http://schemas.microsoft.com/TeamFoundation/2005/06/Services/Notification/03")]
public interface ITfsEventSubscriber
{
    [OperationContract(Action = "http://schemas.microsoft.com/TeamFoundation/2005/06/Services/Notification/03/Notify")]
    void Notify(String eventXml, String tfsIdentityXml);
}
...



TfsEventSubscriber.cs :

...
public class TfsEventSubscriber : ITfsEventSubscriber
{
    void ITfsEventSubscriber.Notify(String eventXml, String tfsIdentityXml)
    {
        // My notify code
    }
}
...



Web.config :


...
<system.serviceModel>
    <bindings>
     <wsHttpBinding>
        <binding name="NoSecurity">
         <security mode="None">
         </security>
        </binding>
     </wsHttpBinding>
    </bindings>
    
    <services>
     <service behaviorConfiguration="WcfTfsDeployer.Behavior" name="WcfTfsDeployer.TfsEventSubscriber">
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        <endpoint address="" binding="wsHttpBinding" bindingConfiguration="NoSecurity" contract="WcfTfsDeployer.ITfsEventSubscriber" />
     </service>
    
    </services>

    <behaviors>
     <serviceBehaviors>
        <behavior name="WcfTfsDeployer.Behavior">
         <serviceMetadata httpGetEnabled="true"/>
         <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
     </serviceBehaviors>
    </behaviors>
</system.serviceModel>



...

lundi 3 mai 2010

What's new with BisSubscribe in TFS 2010

Hi all,

We currently migrating our Team Foundation Server 2008 to TFS 2010 and have some little issues, so I found a solution around BisSubscribe.exe that I want to share with all.

I tried to subscribe our WCF service that intercept the build quality change event to deploy our web sites on diffrent severs. But with using the BisSubscribe.exe syntax I knew with TFS 2008 it's failed with this message :


....
Exception Message: Event type BuildStatusChangeEvent does not exist. (type TeamFoundationServiceException)
...



With TFS 2008 a subscription looked like :

bissubscribe /eventType BuildStatusChangeEvent /address http://myWebServer/MyService/myNotificationService.asmx /deliveryType Soap /server http://tfsserver:8080


For TFS 2010 due to the Team Project Collection the url of the parameter /server is not functionnal and you have to use /collection instead, like this sample :

C:\Program Files\Microsoft Team Foundation Server 2010\Tools>BisSubscribe.exe /eventType BuildStatusChangeEvent /address http://myWebServer/MyService/myNotificationService.asmx /deliveryType Soap /collection http://tfsServer:8080/tfs/MyCollection


Where MyCollection is the Team Project Collection where you want to subscribe. It's appear the /server doesn't work well with all events (like BuildStatusChangeEvent).

I hope that could help someone !