<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Ne codez pas des oeuvres d&#8217;art (mais bâtissez des cathédrales)</title>
	<atom:link href="http://www.imctobitch.com/ne-codez-pas-des-oeuvres-dart-mais-batissez-des-cathedrales/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.imctobitch.com/ne-codez-pas-des-oeuvres-dart-mais-batissez-des-cathedrales/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ne-codez-pas-des-oeuvres-dart-mais-batissez-des-cathedrales</link>
	<description>Random thoughts about my young CTO startup experience</description>
	<lastBuildDate>Thu, 17 Sep 2020 11:32:20 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.1</generator>
	<item>
		<title>By: sgendrot</title>
		<link>http://www.imctobitch.com/ne-codez-pas-des-oeuvres-dart-mais-batissez-des-cathedrales/comment-page-1/#comment-55</link>
		<dc:creator>sgendrot</dc:creator>
		<pubDate>Thu, 23 Feb 2012 16:33:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.imctobitch.com/?p=238#comment-55</guid>
		<description>C&#039;est vrai qu&#039;un tableau n&#039;est livré qu&#039;une fois achevé, alors qu&#039;on peut utiliser une cathédrale avant la fin de sa construction... en même temps, la construction d&#039;une cathédrale durait plusieurs décennies (à peu près de 200ans pour Notre Dame XD ... ).

La comparaison de Pierre entre la peinture et les méthodes Agiles est très juste, on boucle sur des itérations en interne mais on livre qu&#039;une fois l&#039;oeuvre terminée.

Pour le travail préparatoire (aussi appelé étude):
http://www.culture.gouv.fr/documentation/joconde/fr/decouvrir/expositions/Main/expo_main_oeuvre.htm

Un travail préparatoire consiste à faire un élément isolé (ex: une main), avec plus ou moins de complexité, pour voir lequel est le &quot;meilleur&quot;. Certaines fois, le travail (ou étude) est juste réalisé pour s&#039;entrainer, aucun objectif à court terme, par contre 10ans plus tard le peintre ressort son étude pour la répliquer sur un tableau.


Pour la prog, je le fais sur des choses très limitées, les deux dernières fois étaient télécharger un fichier puis le copier dans le cache de la carte SD sous Android, et parser un fichier xml sous Android. Dans les deux cas, je finis avec une fonction/méthode que je copie/colle dans le vrai programme.
ça s&#039;intègre très bien avec le Lean car toute (ou presque) action se trouve dans une fonction/méthode isolée. L&#039;inconvénient est qu&#039;on ne sait pas trop dans quelle classe copier/coller les fonctions, je me retrouve avec des classes un peu bizarre qui font un peu n&#039;importe quoi (ex: FileManager = la classe pour faire des trucs avec des fichiers XD ).
A l&#039;arrivée, on a un pack de librairies, en PHP c&#039;est puissant car on réutilise beaucoup, en Java ça demande une bonne réflexion pour ne pas finir avec 40 classes statiques...

Ps: désolé, je ne voulais pas mettre à mal l&#039;analogie avec les cathédrales et la peinture ;) . Moi même j&#039;ai beaucoup de mal à expliquer le Lean (ou continuous development) et je n&#039;ai pas d&#039;analogie claire -_-</description>
		<content:encoded><![CDATA[<p>C&#8217;est vrai qu&#8217;un tableau n&#8217;est livré qu&#8217;une fois achevé, alors qu&#8217;on peut utiliser une cathédrale avant la fin de sa construction&#8230; en même temps, la construction d&#8217;une cathédrale durait plusieurs décennies (à peu près de 200ans pour Notre Dame XD &#8230; ).</p>
<p>La comparaison de Pierre entre la peinture et les méthodes Agiles est très juste, on boucle sur des itérations en interne mais on livre qu&#8217;une fois l&#8217;oeuvre terminée.</p>
<p>Pour le travail préparatoire (aussi appelé étude):<br />
<a href="http://www.culture.gouv.fr/documentation/joconde/fr/decouvrir/expositions/Main/expo_main_oeuvre.htm" rel="nofollow">http://www.culture.gouv.fr/documentation/joconde/fr/decouvrir/expositions/Main/expo_main_oeuvre.htm</a></p>
<p>Un travail préparatoire consiste à faire un élément isolé (ex: une main), avec plus ou moins de complexité, pour voir lequel est le &#8220;meilleur&#8221;. Certaines fois, le travail (ou étude) est juste réalisé pour s&#8217;entrainer, aucun objectif à court terme, par contre 10ans plus tard le peintre ressort son étude pour la répliquer sur un tableau.</p>
<p>Pour la prog, je le fais sur des choses très limitées, les deux dernières fois étaient télécharger un fichier puis le copier dans le cache de la carte SD sous Android, et parser un fichier xml sous Android. Dans les deux cas, je finis avec une fonction/méthode que je copie/colle dans le vrai programme.<br />
ça s&#8217;intègre très bien avec le Lean car toute (ou presque) action se trouve dans une fonction/méthode isolée. L&#8217;inconvénient est qu&#8217;on ne sait pas trop dans quelle classe copier/coller les fonctions, je me retrouve avec des classes un peu bizarre qui font un peu n&#8217;importe quoi (ex: FileManager = la classe pour faire des trucs avec des fichiers XD ).<br />
A l&#8217;arrivée, on a un pack de librairies, en PHP c&#8217;est puissant car on réutilise beaucoup, en Java ça demande une bonne réflexion pour ne pas finir avec 40 classes statiques&#8230;</p>
<p>Ps: désolé, je ne voulais pas mettre à mal l&#8217;analogie avec les cathédrales et la peinture ;) . Moi même j&#8217;ai beaucoup de mal à expliquer le Lean (ou continuous development) et je n&#8217;ai pas d&#8217;analogie claire -_-</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pierre Chapuis</title>
		<link>http://www.imctobitch.com/ne-codez-pas-des-oeuvres-dart-mais-batissez-des-cathedrales/comment-page-1/#comment-54</link>
		<dc:creator>Pierre Chapuis</dc:creator>
		<pubDate>Wed, 22 Feb 2012 16:05:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.imctobitch.com/?p=238#comment-54</guid>
		<description>&gt; Le souci de l’oeuvre d’art, c’est que même si tu peux ajuster via les différentes couches, ton oeuvre ne sera jamais exposée tant que inachevée.

C&#039;est un peu la différence que je fais entre Lean et Agile : le but du premier est d&#039;exposer le produit au monde réel le plus vite possible, alors que le second se contente d&#039;itérations en interne.

Vu l&#039;employeur de Sylvain (à moins qu&#039;il ait changé depuis) ça m&#039;étonnerait que son but soit de mettre en production le plus vite possible.

Ceci dit je veux bien des infos sur le concept de &quot;travail préparatoire&quot; aussi. J&#039;aime bien les prototypes jetables (j&#039;écrirais quelque chose là-dessus un jour...) mais ça n&#039;a pas l&#039;air d&#039;être exactement ça.</description>
		<content:encoded><![CDATA[<p>&gt; Le souci de l’oeuvre d’art, c’est que même si tu peux ajuster via les différentes couches, ton oeuvre ne sera jamais exposée tant que inachevée.</p>
<p>C&#8217;est un peu la différence que je fais entre Lean et Agile : le but du premier est d&#8217;exposer le produit au monde réel le plus vite possible, alors que le second se contente d&#8217;itérations en interne.</p>
<p>Vu l&#8217;employeur de Sylvain (à moins qu&#8217;il ait changé depuis) ça m&#8217;étonnerait que son but soit de mettre en production le plus vite possible.</p>
<p>Ceci dit je veux bien des infos sur le concept de &#8220;travail préparatoire&#8221; aussi. J&#8217;aime bien les prototypes jetables (j&#8217;écrirais quelque chose là-dessus un jour&#8230;) mais ça n&#8217;a pas l&#8217;air d&#8217;être exactement ça.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Guillaume</title>
		<link>http://www.imctobitch.com/ne-codez-pas-des-oeuvres-dart-mais-batissez-des-cathedrales/comment-page-1/#comment-53</link>
		<dc:creator>Guillaume</dc:creator>
		<pubDate>Wed, 22 Feb 2012 09:04:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.imctobitch.com/?p=238#comment-53</guid>
		<description>Hum, je dois dire que tu viens de bien malmener mon analogie oeuvre d&#039;art / cathédrale là.. :)

Le souci de l&#039;oeuvre d&#039;art, c&#039;est que même si tu peux ajuster via les différentes couches, ton n&#039;oeuvre ne sera jamais exposée tant que inachevée.. J&#039;imaginais plutôt Notre Dame en effet (oui oui, je suis passé devant ce week end) où grosso modo tu définis l&#039;emplacement au sol, la hauteur, la structure générale, puis t&#039;attaques aux fondations. Puis étage par étage. Les fidèles ont commencé à se recueillir alors que la coeur et les deux tours n&#039;étaient pas terminées: tu releases un MVP exploitable de ta solution rapidement. Tu te rends compte qu&#039;il faut des contreforts (de toutes façons, c&#039;est plus joli ainsi je trouve :)), on peut imaginer que c&#039;est un premier retour user, avec des tests de montée en charge, chose ignoré/mal conçu initialement qu&#039;il faut rapidement adapter. Puis viennent les dorures, les vitraux, les enluminures, les cierges, les curés toussa toussa.

Je reste donc intimement persuadé que l&#039;oeuvre d&#039;art, tu la sors one-shot et tu ne la touches pas (on aurait fait sourire la Joconde depuis longtemps sinon) tandis que ta cathédrale (ou une tour d&#039;entreprise à la Défense par exemple) tu suis plus le cheminement que j&#039;ai essayé d&#039;expliquer ci-dessus.

Je ne connais pas par contre ce concept de &quot;travail préparatoire&quot;. Peux-tu m&#039;en dire plus?</description>
		<content:encoded><![CDATA[<p>Hum, je dois dire que tu viens de bien malmener mon analogie oeuvre d&#8217;art / cathédrale là.. :)</p>
<p>Le souci de l&#8217;oeuvre d&#8217;art, c&#8217;est que même si tu peux ajuster via les différentes couches, ton n&#8217;oeuvre ne sera jamais exposée tant que inachevée.. J&#8217;imaginais plutôt Notre Dame en effet (oui oui, je suis passé devant ce week end) où grosso modo tu définis l&#8217;emplacement au sol, la hauteur, la structure générale, puis t&#8217;attaques aux fondations. Puis étage par étage. Les fidèles ont commencé à se recueillir alors que la coeur et les deux tours n&#8217;étaient pas terminées: tu releases un MVP exploitable de ta solution rapidement. Tu te rends compte qu&#8217;il faut des contreforts (de toutes façons, c&#8217;est plus joli ainsi je trouve :)), on peut imaginer que c&#8217;est un premier retour user, avec des tests de montée en charge, chose ignoré/mal conçu initialement qu&#8217;il faut rapidement adapter. Puis viennent les dorures, les vitraux, les enluminures, les cierges, les curés toussa toussa.</p>
<p>Je reste donc intimement persuadé que l&#8217;oeuvre d&#8217;art, tu la sors one-shot et tu ne la touches pas (on aurait fait sourire la Joconde depuis longtemps sinon) tandis que ta cathédrale (ou une tour d&#8217;entreprise à la Défense par exemple) tu suis plus le cheminement que j&#8217;ai essayé d&#8217;expliquer ci-dessus.</p>
<p>Je ne connais pas par contre ce concept de &#8220;travail préparatoire&#8221;. Peux-tu m&#8217;en dire plus?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sgendrot</title>
		<link>http://www.imctobitch.com/ne-codez-pas-des-oeuvres-dart-mais-batissez-des-cathedrales/comment-page-1/#comment-52</link>
		<dc:creator>sgendrot</dc:creator>
		<pubDate>Wed, 22 Feb 2012 08:33:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.imctobitch.com/?p=238#comment-52</guid>
		<description>Justement si on applique Scrum et/ou travail par bloc (comme l&#039;exemple de Pierre), ça veut dire:
ne pas bâtir des cathédrales mais coder des oeuvres d&#039;art.

C&#039;est vraiment l&#039;inverse, une cathédrale est une somme monstre de calcul, dés le départ il faut calculer l&#039;emplacement de chaque élément car c&#039;est un jeu de force mécanique qui maintient l&#039;ensemble. Par exemple à Notre Dame, l&#039;architecte de départ à fait des erreurs de calcul et il a fallu ajouter des arc-boutants (qui empêchent les murs de partir vers l&#039;extérieur).
Autre exemple, l&#039;espace entre les colonnes définit la hauteur maximale de la cathédrale.


En peinture c&#039;est totalement différent, toutes les peintures sont la superposition de couches. Certes il faut penser au début où on veut aller mais avec une marge de manoeuvre assez large, par exemple modifier l&#039;emplacement d&#039;une main ou réduire la taille d&#039;une lance. On ne le remarque que dernièrement grâce à l&#039;analyse des oeuvres avec des outils scientifiques, sur certaines peintures c&#039;est carrément des personnages qui ont été effacés !!
La méthode de travail est assez malléable aussi: Rembrandt, pour la Ronde de nuit, avait fait des portraits des personnes seules sur des toiles à taille humaine, ensuite il les reproduisait sur la toile finale.
Je ne parle même pas des travail préparatoires, où sur une toile le peintre va faire 10, 20 voir 30 mains, pour trouver la main parfaite qu&#039;il reproduira sur l&#039;oeuvre.


Ps: je code avec le concept de travail préparatoire, un projet test où je ne fais qu&#039;une seule action qui est ensuite recopier dans le vrai projet.</description>
		<content:encoded><![CDATA[<p>Justement si on applique Scrum et/ou travail par bloc (comme l&#8217;exemple de Pierre), ça veut dire:<br />
ne pas bâtir des cathédrales mais coder des oeuvres d&#8217;art.</p>
<p>C&#8217;est vraiment l&#8217;inverse, une cathédrale est une somme monstre de calcul, dés le départ il faut calculer l&#8217;emplacement de chaque élément car c&#8217;est un jeu de force mécanique qui maintient l&#8217;ensemble. Par exemple à Notre Dame, l&#8217;architecte de départ à fait des erreurs de calcul et il a fallu ajouter des arc-boutants (qui empêchent les murs de partir vers l&#8217;extérieur).<br />
Autre exemple, l&#8217;espace entre les colonnes définit la hauteur maximale de la cathédrale.</p>
<p>En peinture c&#8217;est totalement différent, toutes les peintures sont la superposition de couches. Certes il faut penser au début où on veut aller mais avec une marge de manoeuvre assez large, par exemple modifier l&#8217;emplacement d&#8217;une main ou réduire la taille d&#8217;une lance. On ne le remarque que dernièrement grâce à l&#8217;analyse des oeuvres avec des outils scientifiques, sur certaines peintures c&#8217;est carrément des personnages qui ont été effacés !!<br />
La méthode de travail est assez malléable aussi: Rembrandt, pour la Ronde de nuit, avait fait des portraits des personnes seules sur des toiles à taille humaine, ensuite il les reproduisait sur la toile finale.<br />
Je ne parle même pas des travail préparatoires, où sur une toile le peintre va faire 10, 20 voir 30 mains, pour trouver la main parfaite qu&#8217;il reproduira sur l&#8217;oeuvre.</p>
<p>Ps: je code avec le concept de travail préparatoire, un projet test où je ne fais qu&#8217;une seule action qui est ensuite recopier dans le vrai projet.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pierre Chapuis</title>
		<link>http://www.imctobitch.com/ne-codez-pas-des-oeuvres-dart-mais-batissez-des-cathedrales/comment-page-1/#comment-49</link>
		<dc:creator>Pierre Chapuis</dc:creator>
		<pubDate>Tue, 21 Feb 2012 08:55:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.imctobitch.com/?p=238#comment-49</guid>
		<description>Je te retourne le compliment, j&#039;adore ton blog. On entend trop rarement l&#039;équipe technique des startups s&#039;exprimer en France.</description>
		<content:encoded><![CDATA[<p>Je te retourne le compliment, j&#8217;adore ton blog. On entend trop rarement l&#8217;équipe technique des startups s&#8217;exprimer en France.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Guillaume</title>
		<link>http://www.imctobitch.com/ne-codez-pas-des-oeuvres-dart-mais-batissez-des-cathedrales/comment-page-1/#comment-46</link>
		<dc:creator>Guillaume</dc:creator>
		<pubDate>Mon, 20 Feb 2012 14:55:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.imctobitch.com/?p=238#comment-46</guid>
		<description>+1
En effet Pierre, je pense aussi qu&#039;il est important de bien réfléchir conception et interface, notamment dans une optique Component Driven Development (CDD) de boites noires. Sinon, c&#039;est vrai, c&#039;est un chateau de cartes qui risque littéralement de s&#039;écrouler!

Par contre en effet, tant que cela fonctionne, que les tests passent et que cela tient une charge raisonnable, go prod. Toujours à temps ensuite de refacto / scaler comme il se doit, ou adapter en fonction des retours :)

Merci pour tes commentaires qui sont toujours intéressants et bienvenus! ;)</description>
		<content:encoded><![CDATA[<p>+1<br />
En effet Pierre, je pense aussi qu&#8217;il est important de bien réfléchir conception et interface, notamment dans une optique Component Driven Development (CDD) de boites noires. Sinon, c&#8217;est vrai, c&#8217;est un chateau de cartes qui risque littéralement de s&#8217;écrouler!</p>
<p>Par contre en effet, tant que cela fonctionne, que les tests passent et que cela tient une charge raisonnable, go prod. Toujours à temps ensuite de refacto / scaler comme il se doit, ou adapter en fonction des retours :)</p>
<p>Merci pour tes commentaires qui sont toujours intéressants et bienvenus! ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pierre Chapuis</title>
		<link>http://www.imctobitch.com/ne-codez-pas-des-oeuvres-dart-mais-batissez-des-cathedrales/comment-page-1/#comment-41</link>
		<dc:creator>Pierre Chapuis</dc:creator>
		<pubDate>Mon, 20 Feb 2012 11:58:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.imctobitch.com/?p=238#comment-41</guid>
		<description>D&#039;accord avec l&#039;idée générale (inutile de perdre un temps précieux en finitions) mais pas avec l&#039;analogie de la cathédrale. Une cathédrale se construit par couches, impossible de changer les fondations quand on travaille sur les flèches. Si on n&#039;a pas construit assez solide en bas, tout s&#039;écroule.

Je préfère construire des datacenters en containers (http://is.gd/RLMf8t pour la référence) : des blocs grossiers avec des interfaces bien définies qu&#039;on peut assembler de manière modulable pour tester des choses. Si un bloc faiblit on le remplace par un autre plus solide.

La qualité du code doit dépendre de la criticité du bloc quand même. N&#039;allez pas prendre le risque de perdre des données client au nom de l&#039;&quot;agilité&quot;. Pareil si vous écrivez du code installé chez le client, c&#039;est plus dur à patcher. Mais pour du code non-critique côté serveur, ma politique serait presque : &quot;ça a l&#039;air de marcher, ça passe quelques tests de base, mettons-le en prod&quot;, et ensuite on affine.</description>
		<content:encoded><![CDATA[<p>D&#8217;accord avec l&#8217;idée générale (inutile de perdre un temps précieux en finitions) mais pas avec l&#8217;analogie de la cathédrale. Une cathédrale se construit par couches, impossible de changer les fondations quand on travaille sur les flèches. Si on n&#8217;a pas construit assez solide en bas, tout s&#8217;écroule.</p>
<p>Je préfère construire des datacenters en containers (<a href="http://is.gd/RLMf8t" rel="nofollow">http://is.gd/RLMf8t</a> pour la référence) : des blocs grossiers avec des interfaces bien définies qu&#8217;on peut assembler de manière modulable pour tester des choses. Si un bloc faiblit on le remplace par un autre plus solide.</p>
<p>La qualité du code doit dépendre de la criticité du bloc quand même. N&#8217;allez pas prendre le risque de perdre des données client au nom de l&#8217;&#8221;agilité&#8221;. Pareil si vous écrivez du code installé chez le client, c&#8217;est plus dur à patcher. Mais pour du code non-critique côté serveur, ma politique serait presque : &#8220;ça a l&#8217;air de marcher, ça passe quelques tests de base, mettons-le en prod&#8221;, et ensuite on affine.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

 Served from: www.imctobitch.com @ 2026-04-06 13:30:31 by W3 Total Cache -->