Ok

En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Ces derniers assurent le bon fonctionnement de nos services. En savoir plus.

05/11/2004

Méthodes agiles : XP

Tout développement logiciel nécessite de reposer sur une méthode. Aun sein de BlogSpirit on utilise les "best practices" des méthode agiles. Kesako ?

Une méthode agile est une méthode de développement dans lequel le Client joue un rôle central. Le projet est centré autour de lui. Le développement est divisé en blocs et les blocs sont intégrés au fur et à mesure dans le projet. Le Client peut voir constamment l'évolution de son logiciel.

L'encyclopédie WikiPedia donne une bonne définition de ce qu'est une méthode agile pour ce qui en veulent en savoir plus.
XP : eXtreme Programming est une des méthodes agiles les plus populaires en développement ces dernières années. Nous nous en inspirons beaucoup. Cependant certains points sont difficiles à suivre tel que la programmation en binôme. Je ne met en place des binômes que sur des problèmatiques complexes sur lesquelles je sais que réfléchir à 2 permettra de trouver la solution. En effet les personnes sont beaucoup plus motivées à trouver une solution et comprennent que travailler à deux veut dire un résultat obligatoire et rapidement.
Le site Design Up propose une bonne explication sur XP. Pour l'instant je connais pas des cas concrets d'utilisation de XP dans les projets web. SI vous en connaissez, vous pouvez laisser un commentaire ;-)

Avant ces méthodes agiles, on avait le sacro saint cycle en V. Laurent donne sur son site une explication de son abandon. Bien que je ne sois pas d'accord avec lui sur tous les points j'en partage une majorité. Je reviendrai dans une future note sur mon désaccord. Le cyle en V, pour caricaturer, c'est un gros cahier des charges, un client présent au début et à la fin du projet et au final un projet qui ne répond pas correctement aux attentes du client. Touver un client qui sache rédiger un cahier des charges ou même qui sait ce qu'il veut au début du projet est une gageure ! (Je me demande encore pourquoi on apprend ce cycle en V dans les écoles d'ingénieurs alors que les mots "méthodes agiles" ou "XP" sont inconnus du vocabulaire de l'ingénieur sortie d'école).

Un développement web est caractérisé par un développement du type "in progress" et artisanal. C'est pourquoi le Client doit être le plus proche du projet et les méthodes agiles sont celles qui répondent le mieux à ces problématiques.

03/11/2004

Architecture 3 tiers

Beaucoup de projets opensource PHP ne sont pas batis sur une architecture 3 tiers. Or une conception en couche est un des points fondamentaux si l'on souhaite faire évoluer les applications web.

Une architecture est dite 3 tiers si une modification de la couche présentation (html par exemple), n'entraine pas forcément une modification de la couche métier (logique) ou de la couche data (accès aux données). Des outils facilitent cette conception tels que le moteur de template Smarty qui gère la couche présentation. (BlogSpirit l'utilise ;-)).
Au niveau de la couche data on peut citer adodb qui fournit des drivers pour la plupart des bases de données relationnelles du marché mais aussi pour du xml si on le souhaite. Au passage le benchmarck suivant http://phplens.com/lens/adodb/ montre très nettement qu'adodb est un des meilleurs drivers en PHP. Alors pourquoi s'en privé !

Pour la couche métier, il n'existe pas de framework dominant. On utilise en général des classes de projets déjà existants ou bien on les crée.

Une des premières régles en développement web que je donnerai c'est : regarder ce qu'il y a dans le monde libre . Il y aura toujours quelqu'un qui l'aura fait avant vous. Plus ou bien peut-être, mais ca fait gagner un temps précieux !

28/10/2004

1ère note

Bonjour à tous,

Ce blog sera destiné à tous les personnes s'intéressant aux problèmatiques de développement logiciel en PHP et d'architecture de logiciels en général.

En effet bien qu'il existe de nombreux projets en PHP, peu sont de bonne qualité et réutilisable. La simplicité du langage cache en fait la difficulté de programmer "proprement". On apprend rapidement le langage mais concevoir des logiciels de qualité et surtout maintenable dans le temps et une difficulté majeure que les développeurs doivent affronter.

De part mon expérience de plus de 4 ans de développement PHP, j'ai appris et j'apprends encore tous les jours à rendre ces logiciels meilleurs.

Ma volonté est d'apporter ma contribution à l'amélioration des logiciels en PHP.