Si je régarde autour de moi, au moins un tiers des développeurs
ont une fenêtre ouverte sur Google en permanence. Comme par
hazard, les plus competents sont tous dans ce tiers-là.
Si je régarde autour de moi, au moins un tiers des développeurs
ont une fenêtre ouverte sur Google en permanence. Comme par
hazard, les plus competents sont tous dans ce tiers-là.
Si je régarde autour de moi, au moins un tiers des développeurs
ont une fenêtre ouverte sur Google en permanence. Comme par
hazard, les plus competents sont tous dans ce tiers-là.
James Kanze wrote:J'ai déjà donné sur projet où j'avais fortement influencé
une méthode de travail "toutes les interfaces publiques
décrites sous Rose et le code de ces interfaces généré
automatiquement en C++" Non seulement je ne suggèrerai
plus ce genre de choses mais je botterais le derrière de
toute personne qui le suggèrerait dans le cadre d'un
projet auquel je participe !
Je ne connais pas ton projet, mais je peux dire que je l'ai
vu marcher de façon extrèmement efficace à plus 'une
occasion. Chaque fois qu'on s'est servi de Rose, pour dire.
Je ne suis pas sûr comprendre la position que tu argues.
Est-ce que tu essaies de dire que la conception ne sert à
rien, et qu'il vaut mieux écrire des classes sans savoir
leur rôle dans l'application, et les fonctions sans savoir
exactement ce qu'elles doivent faire, ou est-ce que tu
argues qu'il faut simplement éviter à tout prix de
communiquer ces informations aux autres ?
Il y a d'autres possibilités, comme de dire tout simplement
que Rose n'est pas un bon outil pour faire de la conception ou
communiquer dessus.
De plus, je pense que le niveau de détail sur lequel il faut
arrêter la conception dépend des gens, des tailles d'équipe,
des types de projet...
[...]Mais pour revenir à Rose ou Together : comment discutes-tu
de la conception sans l'avoir définie ? Sur un support que
les autres puissent lire ?
J'ai moi aussi un problème avec Rose. J'ai essayé de
l'utiliser, mais j'ai triuvé ça très laborieux. Je réfléchis
jusqu'à ce que j'ai une ébauche de conception dans la tête,
mais après, s'il me faut trop de temps pour la retranscrire,
ce qui a été le cas quand j'ai utilisé Rose, j'ai tendance à
me mélanger les pinceaux. Ou à avoir un chef qui débarque dans
mon bureau pour de la paperasserie ou organiser une démo.
Together m'avait semblé plus approprié à l'époque, mais encore
immature, très lent et trop orienté Java.
Pour l'instant, j'ai tendance à travailler au papier et
crayon, ou encore en décrivant mon architecture sous forme de
squelette de classe écrits en C++, avec la doc d'utilisation
de ses classes. Je n'en suis pas pleinement satisfait, mais
n'ai pas encore trouvé mieux.
James Kanze wrote:
J'ai déjà donné sur projet où j'avais fortement influencé
une méthode de travail "toutes les interfaces publiques
décrites sous Rose et le code de ces interfaces généré
automatiquement en C++" Non seulement je ne suggèrerai
plus ce genre de choses mais je botterais le derrière de
toute personne qui le suggèrerait dans le cadre d'un
projet auquel je participe !
Je ne connais pas ton projet, mais je peux dire que je l'ai
vu marcher de façon extrèmement efficace à plus 'une
occasion. Chaque fois qu'on s'est servi de Rose, pour dire.
Je ne suis pas sûr comprendre la position que tu argues.
Est-ce que tu essaies de dire que la conception ne sert à
rien, et qu'il vaut mieux écrire des classes sans savoir
leur rôle dans l'application, et les fonctions sans savoir
exactement ce qu'elles doivent faire, ou est-ce que tu
argues qu'il faut simplement éviter à tout prix de
communiquer ces informations aux autres ?
Il y a d'autres possibilités, comme de dire tout simplement
que Rose n'est pas un bon outil pour faire de la conception ou
communiquer dessus.
De plus, je pense que le niveau de détail sur lequel il faut
arrêter la conception dépend des gens, des tailles d'équipe,
des types de projet...
[...]
Mais pour revenir à Rose ou Together : comment discutes-tu
de la conception sans l'avoir définie ? Sur un support que
les autres puissent lire ?
J'ai moi aussi un problème avec Rose. J'ai essayé de
l'utiliser, mais j'ai triuvé ça très laborieux. Je réfléchis
jusqu'à ce que j'ai une ébauche de conception dans la tête,
mais après, s'il me faut trop de temps pour la retranscrire,
ce qui a été le cas quand j'ai utilisé Rose, j'ai tendance à
me mélanger les pinceaux. Ou à avoir un chef qui débarque dans
mon bureau pour de la paperasserie ou organiser une démo.
Together m'avait semblé plus approprié à l'époque, mais encore
immature, très lent et trop orienté Java.
Pour l'instant, j'ai tendance à travailler au papier et
crayon, ou encore en décrivant mon architecture sous forme de
squelette de classe écrits en C++, avec la doc d'utilisation
de ses classes. Je n'en suis pas pleinement satisfait, mais
n'ai pas encore trouvé mieux.
James Kanze wrote:J'ai déjà donné sur projet où j'avais fortement influencé
une méthode de travail "toutes les interfaces publiques
décrites sous Rose et le code de ces interfaces généré
automatiquement en C++" Non seulement je ne suggèrerai
plus ce genre de choses mais je botterais le derrière de
toute personne qui le suggèrerait dans le cadre d'un
projet auquel je participe !
Je ne connais pas ton projet, mais je peux dire que je l'ai
vu marcher de façon extrèmement efficace à plus 'une
occasion. Chaque fois qu'on s'est servi de Rose, pour dire.
Je ne suis pas sûr comprendre la position que tu argues.
Est-ce que tu essaies de dire que la conception ne sert à
rien, et qu'il vaut mieux écrire des classes sans savoir
leur rôle dans l'application, et les fonctions sans savoir
exactement ce qu'elles doivent faire, ou est-ce que tu
argues qu'il faut simplement éviter à tout prix de
communiquer ces informations aux autres ?
Il y a d'autres possibilités, comme de dire tout simplement
que Rose n'est pas un bon outil pour faire de la conception ou
communiquer dessus.
De plus, je pense que le niveau de détail sur lequel il faut
arrêter la conception dépend des gens, des tailles d'équipe,
des types de projet...
[...]Mais pour revenir à Rose ou Together : comment discutes-tu
de la conception sans l'avoir définie ? Sur un support que
les autres puissent lire ?
J'ai moi aussi un problème avec Rose. J'ai essayé de
l'utiliser, mais j'ai triuvé ça très laborieux. Je réfléchis
jusqu'à ce que j'ai une ébauche de conception dans la tête,
mais après, s'il me faut trop de temps pour la retranscrire,
ce qui a été le cas quand j'ai utilisé Rose, j'ai tendance à
me mélanger les pinceaux. Ou à avoir un chef qui débarque dans
mon bureau pour de la paperasserie ou organiser une démo.
Together m'avait semblé plus approprié à l'époque, mais encore
immature, très lent et trop orienté Java.
Pour l'instant, j'ai tendance à travailler au papier et
crayon, ou encore en décrivant mon architecture sous forme de
squelette de classe écrits en C++, avec la doc d'utilisation
de ses classes. Je n'en suis pas pleinement satisfait, mais
n'ai pas encore trouvé mieux.
Olivier Azeau wrote:Pour moi, il est clair que le meilleur moyen pour le commun
des développeurs d'arriver au code qui implémente le plus
simplement possible les fonctionnalités voulues c'est de
naviguer en permanence entre conception, code et test.
Je ne dis pas que dans un très petit projet, on peut changer de
châpeau assez fréquemment. Mais les activités doivent rester
distinctes.
(et je connais même des personnes qui disent que l'écriture
des tests doit venir avant celle du code mais ceci est une
autre histoire...)
C'est une des modes, aujourd'hui:-). Mais ils disent en fait que
les tests, c'est la documentation de la conception -- donc
toujours qu'il faut d'abord la conception.
Olivier Azeau wrote:
Pour moi, il est clair que le meilleur moyen pour le commun
des développeurs d'arriver au code qui implémente le plus
simplement possible les fonctionnalités voulues c'est de
naviguer en permanence entre conception, code et test.
Je ne dis pas que dans un très petit projet, on peut changer de
châpeau assez fréquemment. Mais les activités doivent rester
distinctes.
(et je connais même des personnes qui disent que l'écriture
des tests doit venir avant celle du code mais ceci est une
autre histoire...)
C'est une des modes, aujourd'hui:-). Mais ils disent en fait que
les tests, c'est la documentation de la conception -- donc
toujours qu'il faut d'abord la conception.
Olivier Azeau wrote:Pour moi, il est clair que le meilleur moyen pour le commun
des développeurs d'arriver au code qui implémente le plus
simplement possible les fonctionnalités voulues c'est de
naviguer en permanence entre conception, code et test.
Je ne dis pas que dans un très petit projet, on peut changer de
châpeau assez fréquemment. Mais les activités doivent rester
distinctes.
(et je connais même des personnes qui disent que l'écriture
des tests doit venir avant celle du code mais ceci est une
autre histoire...)
C'est une des modes, aujourd'hui:-). Mais ils disent en fait que
les tests, c'est la documentation de la conception -- donc
toujours qu'il faut d'abord la conception.
Dans un grand projet, c'est trivialement faux. Une fois que j'ai
figé l'interface de ma classe, je ne peux plus y toucher, parce
que la modifier imposerait des modifications chez tous les
collègues qui s'en servent. Mais même dans les petits projets,
c'est préférable d'éviter des modifications qui impactent
partout.
Dans un grand projet, c'est trivialement faux. Une fois que j'ai
figé l'interface de ma classe, je ne peux plus y toucher, parce
que la modifier imposerait des modifications chez tous les
collègues qui s'en servent. Mais même dans les petits projets,
c'est préférable d'éviter des modifications qui impactent
partout.
Dans un grand projet, c'est trivialement faux. Une fois que j'ai
figé l'interface de ma classe, je ne peux plus y toucher, parce
que la modifier imposerait des modifications chez tous les
collègues qui s'en servent. Mais même dans les petits projets,
c'est préférable d'éviter des modifications qui impactent
partout.
Quant à quand il faut passer au codage, ça dépend évidemment un
peu du projet. Dans des grands projets, c'est assez tardifs,
parce que revenir en arrière sur la conception même d'une classe
coûte cher, s'il implique des modifications chez tous les autres
programmeurs. Mais même dans les cas les plus simples, il vaut
bien mieux avoir précisé exactement ce que doit faire la classe,
et les pré- et post-conditions de ses fonctions, avant de
commencer le codage.
-- Comme outil de génération des en-têtes. Dans ce cas-là, on
avait même déclarer nos en-têtes comme des fichiers dérivés
(au sens de ClearCase), et non comme des sources. La source
était les diagrammes Rose. C'était un gros projet, et les
développeurs n'avait pas le droit de toucher aux en-têtes
sans autorisation particulière. (C'est un peu normal, s'il y
a cents autres personnes qui dépendent de tes en-têtes.)
-- Dans le dernier projet qu'on a fait, on s'en est servi pour
toute la génération. J'avoue que j'en étais un peu
scéptique au début, mais à la fin, j'étais ravi de ne pas
avoir à constamment répéter dans le .cc toute la partie
définition qu'il y avait dans le .hh. Je crois que cette
techinique serait difficile à gérer dans un grand projet ;
il faut une certaine dicipline dans l'édition des fichiers
générés (où il faut évidemment ajouter le code des
fonctions). Mais c'est de loin la solution que je trouve la
plus agréable pour des petits projets. Tu exprimes en UML ce
qui s'exprime le mieux en UML, et en C++ ce qui s'exprime le
mieux en UML. Prèsque, parce que la définition des détails
des fonctions pouvait être un peu pénible, avec
l'enchaînement des menus, etc. Mais ça restait dans
l'acceptable, et toujours plus facile que l'alternatif de
les écrire à la main. (Et n'oublie pas que je suis un des
virtuoses des éditeurs classiques, pour écrire des choses à
la main.)
Quant à quand il faut passer au codage, ça dépend évidemment un
peu du projet. Dans des grands projets, c'est assez tardifs,
parce que revenir en arrière sur la conception même d'une classe
coûte cher, s'il implique des modifications chez tous les autres
programmeurs. Mais même dans les cas les plus simples, il vaut
bien mieux avoir précisé exactement ce que doit faire la classe,
et les pré- et post-conditions de ses fonctions, avant de
commencer le codage.
-- Comme outil de génération des en-têtes. Dans ce cas-là, on
avait même déclarer nos en-têtes comme des fichiers dérivés
(au sens de ClearCase), et non comme des sources. La source
était les diagrammes Rose. C'était un gros projet, et les
développeurs n'avait pas le droit de toucher aux en-têtes
sans autorisation particulière. (C'est un peu normal, s'il y
a cents autres personnes qui dépendent de tes en-têtes.)
-- Dans le dernier projet qu'on a fait, on s'en est servi pour
toute la génération. J'avoue que j'en étais un peu
scéptique au début, mais à la fin, j'étais ravi de ne pas
avoir à constamment répéter dans le .cc toute la partie
définition qu'il y avait dans le .hh. Je crois que cette
techinique serait difficile à gérer dans un grand projet ;
il faut une certaine dicipline dans l'édition des fichiers
générés (où il faut évidemment ajouter le code des
fonctions). Mais c'est de loin la solution que je trouve la
plus agréable pour des petits projets. Tu exprimes en UML ce
qui s'exprime le mieux en UML, et en C++ ce qui s'exprime le
mieux en UML. Prèsque, parce que la définition des détails
des fonctions pouvait être un peu pénible, avec
l'enchaînement des menus, etc. Mais ça restait dans
l'acceptable, et toujours plus facile que l'alternatif de
les écrire à la main. (Et n'oublie pas que je suis un des
virtuoses des éditeurs classiques, pour écrire des choses à
la main.)
Quant à quand il faut passer au codage, ça dépend évidemment un
peu du projet. Dans des grands projets, c'est assez tardifs,
parce que revenir en arrière sur la conception même d'une classe
coûte cher, s'il implique des modifications chez tous les autres
programmeurs. Mais même dans les cas les plus simples, il vaut
bien mieux avoir précisé exactement ce que doit faire la classe,
et les pré- et post-conditions de ses fonctions, avant de
commencer le codage.
-- Comme outil de génération des en-têtes. Dans ce cas-là, on
avait même déclarer nos en-têtes comme des fichiers dérivés
(au sens de ClearCase), et non comme des sources. La source
était les diagrammes Rose. C'était un gros projet, et les
développeurs n'avait pas le droit de toucher aux en-têtes
sans autorisation particulière. (C'est un peu normal, s'il y
a cents autres personnes qui dépendent de tes en-têtes.)
-- Dans le dernier projet qu'on a fait, on s'en est servi pour
toute la génération. J'avoue que j'en étais un peu
scéptique au début, mais à la fin, j'étais ravi de ne pas
avoir à constamment répéter dans le .cc toute la partie
définition qu'il y avait dans le .hh. Je crois que cette
techinique serait difficile à gérer dans un grand projet ;
il faut une certaine dicipline dans l'édition des fichiers
générés (où il faut évidemment ajouter le code des
fonctions). Mais c'est de loin la solution que je trouve la
plus agréable pour des petits projets. Tu exprimes en UML ce
qui s'exprime le mieux en UML, et en C++ ce qui s'exprime le
mieux en UML. Prèsque, parce que la définition des détails
des fonctions pouvait être un peu pénible, avec
l'enchaînement des menus, etc. Mais ça restait dans
l'acceptable, et toujours plus facile que l'alternatif de
les écrire à la main. (Et n'oublie pas que je suis un des
virtuoses des éditeurs classiques, pour écrire des choses à
la main.)
<mode 2nd degré on>
une bonne méthode :
inviter un programmeur à manger entre 12h et 14h, dans sa boite.
S'il te dit : no problem, allons au resto sympa à 30 min d'ici, on rentrera
vers 15h, alors il a le temps, c'est un mauvais programmeur puisque son chef
de projet ne lui confie rien.
Si par contre il te dit : "ok, justement j'avais 15minutes de pause
sandwitch entre 12h43 et 13h12, pendant que mon prog compile, on peut y
aller", alors c'est un bon programmeur, il est surchargé de boulot que son
chef lui donne car c'est le seul bon dans l'équipe.
Note : on peut aussi considerer que c'est l'inverse ;-)
</>
<mode 2nd degré on>
une bonne méthode :
inviter un programmeur à manger entre 12h et 14h, dans sa boite.
S'il te dit : no problem, allons au resto sympa à 30 min d'ici, on rentrera
vers 15h, alors il a le temps, c'est un mauvais programmeur puisque son chef
de projet ne lui confie rien.
Si par contre il te dit : "ok, justement j'avais 15minutes de pause
sandwitch entre 12h43 et 13h12, pendant que mon prog compile, on peut y
aller", alors c'est un bon programmeur, il est surchargé de boulot que son
chef lui donne car c'est le seul bon dans l'équipe.
Note : on peut aussi considerer que c'est l'inverse ;-)
</>
<mode 2nd degré on>
une bonne méthode :
inviter un programmeur à manger entre 12h et 14h, dans sa boite.
S'il te dit : no problem, allons au resto sympa à 30 min d'ici, on rentrera
vers 15h, alors il a le temps, c'est un mauvais programmeur puisque son chef
de projet ne lui confie rien.
Si par contre il te dit : "ok, justement j'avais 15minutes de pause
sandwitch entre 12h43 et 13h12, pendant que mon prog compile, on peut y
aller", alors c'est un bon programmeur, il est surchargé de boulot que son
chef lui donne car c'est le seul bon dans l'équipe.
Note : on peut aussi considerer que c'est l'inverse ;-)
</>
Si par contre il te dit : "ok, justement j'avais 15minutes de pause
sandwitch entre 12h43 et 13h12, [...]
Je me mefierais beaucoup du deuxieme programmeur, deja il ne sait pas compter,
c'est mauvais signe...
Si par contre il te dit : "ok, justement j'avais 15minutes de pause
sandwitch entre 12h43 et 13h12, [...]
Je me mefierais beaucoup du deuxieme programmeur, deja il ne sait pas compter,
c'est mauvais signe...
Si par contre il te dit : "ok, justement j'avais 15minutes de pause
sandwitch entre 12h43 et 13h12, [...]
Je me mefierais beaucoup du deuxieme programmeur, deja il ne sait pas compter,
c'est mauvais signe...
On Mon, 31 Jan 2005 15:30:46 +0000 (UTC), (Marc
Espie):Si par contre il te dit : "ok, justement j'avais 15minutes de pause
sandwitch entre 12h43 et 13h12, [...]
Je me mefierais beaucoup du deuxieme programmeur, deja il ne sait
pas compter,
c'est mauvais signe...
Meuh non. Il parle juste d'un intervalle de longueur 15 minutes,
sous-ensemble de l'intervalle [12h43 ; 13h12].
Par exemple, [12h46 ; 13h01].
Si les 2 bornes de l'intervalle sont incluses, cela fait 16 minutes ;-)
On Mon, 31 Jan 2005 15:30:46 +0000 (UTC), espie@tetto.home (Marc
Espie):
Si par contre il te dit : "ok, justement j'avais 15minutes de pause
sandwitch entre 12h43 et 13h12, [...]
Je me mefierais beaucoup du deuxieme programmeur, deja il ne sait
pas compter,
c'est mauvais signe...
Meuh non. Il parle juste d'un intervalle de longueur 15 minutes,
sous-ensemble de l'intervalle [12h43 ; 13h12].
Par exemple, [12h46 ; 13h01].
Si les 2 bornes de l'intervalle sont incluses, cela fait 16 minutes ;-)
On Mon, 31 Jan 2005 15:30:46 +0000 (UTC), (Marc
Espie):Si par contre il te dit : "ok, justement j'avais 15minutes de pause
sandwitch entre 12h43 et 13h12, [...]
Je me mefierais beaucoup du deuxieme programmeur, deja il ne sait
pas compter,
c'est mauvais signe...
Meuh non. Il parle juste d'un intervalle de longueur 15 minutes,
sous-ensemble de l'intervalle [12h43 ; 13h12].
Par exemple, [12h46 ; 13h01].
Si les 2 bornes de l'intervalle sont incluses, cela fait 16 minutes ;-)