Salut à tous,
Merci à tous et merci M. Cedric Girard de nous faire part de l'extreme programming, suite à la lecture du site, cela correspond exactement à ce qu'est la programmation que j'ai nommé spontanée.
Il y a longtemps sans avoir de nom, j'avais déjà eu des échos sur des concours de programmation (tournois au USA) se passant sur plusieurs jours, comme ceux qui pratiquent les jeux en réseaux, ils étaient capables de réaliser des programmes sur mesures en un minimum de temps, ils en faisaient donc partie.
Il serait même possible de la qualifier de programmation temps réel, du fait qu'elle ne se base que sur le résultat obtenu, et que l'algorithme du programme est conçu et optimisé, à chaque fois pour le mieux au moment de sa saisie et de son étude simultanées.
C'est avant tout une question de méthode qui se base sur l'expérimentation, plus on programme, plus ça devient facile.
Pour les algorithmes, il y a toujours plusieurs solutions, seule l'expérience nous fera choisir la plus adaptées pour le futur du programme.
J'ai remarqué qu'au fils du temps on s'attache plus au coté technique, si l'on regarde bien dans un programme, il y a beaucoup de morceaux d'algorithme qui sont du déjà vus.
Cela se base aussi sur l'anticipation, si l'on peut augmenter les possibilités d'un sous programme ou d'une fonction, on réalise la modification immédiatement, de cette façon il n'est plus utile de revenir dessus par la suite.
(C'est sûr pour les entreprises qui vivent des mises à jours, ils se doivent de calmer leurs ardeurs. Ou bien leurs laisser réaliser la version entière et débrider des morceaux au fils des numéros.)
Pour moi, la programmation remplace un jeu de stratégie ou de logique.
Ce type de programmation arrive à me faire penser au mastermind, où à chaque départ de jeux on commence à découvrir à chaque fois au moins 4 couleurs bien placées sur les 5 (structure), dont il ne reste plus à découvrir la 5 eme (paramétrage).
On ne se base que sur le résultat obtenu, c'est la recherche du principe logique à découvrir, on s'adapte sans cesse au fonctionnement du langage de programmation et de l'ordinateur, ainsi qu'à leurs caprices.
Finalement, on passe très peu de temps sur le déboggage, qui s'avère sans difficulté apparente, et que je considère plutôt comme du paramétrage inévitable.
Il arrive que des parties de programme fonctionnent parfaitement du premier coup, ce qui arrive à me surprendre, car je ne m'attends jamais à ce que cela fonctionne du premier coup, mais ce n'est pas une raison pour ne pas pousser les tests, ou bien tester une autre méthode, si l'on en voit une autre ensuite.
C'est un type de programmation difficile à expliquer aux autres, même aux programmeurs expérimentés, on a une idée en tête qui va se réactualisée à chaque étapes, on la suit. Si cette idée était fausse, ça ne marcherait pas. Sinon il y aurait plus de chance de gagner au loto, que de réussir le moindre programme.
Programme bien pensé fonctionnement assuré.
Programme mal pensé est à recommencer.
Avec l'expérience, on arrive à débogger par intuition, on parcourt le programme sans toujours savoir précisément ce que l'on recherche, dès que l'on est dessus on sait que c'est là, on réalise quelques tests de confirmation, une modification, le bogue est décelé et résolu.
On isole mentalement chaques étapes du programme comme ceux qui élaborent l'algorithme sur papier, et on les réalise, il n'y a pas de sorcellerie, le programme ne se fait pas tout seul.
Programmer sur papier ou non, ça n'empêchera pas qu'il faudra quand même passer devant l'ordinateur, de plus un algorithme concu sur papier de tient pas compte de tout, il y aura des modifications à la suite du programme.
L'extreme programming est une méthode sûr, qui pour moi à déjà fait ses preuves et pas seulement en informatique. (ça doit être possible dans tout les métiers, l'informatique n'en est qu'un parmi tant d'autres)
S'il fallait procéder autrement, je considérais cet acte comme une régression accompagnées d'une perte de temps. Pourquoi changer une méthode sûr qui marche à chaque fois ?
Pour modifier un programme, on ne cherche pas à comprendre son fonctionnement, on part uniquement à la recherche de la partie que l'on souhaite modifier ou en rapport avec.
Si l'on part du principe que le programme sur lequel on est fonctionne sans problème, il ne suffit que de lui apporter une modification au bon endroit, nul besoin de se préoccuper du reste.
C'est sûr si l'on reprend des programmes d'autres personnes boggés à mort (algorithme mal pensé, illogique, ...), ce sera plus simple de tout recommencer à sa manière, que de corriger ou de masquer les erreurs de conceptions.
Si je devais dessiner un algorithme, il me serait plus facile de réaliser le programme et de faire l'algorithme ensuite. Bien qu'il ait des programmes où je n'aurais pas envie de réaliser l'algorithme de par le temps que ça va prendre.
Depuis que je programme, sur 8 ans je n'ai recommencé que 3 morceaux de programmes différents, non pas parce qu'ils ne marchaient pas, mais que j'avais découvert une méthode différente, plus technique à la suite de leurs réalisations.
Chaque personne ne fonctionne pas pareil, sinon tout le monde aurait les même notes à l'école.
Finalement, la programmation ce serait plus une question de logique que d'autres choses. De mauvaises notes à l'école ne feront pas forcément de mauvais programmeurs, ce n'est pas un argument à resservir pour en avoir non plus.
Est-ce que tout le monde peut faire de l'extreme programming ?
Quelles sont les qualités requises pour y parvenir ?
Quel peut être le pourcentage des informaticiens qui la pratique ou qui en sont tout simplement capables ?
Quels sont les points communs de ceux qui pratiquent l'extreme programming ?
Merci de nous faire partager vos expériences.
@ +
Partager