Extreme programming : retour d’expérience

Par | Classé dans Agilité | Le 10/01/2012

Tags « »

0

Intro

SCRUM, Extreme Programming (XP), Lean-management, le développement agile, c’est tendance !

Objectifs : améliorer la réactivité, la qualité et le coût du logiciel avec en ligne de mire la sacro-sainte satisfaction client.

J’ai participé, pendant deux ans, à un projet réalisé « from scratch » en suivant une méthodologie agile : l’Extreme programming. En tant que développeur (sur les deux ans), et « coach XP » (sur les six derniers mois).  L’objectif du projet était le développement d’une application de trading « in-house » dans une banque d’investissement, la taille de l’équipe a varié au cours de ces deux ans de 3 à 7 (manager compris).

Ce post a pour but d’expliquer les pour et les contre de cette méthode tel que je l’ai vécu.

Lire la suite…

Détecter les deadlocks en C# / .NET grâce au pattern IDisposable

Par | Classé dans .NET, Avancé, Intermédiaire | Le 09/02/2011

Tags « »

5

Détecter les deadlocks en C# / .NET grâce au pattern IDisposable

Si vous êtes développeur en environnement multithread, alors vous vous êtes déjà posé cette question : Où est ce deadlock ? !

Bien sûr, ce deadlock est non-reproductible, il survient chez l’utilisateur, et l’on peut passer des heures à le chercher. Sans jamais être sur d’avoir trouvé LE deadlock qui pose problème !

Vous trouverez dans ce post un exemple de lock qui a pour objectif de

  1. Pouvoir détecter les deadlocks
  2. Proposer une syntaxe claire et concise
  3. Ajouter un overhead minimum en terme de performance à la syntaxe lock C# classique

Petit rappel : qu’est-ce  qu’un deadlock ?

Un deadlock (interblocage dans sa version française que personne n’utilise) est la situation dans laquelle 2 threads s’attendent mutuellement. Cas concret :

  1. Un thread T1 acquiert une ressource R1
  2. Un thread T2 acquiert une ressource R2
  3. T1 demande la ressource R2
  4. T2 demande la ressource R1

Avec un schéma :

Exemple de code provoquant un deadlock


void CreateDeadLock()
{
   Object R1 = new object();
   Object R2 = new object();

   Thread T1 = new Thread(delegate() { Work(R1, R2); });
   Thread T2 = new Thread(delegate() { Work(R2, R1); });

   T1.Start();
   T2.Start();
}

void Work(Object acquire, Object demand)
{
   lock (acquire)//T1 take R1 and T2 take R2
   {
      Thread.Sleep(1000);//To ensure that the ressources are taken
      lock (demand)
      {
      }
    }
}

NB : Bien sûr, les situations réelles sont souvent plus compliquées, impliquant par exemple plus de 2 threads ou des locks implicites (écriture dans un fichier…).

Lire la suite…

Exemple d’option dans la vie quotidienne : l’option SNCF

Par | Classé dans Débutant, Finance | Le 03/11/2010

Tags « »

1

Peut-être avez vous déjà utilisé les “options SNCF” pour les billets de train, qui vous permettent de “réserver” un billet pendant un certain temps sans l’acheter directement. Et bien son fonctionnement est quasiment identique à une option au sens financier du terme !

Voici ses caractéristiques :

  • Le sous-jacent : C’est le billet de train, c’est le produit que vous récupérerez si vous exercez l’option.
  • Le type : L’option vous donne droit d’acheter le billet, c’est donc une option d’achat (Call en anglais)
  • Le style : Vous pouvez récupérer le billet n’importe quand jusqu’à une certaine date, il n’y a pas de date précise, c’est donc une option américaine
  • La quotité : C’est le nombre de billets que vous aurez en exerçant l’option (nombre de sous-jacents par option)
  • La maturité : C’est la durée de validité de l’option, si vous avez 1 mois pour acheter vos billets, la maturité de l’option est 1 mois.
  • Le strike : C’est le prix du billet de train si vous décidez d’exercer l’option.

On retrouve donc dans l’option SNCF les caractéristiques d’une option en finance.

Il y a cependant une différence de taille, l’option SNCF est gratuite, mais comme rien n’est gratuit en finance, la problématique réside dans la détermination du “juste prix” d’une option donnée.

Pour les options SNCF, vous pouvez vous dire, c’est gratuit, je ne m’engage à rien, l’option me garantit un prix, et vous posez cette option.

Maintenant, imaginons que la SNCF décide de faire payer ces options. Si celle-ci coûte 1€, alors vous en déduisez que l’option est toujours intéressante…mais si l’option coûte 2 € ? 5 € ?

Quel est le prix à partir duquel vous déciderez de ne plus acheter cette option ?

Si vous arrivez à déterminer ce prix, alors vous avez “pricé” l’option !

Voyons en détail les critères qui permettent de déterminer le “bon prix”.
Lire la suite…