IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Algorithme pour établir un ordre de passage


Sujet :

Algorithmes et structures de données

  1. #41
    Membre éclairé
    Avatar de APL-AML
    Homme Profil pro
    Développeur Gestion (Retraité)
    Inscrit en
    Juin 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur Gestion (Retraité)
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2020
    Messages : 50
    Points : 878
    Points
    878
    Billets dans le blog
    85
    Par défaut La logique séquentielle
    Fin probable de ma réflexion sur le sujet

    Ci-joint en images, l’ordre de passage des 2 épreuves d’un concours équestre organisé par la FFE.

    Ces captures d’écran montrent le 5ème et dernier sous-état de l’algorithme séquentiel ayant permis d’apporter une réponse à la problématique de maxime_nrgt.

    Ordre de passage de la 1ère épreuve

    Nom : Concours équestre_FFE (1ère épreuve).jpg
Affichages : 733
Taille : 197,5 Ko

    Ordre de passage de la 2ème épreuve

    Nom : Concours équestre_FFE (2ème épreuve).jpg
Affichages : 710
Taille : 252,5 Ko

    Citation Envoyé par APL-AML Voir le message
    Ci-joint le fichier Excel issu du fichier original "test_ffe.xlsx" : Pièce jointe 611819
    Vous pouvez télécharger le fichier Excel ci-dessus pour reconstituer les 4 premiers sous-états en changeant l’ordre de tri.

    Rappel

    1. 1ère étape : renseigner N_CAVALIER
      Tri : NOM_CAVALIER, NOM_CHEVAL

    2. 2ème étape : Renseigner N_CHEVAL
      Tri : NOM_CHEVAL, N_CAVALIER

    3. 3ème étape : Renseigner N_ORDRE
      Tri : NOM_CHEVAL, NOM_CAVALIER (l’ordre de tri n’a en fait pas d’importance)

    4. 4ème étape : Renseigner NB_TOURS
      Tri : NOM_CHEVAL, NOM_CAVALIER

    5. 5ème étape : Numéroter N°_PASSAGE
      Tri : NB_TOURS (ordre décroissant), N_ORDRE (ordre croissant), NOM_CAVALIER ou NOM_CHEVAL (ordre croissant)



    La logique séquentielle

    L’ordre de passage d’une épreuve de concours équestre a nécessité une démarche algorithmique dite "séquentielle" ou par "étapes successives". Je ne crois pas qu’un ordre de passage puisse s’obtenir par un algorithme d’équivalence, programmé classiquement. En se référant à quelles données, d’ailleurs ?

    Ce que j’appelle "Algorithmique ou logique séquentielle" correspond à la conception d’une succession d’étapes appelées "sous-états" dont chacun est en interaction avec les sous-états qui le précèdent. L’algorithmique séquentielle conçoit, construit cette interdépendance entre les sous-états.


    La logique séquentielle est un type de logique dont les résultats ne dépendent pas seulement des données actuellement traitées mais aussi des données traitées précédemment. Elle s'oppose à la logique combinatoire, dont les résultats sont fonction et seulement fonction des données actuellement traitées.

    Logique combinatoire : Un système logique est dit combinatoire si à tout instant, il est possible d’écrire l’équation logique de chaque sortie, en fonction seulement des entrées.
    Le résultat logique en sortie peut donc être représenté par une table de vérité ou un tableau de Karnaugh.

    Logique séquentielle : Un système est dit séquentiel si à une même combinaison des variables d’entrée peut correspondre plusieurs combinaisons différentes des variables de sortie. La combinaison des variables de sortie dépend des entrées mais également de l’état antérieur des variables de sortie.

    La logique séquentielle fait intervenir le temps. Autrement dit dans un système séquentiel, La valeur d'une variable logique à l'instant donné T dépend de celles qu'avaient les variables logiques aux instants précédents (instant T-1). C’est ce que l’on appelle « l’effet MEMOIRE ».

    On retrouvera les mêmes états des entrés à plusieurs étapes, alors que les sorties seront différentes. Il est donc impossible de les représenter par un tableau de Karnaugh.

    Décomposition en macros

    De façon à rendre compréhensible et lisible l’algorigramme de description d’un système, il est judicieux de décomposer le comportement en tâches élémentaires qui seront décrites par un algorigramme simple.

    L’algorigramme général fera alors appel à ces différents algorigrammes simples, appelés macros.



    PS : La logique séquentielle ne concerne en principe que les systèmes, mais le concept ne peut-il pas s’appliquer également au traitement des BDD ? J'ose le parallèle…

    Tout ce discours n’engage que moi. Mais comment expliquer ma démarche ? De quel algorithme s’agit-il ? Pour répondre à ce questionnement, je me suis inspiré des cours sur la Logique séquentielle trouvés sur internet. Notamment :



    Algorigramme général

    L’algorigramme général fait appel aux différents algorigrammes simples, appelés macros, déjà proposés dans les messages précédents. C’est la première fois que je fais ce genre d’algorigramme. La difficulté consiste à distinguer chaque macro, étape ou sous-état.

    Avec un SGBD, les deux premières étapes aurait fait l’objet :

    • d’un programme pour créer un fichier out,
    • du chargement de ce fichier out dans une table temporaire,
    • puis de la valorisation d’un attribut de la table via une requête SQL.

    Tout ça pour un simple tableau Excel avec une seule table de deux colonnes !

    Avec Excel, les formules de calcul dans les cellules des colonnes N_ORDRE et NB_TOURS font le travail. Il n’y a à saisir qu’uniquement les colonnes N_CAVALIER et N_CHEVAL, puis à afficher les N°_PASSAGES, ce qui se fait facilement.

                                       ┌─────────────────────────────┐
                                D-PROG │   NOM_CAVALIER (˄)          │
                                       │   NOM_CHEVAL   (˄)          │
                                       ├─────────────────────────────┤
                          D-ETAPE N° 1 │   v_cavalier = ""           │
                                       └──────────────┬──────────────┘
                                                      │◄───────────────────────────────────────────────┐
                                       ┌──────────────┴──────────────┐                                 │
                        D_NOM_CAVALIER │  v_cavalier :: NOM_CAVALIER │                                 │
                          <>           └──────────────┬──────────────┘            =                    │
                        ┌─────────────────────────────●─────────────────────────────┐                  │
         ┌──────────────┴──────────────┐                             ┌──────────────┴──────────────┐   │
         │   N_CAVALIER = 1            │                             │ N_CAVALIER = N_CAVALIER + 1 │   │
         └──────────────┬──────────────┘                             └──────────────┬──────────────┘   │
                        └─────────────────────────────┬─────────────────────────────┘                  │
                                       ┌──────────────┴──────────────┐                                 │
                        F_NOM_CAVALIER │     PRINT N_CAVALIER        │                                 │
                                       │  v_cavalier = NOM_CAVALIER  │                                 │
                                       └──────────────┬──────────────┘                                 │
                                                      ●────────────────────────────────────────────────┘
                                       ┌──────────────┴──────────────┐
                          F-ETAPE N° 1 │              ϕ              │
                                       ├─────────────────────────────┤
                          D-ETAPE N° 2 │   NOM_CHEVAL   (˄)          │
                                       │   NOM_CAVALIER (˄)          │
                                       ├─────────────────────────────┤
                                       │     v_cheval = ""           │
                                       └──────────────┬──────────────┘
                                                      │◄───────────────────────────────────────────────┐
                                       ┌──────────────┴──────────────┐                                 │
                          D_NOM_CHEVAL │    v_cheval :: NOM_CHEVAL   │                                 │
                          <>           └──────────────┬──────────────┘            =                    │
                        ┌─────────────────────────────●─────────────────────────────┐                  │
         ┌──────────────┴──────────────┐                             ┌──────────────┴──────────────┐   │
         │     N_CHEVAL = 1            │                             │   N_CHEVAL = N_CHEVAL + 1   │   │
         └──────────────┬──────────────┘                             └──────────────┬──────────────┘   │
                        └─────────────────────────────┬─────────────────────────────┘                  │
                                       ┌──────────────┴──────────────┐                                 │
                          F_NOM_CHEVAL │       PRINT N_CHEVAL        │                                 │
                                       │     v_cheval = NOM_CHEVAL   │                                 │
                                       └──────────────┬──────────────┘                                 │
                                                      ●────────────────────────────────────────────────┘
                                       ┌──────────────┴──────────────┐
                          F-ETAPE N° 2 │              ϕ              │
                                       ├─────────────────────────────┤
                          D-ETAPE N° 3 │   NOM_CHEVAL   (˄)          │
                                       │   NOM_CAVALIER (˄)          │
                                       ├─────────────────────────────┤
                          D_NOM_CHEVAL │              ϕ              │
                                       └──────────────┬──────────────┘
                                                      │◄─────────────────┐
                                       ┌──────────────┴──────────────┐   │
                          T_NOM_CHEVAL │N_ORDRE = (N_CAVALIER*10) + 1│   │
                                       │       PRINT N_ORDRE         │   │
                                       └──────────────┬──────────────┘   │
                                                      ●──────────────────┘
                                       ┌──────────────┴──────────────┐
                          F-NOM_CHEVAL │              ϕ              │
                          F-ETAPE N° 3 │                             │
                                       ├─────────────────────────────┤
                          D-ETAPE N° 4 │   NOM_CHEVAL   (˄)          │
                                       │   NOM_CAVALIER (˄)          │
                                       ├─────────────────────────────┤
                        D_NOM_CAVALIER │              ϕ              │
                                       └──────────────┬──────────────┘
                                                      │◄─────────────────┐
                                       ┌──────────────┴──────────────┐   │
                        T_NOM_CAVALIER │NB_TOURS=N_CAVALIER+N_CHEVAL │   │
                                       │       PRINT N_ORDRE         │   │
                                       └──────────────┬──────────────┘   │
                                                      ●──────────────────┘
                                       ┌──────────────┴──────────────┐
                        F-NOM_CAVALIER │              ϕ              │
                          F-ETAPE N° 4 │                             │
                                       ├─────────────────────────────┤
                          D_ETAPE N° 5 │   NB_TOURS     (˅)          │
                                       │   N_ORDRE      (˄)          │
                                       │   NOM_CAVALIER (˄)          │
                                       ├─────────────────────────────┤
                          D_N°_PASSAGE │       N°_PASSAGE = 0        │
                                       └──────────────┬──────────────┘
                                                      │◄─────────────────┐
                                       ┌──────────────┴──────────────┐   │
                          T_N°_PASSAGE │ N°_PASSAGE = N°_PASSAGE + 1 │   │
                                       │      PRINT N°_PASSAGE       │   │
                                       └──────────────┬──────────────┘   │
                                                      ●──────────────────┘
                                       ┌──────────────┴──────────────┐
                          F_N°_PASSAGE │                             │
                          F_ETAPE N° 5 │              ϕ              │
                                F-PROG │                             │
                                       └─────────────────────────────┘
    


    Vous pouvez retrouvez cette discussion synthétisée sous forme d’un billet de blog :


  2. #42
    Membre éclairé
    Avatar de APL-AML
    Homme Profil pro
    Développeur Gestion (Retraité)
    Inscrit en
    Juin 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur Gestion (Retraité)
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2020
    Messages : 50
    Points : 878
    Points
    878
    Billets dans le blog
    85
    Par défaut Penser out of the box
    Nom : Penser out of the box.jpg
Affichages : 626
Taille : 20,4 Ko

    Penser out of the box


    Résumé des épisodes précédents

    Plus de 40 messages en moins d’un mois, 19 messages le même jour, près de 3.000 visites en 3 mois.

    Cette discussion est intéressante à plusieurs titres, pour l’originalité de sa problématique, pour la simplicité de son énoncé, pour son algorithme inattendu mais également pour les approches de la problématique très différentes d’un développeur à l’autre.

    Ces démarches différentes interrogent et peuvent déconcerter l’utilisateur. Comment expliquer autant de divergence de la part de cinq professionnels du développement ?

    maxime_nrgt joue le rôle du gestionnaire et les 5 autres intervenants, y compris moi-même - APL-AML - celui des développeurs.

    Chaque intervenant-développeur interprète la problématique avec sa grille de lecture (sa boîte) et propose sa solution :

    • maxime_nrgt énonce sa problématique : obtenir un algorithme simple, en français, permettant à partir d’une feuille Excel d’inscriptions à une épreuve de concours équestre, d'établir l’ordre de passage des couples cavaliers-chevaux, en tenant compte des règles d’organisation.

      Au fil de la discussion, il est amené à préciser ces règles et s’insurge d’un certain manque d’empathie manifesté à son égard.

    • tbc92 évalue la complexité de la problématique, extrapole, pense qu’il n’y a pas assez de contraintes et finit par s’énerver en qualifiant l’énoncé d’énigme.

    • Mat.M estime que l’on perd son temps à faire des tableaux "à la main", totalement inutiles. Il conseille et propose de faire du code JavaScript ou Java... D’après lui :

      « Un simple compteur déclaré en variable globale peut suffire. Il faut déclarer une classe globale dans un module de classe et avec une variable de type integer pour mémoriser le type de cheval ou même mieux employer des "string" qui mémorisent le nom du cheval. Il suffit de faire un tableau de strings ou mieux une collection de strings. Après on peut adresser chaque cellule du feuillet actif et lire la valeur. »

    • anapurna s’assure qu’il comprend bien en réinterprétant faussement l’énoncé de la problématique. Pour lui tout est toujours simple et se résout facilement avec une fonction modulo, à savoir ici : ($A3+B$2)-(QUOTIENT(($A3+B$2);$B$1+1)*$B$1).

    • WhiteCrow se pose plein de questions hors sujet, transforme les cavaliers en jockeys, pense que la solution sera nécessairement plus complexe qu’une simple feuille de calcul et suggère de solliciter un ami développeur ou un site internet proposant de petits développements à prix raisonnable.

      « Mais ce qui est encore plus important est de bien définir les données que l'on va être amené à manipuler. Par exemple, je suppose que tu as plusieurs créneaux qui vont te permettre de faire des passages (=jockey+cheval). Il y aura des contraintes à respecter, des associations à gérer (qui choisit le cheval lors d'un passage ? le jockey ? quelqu'un d'autre ?). Un petit développement pourra sans doute couvrir une majorité des besoins (s'ils sont clairement exprimés). Enfin tout dépend de ce que tu veux ou si ton organisation veut quelque chose. »

    • APL-AML ne dit rien. Il observe, réfléchit "out of the box" puis sort trois colombes et deux lapins de son chapeau : « Pas d’algorithme, juste 3 colonnes et deux tris ».

      Sa solution n’est pas parfaite mais il l’adapte subtilement au jeu d’essai qui progressivement se complexifie. Au final, ce sera cinq colonnes (N_CAVALIER, N_CHEVAL, N_ORDRE, NB_TOURS et N°_PASSAGE) crées dans une logique séquentielle (par étapes successives), cinq tris et des algorithmes simplissimes dont les deux plus complexes sont :

      • une concaténation : N_ORDRE = (N_CAVALIER * 10) + N_CHEVAL
      • et une addition : NB_TOURS = N_CAVALIER + N_CHEVAL



    Analyse

    À partir d’une Base De Données réduite à sa plus simple expression, à savoir une seule table dotée de deux attributs, on aurait pu penser que la réflexion de cinq développeurs aguerris convergerait vers une même solution. Mais que nenni !

    Chaque intervenant-développeur a réagi et s’est exprimé en réfléchissant dans sa boîte… sauf APL-AML, qui a abordé cette problématique l’esprit libre, sans contrainte, avec détermination, prêt à s’adapter à la problématique en faisant confiance à son intuition, à son instinct de survie.

    En considérant la problématique sans à priori, c’est la problématique qui guide la réflexion et suggère progressivement la solution. En pensant dans sa boîte, le développeur veut tout maitriser en cherchant à faire entrer la problématique dans son système de pensée.

    ■ Qu’est-ce que la boîte ?

    La « boîte » (The « box ») :

    • C’est une métaphore qui symbolise les limitations imposées par notre pensée rationnelle, réduisant ainsi notre capacité à penser de manière efficace et critique sur le monde qui nous entoure. Ces limites sont le résultat de croyances profondes qui font obstacle à la créativité, à la réalisation de soi et plus généralement, à la compréhension de la vie.

    • C’est en quelque sorte toutes ces idées préconçues et étriquées, ces préjugés, ces raccourcis cognitifs qui confinent notre réflexion à des schémas connus et rassurants.

    • C’est tout ce que l’on est censé penser de par notre culture, notre éducation, nos expériences… et qui finit par limiter notre pensée, si l’on ne parvient pas à dépasser ces barrières psychologiques.

    ■ Thinking outside the box

    « Thinking outside the box » est une expression en anglais américain qui signifie : penser différemment, de manière originale, inédite, créative, en dehors des cadres ou des conventions établies, de façon non conventionnelle ou selon une perspective nouvelle.

    Penser « en dehors de la boîte »

    • Cela revient à percevoir les choses, les concepts, les idées d’une manière plus originale et créative que ce qui est communément admis. C’est réfléchir autrement, avec imagination et ingéniosité, de façon à trouver des solutions créatives à des problèmes.

    • C’est penser hors des sentiers battus, se libérer tant que possible de ses pensées « formatées », faire preuve d’ouverture d’esprit et de liberté pour s’ouvrir grand la voie de l’innovation et de la créativité !

    • C’est être curieux, avoir l’esprit pétillant, oser changer le Monde. C’est être en capacité d’établir des relations inattendues, de créer des ponts entre les idées, de nous ouvrir l’esprit et de nous rendre plus cultivé.

    • C’est tout simplement garder son esprit d’Enfant créatif et critique. Si les enfants sont si créatifs et qu’ils raisonnent d’une manière différente des adultes, c’est aussi parce qu’ils ne se limitent pas dans leurs questionnements. On pourrait dire que leur boîte à eux n’est pas encore façonnée par les expériences de la vie, ce qui leur autorise beaucoup plus de liberté de penser.

    • Cependant, ce type de pensée ne se limite pas à la seule résolution de problèmes. C’est un art de vivre à part entière.

      C’est adopter la Poulpe attitude, la Positive attitude, l’Impulse attitude, la Running attitude.

      C’est avoir des opinions affirmées, refuser d’être un mouton de l’opinion bien-pensante.

      C’est être impertinent, avoir sans doute un peu l’esprit rebelle, la pensée vagabonde et qui ne se soucie pas du qu’en dira-t-on.



    Source :

    Out the Box (Site de Jérémy Ouassana)

    Billet :

    Penser out of the box

    Ce billet est une compilation des articles publiés par Jérémy Ouassana.

    Certains items du sommaire renvoient à ces articles.

    SOMMAIRE DU BILLET

    1. Qu’est-ce que la boîte ?
    2. Thinking outside the box
    3. Qui édicte les normes ? Qui construit les conventions ? Qui établit les perspectives ?
    4. Pourquoi devons-nous penser « out of the box » !
    5. Out of the box : changer le monde en changeant sa façon de penser
    6. Briser les règles et penser par soi-même
    7. Comment penser « out of the box » ?
    8. L’art de penser différemment, par Steve Jobs
    9. Principes de la pensée « out of the box »
    10. Citations sur la pensée « out of the box »


    Mais au fait ! Penser différemment… D’accord, mais différemment de quoi ? Qu’est-ce qu’une pensée conventionnelle, et comment sait-on si l’on pense « in » ou « out of the box » ?



  3. #43
    Membre expérimenté
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juillet 2020
    Messages : 352
    Points : 1 380
    Points
    1 380
    Par défaut
    Citation Envoyé par APL-AML Voir le message
    [...]
    [LIST][*]WhiteCrow se pose plein de questions hors sujet, transforme les cavaliers en jockeys, pense que la solution sera nécessairement plus complexe qu’une simple feuille de calcul et suggère de solliciter un ami développeur ou un site internet proposant de petits développements à prix raisonnable.
    [...]
    Puis-je savoir quelles sont ces nombreuses questions qui te semblent hors-sujet ?

  4. #44
    Membre confirmé Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 323
    Points : 484
    Points
    484
    Par défaut
    Bonjour,
    Faisant partie des 3000 personnes qui ont suivi avec intérêt cette quête du Graal, quelques remarques suite au résumé fort interagissant de APL_AM.

    Attention à l'auto-satisfaction
    Il observe, réfléchit "out of the box" puis sort trois colombes et deux lapins de son chapeau
    sauf APL-AML, qui a abordé cette problématique l’esprit libre, sans contrainte, avec détermination, prêt à s’adapter à la problématique
    mais il l’adapte subtilement
    Même s'il faut reconnaitre que l'auteur s'est beaucoup investi dans la mise en lumière du sujet...

    Le Cahier des charges initial de Maxime_Ngr était d'utiliser Excel. La complexité de la démarche n'est-elle pas, en grande partie, dû à ce point particulier.
    Penser "Hors de la boite" est toujours passionnant pour trouver d'autres voies, mais la question de l'outil de base est sans doute à l'origine de l'éparpillement des points de vue.

    Autrement dit : Faut-il se triturer les méninges pour utiliser un outil, certes répandu, mais peu adapté à un cas aussi complexe, ou choisir l'outil adapté ?
    Il doit bien y avoir une solution pour monter un mur avec un set de plage et compenser la rapidité de prise du ciment, mais n'oublions pas la truelle et la brouette qui ont été inventées à cet effet.

    Tout ceci n'enlève pas l'intérêt du sujet !
    Bien l'bonjour à tous...

  5. #45
    Membre éclairé
    Avatar de APL-AML
    Homme Profil pro
    Développeur Gestion (Retraité)
    Inscrit en
    Juin 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur Gestion (Retraité)
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2020
    Messages : 50
    Points : 878
    Points
    878
    Billets dans le blog
    85
    Par défaut Penser out of the box (suite)
    Pourquoi n’y-a-t-il pas qu’une réponse "idéale" à une problématique ?

    Mon dernier message titré Penser out of the box n’avait pas pour objectif de critiquer les différentes démarches mais de mettre en évidence ces différences, de les comprendre et de les expliquer. J’ai simplement trouvé sur internet une réponse qui va dans le sens de mes convictions, originale et intéressante à partager.

    Lorsque l’on résume, on ne peut pas faire dans la nuance mais on peut au contraire devoir forcer un peu le trait ou déformer certains propos au risque de froisser au passage quelques susceptibilités auxquelles j’adresse bien volontiers toutes mes excuses si c'est le cas.

    L’objectif n’était pas non plus de faire de l’autosatisfaction mais plutôt de l’autodérision et d’exploiter la discussion pour évoquer un sujet qui m’a toujours interpellé, à savoir pourquoi à partir de l’énoncé d’une problématique peut-il y avoir autant de réponses que de développeurs alors que l’on pourrait s’attendre à ce qu’il n’y ait qu’une seule réponse "idéale" ?

    Citation Envoyé par Galet Voir le message
    La question de l'outil de base est sans doute à l'origine de l'éparpillement des points de vue.

    Faut-il se triturer les méninges pour utiliser un outil, certes répandu, mais peu adapté à un cas aussi complexe ?
    Pour ma part, je n’ai pas du tout réfléchi en expert Excel que je ne suis pas mais en développeur SGBD. Comme tout le monde, j’ai moi aussi ma petite boîte mais elle n’a jamais eu de couvercle. Je n’ai jamais créé qu’une seule feuille de calcul Excel, il y a 20 ans, pour gérer les 300 adhérents d’une association. Au cours de ma recherche de solution, à aucun moment je me suis senti un expert Excel. Je ne suis expert en rien d’ailleurs sauf peut-être en logique, ce qui insupporte ma femme au quotidien. La problématique de maxime_nrgt m’a simplement captivé en défiant ma logique.

    Cela dit, j’ai déjà abordé ce sujet qui m'interroge dans une discussion :

    Citation Envoyé par Invité Voir le message
    En formation continue dans les années 80, un professionnel enseignant à l’IUT nous a concocté un DST dans lequel il posait une question intéressante. Il s’agissait à partir d’une petite description de Base de Données et d’un ensemble de besoins utilisateur de concevoir l’écran approprié.

    Sur la trentaine d’étudiants que nous étions, j’ai été le seul à proposer l’écran attendu. L’épreuve durait 2 heures et l’écran ne valait que 5 points mais j’ai flashé sur la question et j’y ai consacré 1 heure ½. La correction de l’écran a duré une heure pendant laquelle le prof a décortiqué le cheminement intellectuel ayant motivé ses choix. Du grand art ! Ayant suivi le même cheminement, j’ai eu l’impression de vivre une psychanalyse. Je ne suis pas un spécialiste du recrutement mais à mon avis ce genre d’épreuve révèlerait beaucoup de choses sur la technicité et la personnalité du développeur (ergonomie, convivialité, design).
    Conclusion : Un sujet de DST, 30 étudiants, tous des professionnels, 30 réponses différentes.

    Discussion : Doit-on soumettre les vétérans à des tests de programmation avant embauche ?

    Mes messages :

    Vertical, le sucre dans la tasse !… Sinon, c’est le bordel !

    Le titre de ce message fait référence à un sketch de Pierre Despoges, et c'est une réponse à puce_84 qui a changé son pseudo en Yepazix.

    Je vous invite à lire son message ici : #179



    Dans le même esprit, pour l’application que je développais, je m’intéressais à tous les modèles de convocations qui me tombaient sous la main, pour comprendre la démarche des développeurs qui les avaient programmées et piller une éventuelle bonne idée. On n’imagine pas la diversité des modèles de convocations que j’ai pu récupérer, ni la démarche tordue de certains développeurs. Pourtant, une convocation ne devrait avoir à renseigner que des dates et lieux.

    Ainsi par exemple, pour une formation prévue sur plusieurs lundis mais dans des lieux différents, un développeur a choisi de trier les séances en majeur non pas sur les dates mais sur les lieux. Son objectif était d’économiser l’espace sur le papier, certains lieux pouvant être les mêmes pour plusieurs séances pas forcément consécutives.

    Résultat : certaines séances n’avaient pas de stagiaires, tout bêtement parce qu’elles n’apparaissaient pas dans l’ordre chronologique.



    Post-Scriptum

    J’essaie d’être le plus constructif possible dans mes messages. La polémique ne m’intéresse pas et je ne poste que de l’utile toujours très travaillé : titre, rédaction, présentation, orthographe, grammaire, vocabulaire, pédagogie… jusqu’à la date à laquelle je poste. Si vous regardez bien, j’ai posté mon message très exactement, à la minute près, trois mois après celui du prime posteur maxime_nrgt.

    J’ai travaillé mon message pendant plusieurs semaines. Il y a un mois, j’ignorais tout de la pensée out of the box. Comme j’ignorais le concept de logique séquentielle avant d'y faire référence dans ma quête du graal.

    Mes idées peuvent contrarier certains mais l’important c’est de les exprimer, d’enrichir le discours. Chacun ensuite en fait ce qu’il veut.

    J’avais prévu une réponse à la question qui terminait mon message mais je vais m’abstenir de vous la faire partager de peur qu’elle soit mal interprétée. Tant pis pour vous.

    En espérant que le présent message vous aura été utile d’une quelconque façon.

    ... Fin plus que probable de ma réflexion sur le sujet initié par maxime_nrgt.



  6. #46
    Membre expérimenté
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juillet 2020
    Messages : 352
    Points : 1 380
    Points
    1 380
    Par défaut
    Citation Envoyé par WhiteCrow Voir le message
    Citation Envoyé par APL-AML Voir le message
    [...]
    [LIST][*]WhiteCrow se pose plein de questions hors sujet, transforme les cavaliers en jockeys, pense que la solution sera nécessairement plus complexe qu’une simple feuille de calcul et suggère de solliciter un ami développeur ou un site internet proposant de petits développements à prix raisonnable.
    [...]
    Puis-je savoir quelles sont ces nombreuses questions qui te semblent hors-sujet ?
    Donc du coup penser «out of the box» permet de dire des trucs puis de s'en laver les mains ? Pratique cette excuse pour un message «longuement réfléchi posté à la minute près» …

  7. #47
    Membre éclairé
    Avatar de APL-AML
    Homme Profil pro
    Développeur Gestion (Retraité)
    Inscrit en
    Juin 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur Gestion (Retraité)
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2020
    Messages : 50
    Points : 878
    Points
    878
    Billets dans le blog
    85
    Par défaut Penser out of the box (suite et fin)
    ■ ■ ■ SOMMAIRE ■ ■ ■

    1. Principes psychologiques de la pensée out of the box
    2. Citations sur la pensée out of the box
    3. Comment savoir si l’on pense out of the box ?
    4. Comment savoir si l’on pense in the box ?
    5. La clef de l’énigme
    Juste pour GALET, le seul qui semble s’intéresser à mes élucubrations et dont la signature convient parfaitement à cette discussion :

    "Les choses ne changent pas. Change ta façon de les voir, cela suffit." - Lao Tseu

    Citation Envoyé par APL-AML Voir le message
    Mais au fait ! Penser différemment… D’accord, mais différemment de quoi ?

    Qu’est-ce qu’une pensée conventionnelle, et comment sait-on si l’on pense « in » ou « out of the box » ?
    § 1. Principes psychologiques de la pensée out of the box

    J’ai érigé en principes psychologiques certains arguments de Jérémy Ouassana décryptant le concept de la pensée out of the box.

    • « Percevoir les choses, les concepts, les idées d’une manière plus originale et créative. »

    • « Réfléchir autrement, avec imagination et ingéniosité, de façon à trouver des solutions créatives à des problèmes. »

    • « Penser par soi-même, hors des sentiers battus, se libérer tant que possible de ses pensées "formatées", faire preuve d’ouverture d’esprit et de liberté pour s’ouvrir grand la voie de l’innovation et de la créativité ! »

    • « Être curieux, avoir l’esprit pétillant, oser changer le Monde. »

    • « Garder son esprit d’Enfant créatif et critique. »

    • « Avoir des opinions affirmées, refuser d’être un mouton de l’opinion bien-pensante. »

    • « Être impertinent, avoir sans doute un peu l’esprit rebelle, la pensée vagabonde et qui ne se soucie pas du qu’en dira-t-on. »

    • « Faire évoluer le Monde vers de nouvelles sphères. Entraîner du monde dans notre sillage, inspirer, faire croire en notre vision. »

    • « Donner à des personnes l’opportunité de faire partie de quelque chose de meilleur qu’elles-mêmes, que nous ou que l’argent. »



    § 2. Citations sur la pensée out of the box

    • « Je n’ai jamais fait l’une de mes découvertes par le processus de pensée rationnelle »
      Albert Einstein

    • « Tout le monde naît avec l’instinct de succès et la capacité d’y parvenir, mais seuls ceux qui pensent out of the box triomphent. »
      Unarine Ramaru

    • « Penser hors de la boite est un non-sens ridicule, puisque quoique vous fassiez dans une « boite » ou un environnement fermé n’est pas de la « pensée ». Si je « pense » à un problème en limitant mes réflexions à certaines dimensions, alors je ne pense pas du tout car penser implique qu’on essaye au moins de considérer tous les facteurs pertinents. Et comme il n’y a généralement pas moyen de dire quels éléments sont ou ne sont pas pertinents, les pensées restrictives ne sont pas de la « pensée » et donc « penser out of the box » est simplement un euphémisme pour « mettons nous à penser », mais la métaphore suggère un désir secret de retourner à la conformité immédiatement. »
      Martijn Benders

    • « La normalité est une route pavée : on y marche aisément mais les fleurs n’y poussent pas. »
      Vincent Van Gogh

    • « Les personnes qui se réfèrent à la pensée out of the box voient la boite… Celles qui ne savent même pas que la boîte existe sont les penseurs innovants. »
      Lisa Goldenberg

    • « Vous êtes seulement limité par les murs que vous construisez vous-même »
      Andrew Murphy

    • « Au lieu de penser en dehors de la boite, débarrassez-vous de la boîte. »
      Deepak Chopra

    • « Si vous ne sortez pas de la boîte dans laquelle vous avez été élevé, vous ne comprendrez pas à quel point le monde est grand. »
      Angelina Jolie

    • « Celui qui veut être un homme doit être un anticonformiste. »
      Ralph Waldo EMERSON

    • « Soyez audacieux, soyez brave, soyez fort, soyez heureux, soyez libre, soyez bête, soyez original, soyez vous. »
      Auteur inconnu

    • « La vie, ce n’est pas ce que l’on fait, mais avant tout pourquoi on le fait. »
      Jérémy Ouassana

    • « Les seules personnes qui laissent un héritage dans notre monde sont celles qui n’ont pas peur de penser différemment. »
      Jérémy Ouassana

    • « L’innovation est ce qui a conduit l’humanité à devenir l’une des espèces les plus intelligentes sur terre. »
      Jérémy Ouassana

    • « Penser en dehors de la boîte nous donne un avantage, celui d’être un solutionneur de problèmes. »
      Jérémy Ouassana

    • « Penser en dehors des sentiers battus commence avec nous et notre créativité. C’est ce qui nous sépare du reste de la foule. »
      Jérémy Ouassana

    • « Avoir la liberté de penser par nous-même, et l’exprimer au travers de ce que nous faisons, vaut plus que toute somme d’argent que nous pourrions espérer. »
      Jérémy Ouassana

    • « Si nous voulons briser les limitations que nous nous sommes auto-imposées (ou que l’on nous a imposées), cela ne peut partir que de notre esprit, nos idées, notre vision. »
      Jérémy Ouassana

    • « Il n’y a rien de plus amusant que de laisser notre créativité nous emmener vers de nouveaux sommets. »
      Jérémy Ouassana

    • « Ne nous laissons pas dire quoi penser, ne soyons pas un suiveur et ne soyons pas quelqu’un qui n’arrive pas à penser par lui-même. Nous avons la chance d’avoir un cerveau, faisons donc en sorte de l’utiliser. »
      Jérémy Ouassana

    • « Tous autant que nous sommes, nous pouvons apporter quelque chose d’unique dans ce monde si nous avons le courage de le concrétiser. »
      Jérémy Ouassana

    • « Dans le monde compétitif d’aujourd’hui, le fait de penser hors limites sépare le supérieur de l’inférieur. La question est : dans quel camp voulons-nous être ? »
      Jérémy Ouassana

    • « Le changement est bénéfique, ne le craignons-pas : adoptons-le ! »
      Jérémy Ouassana

    • « On ne peut prévoir l’incidence qu’auront certains événements dans le futur ; c’est après coup seulement qu’apparaissent les liens. Nous pouvons seulement espérer qu’ils joueront un rôle dans notre avenir. L’essentiel est de croire en quelque chose – notre destin, notre vie, notre karma, peu importe. »
      Steves JOBS

    • « Vous aurez toute une éternité pour penser à l’intérieur de la boîte. »
      Auteur inconnu



    § 3. Comment savoir si l’on pense out of the box ?

    Mes commentaires à chaque étape de ma réflexion faisant écho à ces principes et/ou à ces citations, témoignent d’une inspiration out of the box.

    Corréler réflexion et principes est intéressant en ce sens que ma réflexion n’a pas du tout été gouvernée par les principes puisque érigés à postériori.

    Commentaires de chaque étape
    Principes et/ou citations out of the box
    06/01/2022, 16h28 #15
    Citation Envoyé par APL-AML Voir le message
    Pour mes concours administratifs, j'avais été confronté à ce genre de situation. Je devais affecter un N° de place à tous les candidats en tenant compte des lieux d'examens et de leurs lieux d'habitation. J'avais un candidat qui habitait en face de l'un des lieux d'examen. Un ordre alphabétique l'aurait convoqué loin de chez lui, dans un département différent du sien.

    Ma démarche pour résoudre cette problématique m'a inspiré cette solution…
    « … C’est être en capacité d’établir des relations inattendues, de créer des ponts entre les idées. »



    « On ne peut prévoir l’incidence qu’auront certains événements dans le futur ; c’est après coup seulement qu’apparaissent les liens. Nous pouvons seulement espérer qu’ils joueront un rôle dans notre avenir. L’essentiel est de croire en quelque chose – notre destin, notre vie, notre karma, peu importe. » – Steves JOBS


    07/01/2022, 01h00 #22
    Citation Envoyé par APL-AML Voir le message
    ATTENTION ! Mon jeu d’essai ne prévoit pas le cas d’un cavalier montant deux ou trois chevaux différents, eux-mêmes montés par un ou deux autres cavaliers. Cela dit, mon algorithme semble fonctionner dans ce contexte. Je sophistique mon jeu d'essai, je teste et je poste le résultat. À bientôt...
    « Réfléchir autrement, avec imagination et ingéniosité, de façon à trouver des solutions créatives à des problèmes. »


    08/012022, 20h00 #26
    Citation Envoyé par APL-AML Voir le message
    Je n’ai aucun argument mathématique, ni aucune explication rationnelle susceptibles de valider mon algorithme. Il ne repose que sur ma réflexion et mon intuition. Cela dit, ça semble bien fonctionner. Il faut tester avec des cas réels.
    « … C’est penser hors des sentiers battus, se libérer tant que possible de ses pensées "formatées", faire preuve d’ouverture d’esprit et de liberté pour s’ouvrir grand la voie de l’innovation et de la créativité ! »



    « … Cela revient à percevoir les choses, les concepts, les idées d’une manière plus originale et créative que ce qui est communément admis. »


    09/01/2022, 20h00 #30
    Citation Envoyé par APL-AML Voir le message
    Ton jeu d’essai a fait évoluer ma réflexion. Après beaucoup de tâtonnement, je propose un autre algorithme qui semble résoudre le problème. Il faudra voir à l’usage. Peux-tu vérifier ce nouvel algorithme avec ton jeu d’essai, il semble que cela fonctionne.

    J’ignore pourquoi l’idée de concaténer N_CAVALIER et N_CHEVAL m’est venue à l’esprit.
    « … C’est réfléchir autrement, avec imagination et ingéniosité, de façon à trouver des solutions créatives à des problèmes. »



    « Je n’ai jamais fait l’une de mes découvertes par le processus de pensée rationnelle » –
    Albert Einstein


    10/01/2022, 18h00 #34
    Citation Envoyé par APL-AML Voir le message
    J’ai repris le jeu d’essai de maxime_nrgt avec Excel et je l’ai torturé dans tous les sens pour trouver une solution, sans parvenir à éviter deux cavaliers ou deux chevaux successifs.

    À un moment donné, je me suis dit que je n’y arriverai jamais de cette façon et que je devais être inventif pour trouver une autre façon de procéder. C’est à cet instant que j’ai réalisé que chaque couple NOM_CAVALIER/N_CAVALIER et
    NOM_CHEVAL/N_CHEVAL était unique. J’ai alors immédiatement pensé à concaténer N_CAVALIER et N_CHEVAL.

    Pourquoi ai-je ensuite trié sur N_ORDRE en majeur et sur NOM_CAVALIER en mineur ? Je n’en sais rien du tout, par instinct, sans doute parce que j’avais concaténé N_CAVALIER devant N_CHEVAL.
    « … C’est réfléchir autrement, avec imagination et ingéniosité, de façon à trouver des solutions créatives à des problèmes. »



    « Je n’ai jamais fait l’une de mes découvertes par le processus de pensée rationnelle » –
    Albert Einstein


    « La normalité est une route pavée : on y marche aisément mais les fleurs n’y poussent pas. » – Vincent Van Gogh


    11/01/2022, 10h25 #36
    Citation Envoyé par APL-AML Voir le message
    Je n’interviens sur DVP qu’en sollicitant ma mémoire, mon expérience et ma logique, histoire de retarder mon Alzheimer.
    « … C’est réfléchir autrement, avec imagination et ingéniosité, de façon à trouver des solutions créatives à des problèmes. »


    11/01/2022, 14h30 #37
    Citation Envoyé par APL-AML Voir le message
    Je n’avais aucune idée au départ de cette discussion, de la façon dont j’allais m’y prendre pour trouver cet algorithme. Je l’ai découvert au fur et à mesure et je ne l’explique même pas, du moins à priori, peut-être à postériori… et encore. Si vous voulez en savoir davantage sur ma façon de développer, je vous suggère de lire mon blog, notamment mes billets qui résument certains livres en une dizaine de pages Word chacun (Voir ma bibliographie) ; ils sont faciles à lire. Ça vous changera de vos modèles conceptuels et de vos langages.

    Mon blog : APL-AML
    « … C’est un art de vivre à part entière. C’est avoir des opinions affirmées, refuser d’être un mouton de l’opinion bien-pensante. C’est être impertinent, avoir sans doute un peu l’esprit rebelle, la pensée vagabonde et qui ne se soucie pas du qu’en dira-t-on. »



    « Faire évoluer le Monde vers de nouvelles sphères. Entraîner du monde dans notre sillage, inspirer, faire croire en notre vision. »



    « Ne nous laissons pas dire quoi penser, ne soyons pas un suiveur et ne soyons pas quelqu’un qui n’arrive pas à penser par lui-même. Nous avons la chance d’avoir un cerveau, faisons donc en sorte de l’utiliser. » – Jérémy Ouassana


    11/01/2022, 17h00 #39
    Citation Envoyé par APL-AML Voir le message
    Règles de déroulement d’une épreuve équestre
    12/01/2022, 00h00 #40
    Citation Envoyé par APL-AML Voir le message
    Il faut comprendre quels critères de tri permettent de fiabiliser le résultat, et pourquoi.



    Ajout d’une colonne NB_TOURS à trier en majeur du plus grand au plus petit.

    Ce critère de priorité n’a pas été évoqué par maxime_nrgt dans ses règles de déroulement d’une épreuve mais me parait pertinent dans l’établissement de l’ordre de passage.

    Un même "NOM_CAVALIER - N_ORDRE" ne peut appartenir qu'à un seul NB_TOURS.
    « … C’est être curieux, avoir l’esprit pétillant, oser changer le Monde. »


    18/01/2022, 20h50 #41
    Citation Envoyé par APL-AML Voir le message
    La logique séquentielle

    Ce que j’appelle "Algorithmique ou logique séquentielle" correspond à la conception d’une succession d’étapes appelées "sous-états" dont chacun est en interaction avec les sous-états qui le précèdent. L’algorithmique séquentielle conçoit, construit cette interdépendance entre les sous-états.
    « … Cela revient à percevoir les choses, les idées d’une manière plus originale et créative que ce qui est communément admis. »


    05/04/2022, 21h09 #42
    Citation Envoyé par APL-AML Voir le message
    En considérant la problématique sans à priori, c’est la problématique qui guide la réflexion et suggère progressivement la solution. En pensant dans sa boîte, le développeur veut tout maitriser en cherchant à faire entrer la problématique dans son système de pensée.
    « Percevoir les choses, les concepts, les idées d’une manière plus originale et créative. »



    « Réfléchir autrement, avec imagination et ingéniosité, de façon à trouver des solutions créatives à des problèmes. »




    § 4. Comment savoir si l’on pense in the box ?

    Il y a deux façons de le savoir :

    1. Déterminer quels principes gouvernent la pensée conventionnelle et corréler son discours à ces principes.
    2. Ne pas pouvoir corréler son discours aux principes de la pensée out of the box.

    Alors, qui pense in the box ?

    Et bien, on peut dire tous les experts. Autrement dit pratiquement tous les membres DVP, qu’ils soient experts confirmés ou experts en devenir. Dans ce contexte, c’est moi le vilain petit canard mais j’assume sans complexe ce statut. Comme dit Jérémy Ouassana : « Il faut de tout pour faire un monde ».

    Dans mon précédent message, je disais que je n’étais expert en rien. Quelque chose dans ma réflexion m’interdit de devenir expert dans quelque domaine que ce soit. J’aurais trop la sensation de devenir prisonnier de mon expertise, de perdre ma liberté de penser, de devenir un automate. Dans l’exercice de mon métier d’informaticien, je n’étais pas développeur mais traducteur. Je traduisais le langage métier de l’utilisateur dans mon langage d’informaticien. Mon expertise se limitait à ce dont j’avais besoin de savoir. J’ai pu être expert sans le vouloir.

    Mais il existe bien des experts qui pensent out of the box ?

    Oui, les génies :

    « Je n’ai jamais fait l’une de mes découvertes par le processus de pensée rationnelle. » – Albert Einstein



    § 5. La clef de l'énigme

    Citation Envoyé par Galet Voir le message
    La question de l'outil de base est sans doute à l'origine de l'éparpillement des points de vue.

    Faut-il se triturer les méninges pour utiliser un outil, certes répandu, mais peu adapté à un cas aussi complexe ?
    À mon avis, l’origine de l’éparpillement des points de vue tient peut-être au fait que la clef de l’énigme n’ouvre aucune boîte. L’intuition, la créativité, la logique, la liberté, l’empathie ne se mettent pas en boîte. Pas de boîte, pas besoin de clef.

    La problématique de maxime_nrgt ne propose qu’une seule table, pas la moindre petite relation entre deux entités. Il est donc impossible de réfléchir « Modèle Conceptuel des Données » ainsi qu’on nous l’enseigne. Par ailleurs, cette seule table est dépourvue d’identifiant, un non-sens pour les informaticiens que nous sommes ! La problématique se situe hors cadre habituel et déroute la réflexion classique.

    Mais cette explication met en cause la problématique, pas les développeurs. Mon analyse avait pour objectif de révéler la perception de la problématique par différents informaticiens à travers le prisme de leur technicité et leur lecture divergente de l’énoncé.

    Il ne s’agit en aucune façon d’une critique de ma part. C’est un simple constat. Chacun a joué le rôle qu’il devait jouer. C’est ainsi, c’était déjà ainsi il y a un demi-siècle quand j’ai commencé à développer. Et c’est ce qui déterminé mon parcours professionnel.

    « L’école nous rabâche : "Répétez votre leçon", "Mémorisez votre récitation", "Faites comme les autres". L’école n’apprend pas à s’écouter soi-même, à écouter son intuition, à utiliser sa liberté ; elle condamne de fait à obéir aux autres, que ce soient ses parents, ses professeurs ou ses employeurs. » – Christophe Haagh

    Yepazix disait :

    « Quand mon entreprise sera assez grande et que je passerai une annonce pour engager un informaticien, elle ressemblera à ceci :

    "Cherche informaticien avec un minimum de connaissances techniques et prêt à toutes les sacrifier sur l'autel de sa créativité."

    Ceci n'est que l'avis d'un pauvre philosophe perdu... »

    Sur ces belles paroles, je vous abandonne pour un moment, je pourrais comme certains devenir addict aux discussions.

    Vous pouvez retrouver mes idées subversives en visitant mon blog APL-AML et le développement épuré de cette problématique sous forme d’un billet Ordre de passage d'une épreuve de concours équestre.



  8. #48
    Membre confirmé Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 323
    Points : 484
    Points
    484
    Par défaut
    Bonjour à tous,
    Juste pour GALET, le seul qui semble s’intéresser à mes élucubrations et dont la signature convient parfaitement à cette discussion :
    "Les choses ne changent pas. Change ta façon de les voir, cela suffit." - Lao Tseu
    C'est trop d'honneur... Il me semblait important de souligner l'engagement et la pugnacité des interventions d'APL-AML.

    Il me semble qu'il ressort toujours quelque chose de positif dans le débat (quand il est ouvert et non-agressif bien entendu), même si l'approche philosophique n'est peut-être pas la meilleure pour répondre à la problématique de maxime_nrgt.
    La sérendipité a fait avancer le monde à bien des occasions...

    Ma citation préférée
    « Au lieu de penser en dehors de la boite, débarrassez-vous de la boîte. »
    Deepak Chopra
    Une autre, beaucoup moins ancienne et encore moins instruite, me vient de mon moniteur lorsque j'ai passé, il y a bien longtemps, mon permis moto :
    " Fils (Il m'appréciait beaucoup), tu vas là où tu regardes. Si tu regardes trop le fossé tu auras bien du mal à prendre le virage !"

    Tout cela pour dire que de sortir de la boite ne doit pas être un but...mais peut devenir un outil.

    Pour en revenir à maxime_nrgt, tout dépend s'il se pose cette problématique parce qu'il a besoin de la réponse ou s'il se demande seulement si une telle opération est possible. Dans le premier cas, je prends la truelle pour construire mon mur, même si c'est un peu traditionnel, dans le second j'avoue que le set de plage peut être amusant

    Merci APL-AML pour ce moment de réflexion (assez rafraichissant j'avoue). Je me retire de cette discussion pour ne pas phagocyter les attentes de l'auteur.
    Bien l'bonjour chez vous.

  9. #49
    Membre expérimenté
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juillet 2020
    Messages : 352
    Points : 1 380
    Points
    1 380
    Par défaut
    ok … je que je retiens donc de cette «discussion» est que pour ne pas avoir à argumenter des assertions hasardeuses il suffit de faire des pavés de citations ; cela évite également de se remettre en question apparemment.

  10. #50
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 396
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 396
    Points : 20 507
    Points
    20 507
    Par défaut
    Citation Envoyé par WhiteCrow Voir le message
    Pratique cette excuse pour un message «longuement réfléchi posté à la minute près» …
    juste une petite remarque c'est qu'en entreprise où vous êtes payé à la journée selon un taux journalier moyen comme consultant externe, je suis pas certain que vous ayez le temps de faire des messages "longuement réfléchis".
    Le risque c'est que vos managers vous montrent rapidement la porte de sortie même en dissertant sur le concept de Out of the box
    mais bon après tout c'est vous qui voyez y'en a qui ont essayé , désolé pour le HS

  11. #51
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 444
    Points : 5 864
    Points
    5 864
    Par défaut
    salut

    j'adore l'argumentation qui ne s'arrête qu'a ma première intervention
    anapurna s’assure qu’il comprend bien en réinterprétant faussement l’énoncé de la problématique. Pour lui tout est toujours simple et se résout facilement avec une fonction modulo, à savoir ici : ($A3+B$2)-(QUOTIENT(($A3+B$2);$B$1+1)*$B$1).
    Pourtant j'ai émis d'autre proposition bien plus proche du résultat final.

    il est facile d'arriver en vainqueur alors que le terrain a été déblayé et la demande affiné.
    Tu n'interviens qu'une fois que des incongruité sont écartés et que les choix sont restreint .

    heureusement que professionnellement je ne propose pas que du modulo
    Il est vrai que j'ai une approche plutôt mathématique ... c'est effectivement ce que j'ai appris au cnam a la fin de mon cursus
    tout algorithme peut être validé et vérifié mathématiquement.

    Je ne suis pas un développeur "spaghetti" qui met des goto et/ou des break dans tout les coin pour éviter de penser correctement à ses condition de sortie.
    Mais ce n'est pas pour autant que je suis figé dans un mode de pensé.
    au vu de ma formation je suis bien loin des standard et du par cœur

    Un problème sans solution est un problème mal posé.

  12. #52
    Membre confirmé Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 323
    Points : 484
    Points
    484
    Par défaut
    Et qu'en pense l'auteur de la discussion ?

    Sa démarche est-elle "philosophique" qui donnerait raison aux interventions d'APL-AML, ou technique ce qui honorerait l'intérêt de WhiteCrow, Mat.M et Anapurna ?

    @maxime_nrgt, merci de "réconcilier" ceux qui se sont donné la peine de chercher une réponse...
    Belle journée à tous,

  13. #53
    Membre éclairé
    Avatar de APL-AML
    Homme Profil pro
    Développeur Gestion (Retraité)
    Inscrit en
    Juin 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur Gestion (Retraité)
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2020
    Messages : 50
    Points : 878
    Points
    878
    Billets dans le blog
    85
    Par défaut Relation utilisateur – informaticien
    ■ ■ ■ SOMMAIRE ■ ■ ■

    • Philosophie et/ou Psychologie ?
    • Un peu de provocation ?...
    • Quelle réalité ?
    • Il y a trois règles pour construire une relation :
      1. Parler de son ressenti…
      2. Partager des expériences…
      3. Réaliser qu’il y a autant de réalités différentes que d’individus…
    • Les outils qui nous aident à mieux communiquer
    • Relation utilisateur – informaticien
    • Anecdotes
    • Conclusion
    • Post-Scriptum
    Philosophie et/ou Psychologie ?...

    En relisant la discussion, j’ai été frappé par l’influence du système de pensée des intervenants dans leur démarche. Il m’a semblé intéressant et constructif de faire part de cette observation à l’origine de mon parcours professionnel.

    J’avais dit que la polémique ne m’intéressait pas. Apprend-on quelque chose à argumenter son point de vue pour prouver que l’on a raison et l’autre tort ?

    Un peu de provocation ?... Les dogmes éducatifs, moraux et autres sont des boulets à traîner, des handicaps émotionnels et relationnels pour la vie entière. La provocation est une nécessité pour évoluer dans notre façon de réfléchir, pour atteindre davantage de liberté intérieure, mais elle doit être faite avec bienveillance et ne s’adresser qu’à ceux qui ont les capacités pour comprendre.

    Visiblement je n’ai pas été suffisamment bienveillant et/ou je ne m’adresse pas à des personnes en capacité de comprendre le message que j’essaie de faire passer.

    Quelle réalité ?

    Dans notre rapport à l’autre, nous devons abandonner l’idée d’une réalité unique et comprendre la communication comme un partage d’expérience et non comme un échange d’informations.

    Chacun fabrique l’autre par projection. Il s’en suit un décalage qui peut devenir abyssal. Ce que nous croyons être un dialogue entre deux individus n’est en réalité que deux monologues. Le premier a lieu entre lui-même et son imaginaire et le second entre son interlocuteur et son propre imaginaire.

    La projection peut être positive ou négative se faire par idéalisation ou par rejet. Dans les deux cas, ne pas en être conscient engendre une bonne partie de nos problèmes relationnels.

    En réalité, il importe moins de savoir ce que pense, ce que dit quelqu’un que pourquoi il le pense, il le dit. Les désaccords peuvent faire peur et il est très confortable d’être d’accord, les similitudes rassurent mais ça ne sert à rien. Chacun a de bonnes raisons de dire ce qu’il dit en fonction de son vécu. On s’enrichit mutuellement au contact du vécu de l’autre. Rejeter les divergences, chacun prouvant qu’il a raison et l’autre tort, rend les relations difficiles, voire même inutiles. Il ne s’agit nullement de se renier soi-même pour subir l’influence de l’autre, mais bien d’ajouter, aux compétences que nous avons déjà, une nouvelle compétence ou une façon différente de percevoir un problème.

    Il y a trois règles pour construire une relation :

    1. Parler de son ressenti… Lorsque l’on dialogue, nous n’avons pas à juger le comportement de l’autre, la règle d’or consiste à exprimer ce que l’autre provoque en nous, ce que nous ressentons vis-à-vis de son attitude.

    2. Partager des expériences… On communique véritablement quand on partage des expériences personnelles, pas quand on transmet des informations.

      Si nous n’apprenons rien de nouveau sur l’autre ou sur nous-même dans une discussion, ou que pire encore notre seul but est de persuader l’autre qu’il a tort, nous ne communiquons pas, nous transmettons des informations qui ne peuvent que susciter le rejet de quelqu’un de différend et l’approbation de quelqu’un de similaire.

      Une expérience est unique ; elle appartient à celui qui en fait part et à personne d’autre, jusqu’à ce que l’interlocuteur en saisisse le caractère spécifique. Il est donc important pour faire passer notre message d’expliquer simultanément d’où provient notre avis et sur quelle expérience nous nous fondons car soit notre discours devra être décodé puis interprété, soit il sera associé à des images, des émotions ou représentations personnelles qui peuvent se révéler différentes des nôtres.

      Les mots, les phrases sont certes perçus mais leur sens n’est pas identique pour l’émetteur et le récepteur. La transmission de notre pensée subit plusieurs déformations :

      • Une idée ou un ressenti qui passe dans notre conscience est d’abord traduit en mots,
      • Communiqués à notre interlocuteur, ce dernier comprend, filtre les mots comme il peut et les retraduit en idées ou ressentis,
      • Il s’en crée pour finir une représentation mentale qu’il intègre en fonction de son propre vécu.

      À défaut d’expériences communes, nous essayons de construire la situation dans notre imagination.

    3. Réaliser qu’il y a autant de réalités différentes que d’individus… Cela signifie que la plupart des conflits sont aussi vains qu’inutiles. Comme nous négligeons de nous enquérir de ce que l’autre comprend, nous vivons régulièrement dans des mondes parallèles. Il nous appartient de choisir si nous préférons résister face à des manières différentes de fonctionner ou développer la liberté de découvrir d’autres façons de penser.

    Les outils qui nous aident à mieux communiquer :

    • la métaphore… Au-delà des mots, l’usage de la métaphore, ou de la parabole, permet de s’adresser simultanément à différentes personnes aux vécus disparates. Elles n’en tireront pas une compréhension intellectuelle, rationnelle, mais plutôt la sensation que le sujet touche en elles quelque chose d’authentique.

    • le recadrage… Pour se faire comprendre sans être englobé dans la vision du monde de son interlocuteur, le recadrage modifie subtilement le contexte d’une situation pour lui permettre de prendre un sens différend. Dire par exemple que la mort est le contraire de la naissance plutôt que le contraire de la vie, offre un autre point de vue. Le recadrage amène celui qui est prisonnier de sa vision du monde à changer son angle de vue, sa façon de voir les choses, en découvrant qu’il existe d’autres vérités que la sienne, d’autres solutions.

    • la métacommunication… C’est comme un double recadrage qui permet d’expliciter ce que disent les interlocuteurs en resituant leur discours dans différents contextes. Face à un dilemme, une dispute insoluble, s’accorder sur le fait de ne pas parvenir à s’entendre est un premier pas que chacun fait l’un vers l’autre, à partir duquel il devient parfois possible de faire jaillir quelques concessions.

    • les perversions de langage… L’un des grands pièges de la communication est l’intrication de niveaux logiques différents. Dire par exemple à un enfant qu’il n’est pas gentil sous prétexte qu’il veut aller jouer dehors plutôt que de faire ses devoirs. Une question de discipline n’a rien à voir avec la gentillesse. Ce sont des perversions de langage manipulatrices qui prennent habituellement la forme de chantage affectif, de double bind, de « double lien ». On enferme l’autre dans un dilemme impossible à résoudre.

    • la recherche de situations gagnant-gagnant… Si l’on ressort gagnant sur notre interlocuteur, c’est qu’on l’a manipulé ou abaissé. À l’inverse, si c’est l’interlocuteur qui ressort gagnant, on en souffre d’en être la victime. Le but d’une relation devrait toujours être de construire une situation win-win (« gagnant-gagnant »).



    Ce que vous venez de lire est extrait du livre :


    Bertrand PICCARD, né le 1er mars 1958 à Lausanne, est psychiatre-explorateur. Il a fait deux fois le tour de la Terre, une fois à bord du ballon Breitling Orbiter 3 (1999) et une fois avec l’avion solaire Solar Impulse (2015-2016).

    Il est le fils de l'océanographe Jacques Piccard et le petit-fils du physicien Auguste Piccard connu pour avoir inspiré à Hergé le personnage du professeur Tournesol dans Les Aventures de Tintin.

    De ses ouvrages littéraires, j’ai rassemblé ses idées dans deux billets :





    Relation utilisateur – informaticien

    L’utilisateur exprime son besoin avec son imaginaire impacté par son vécu, son vocabulaire, le milieu équestre particulier dans lequel se situe son besoin et s’interroge :

    « Je ne comprends vraiment pas votre réponse. Je cherche tout simplement à vous répondre, en vous expliquant les "règles" d'un milieu bien particulier. Soyez donc plus clairs dans les informations que vous me demandez... ou plus précis peut-être. Il y'a peut être en effet des points qui vous paraissent flous, lesquels pour ma part me semblent très clairs...

    Pour être honnête, je me sens "débile" à votre regard et je préférerais n’avoir aucune réponse plutôt que ce genre de messages. »

    L’informaticien pour sa part, interprète le discours de l’utilisateur avec son propre imaginaire.

    Pour l’un, l’énoncé est perçu comme une énigme avec des bribes d’informations mal organisées. Pour un autre, le concours équestre de l’utilisateur devient courses hippiques dans son imaginaire, ce qui éclaire ses interrogations ou suppositions et explique le cavalier devenu jockey :

    « Je suppose que tu as plusieurs créneaux qui vont te permettre de faire des passages (=jockey+cheval). Il y aura des contraintes à respecter, des associations à gérer (qui choisit le cheval lors d'un passage ? le jockey ? quelqu'un d'autre ?) »



    Anecdotes

    • Développeur aux Études, je venais de demander à intégrer la Maintenance afin de concrétiser l’idée que je me faisais des relations Utilisateur – Informaticien. Concrètement, j’envisageais de revisiter, voire de redévelopper les applications qui me seraient confiées pour qu’elles répondent au besoin réel de leurs utilisateurs.

      Même pas installé, j’arrive dans le couloir, mon carton sous le bras avec mes petites affaires à l’instant où le responsable de la Maintenance sort de son bureau avec lui aussi son carton sous le bras avec ses petites affaires :

      « Tu cherches un bureau ? Tu n’as qu’à prendre le mien, je parts à Toulouse. »

      Et sur mon carton, il dessine une UT puis m’écrit les coordonnées d’un service administratif et le nom d’un utilisateur en me disant :

      « Si tu peux, fais quelque chose pour eux, ils valent le coup, moi, je n’ai pas eu le temps. »

      Deux mois plus tard, j’avais développé une application opérationnelle que j’allais sophistiquer pendant deux ans. Les utilisateurs avaient purement et simplement abandonné leur application initiale qui ne répondait pas à leur besoin. En fait, cette application était sensé être maintenue par… mon colocataire du bureau et l’application elle-même occupait tout un étage d’une armoire que je n’ai jamais ouverte. Bien qu’avec mon colocataire, nous fussions l’un en face de l’autre, j’ai ignoré pendant plus d’un an qu’il était en charge de cette application… jusqu’à ce que l’utilisateur de passage dans le coin en profite pour me rencontrer. Je m’aperçois alors que l’utilisateur connait très bien mon colocataire, lequel réalise que depuis plus d’un an, je redéveloppe l’application qu’il est sensé maintenir. L’utilisateur parti, mon colocataire pique une colère démesurée que je ne comprends pas tout de suite et l’affaire fait tellement de bruit qu’elle arrive aux oreilles des Études.

      « S’il fallait redévelopper cette application, c’était à nous de le faire ! »

      Bref, sans le vouloir, juste pour aider un utilisateur, j’avais créé un beau pataquès. La situation a fini par s’apaiser et j’ai pu poursuivre mon développement. C’est ainsi que j’ai réalisé que j’étais capable de développer seul une application Au Pied Levé, À Main Levée. Ça se passait en 1979 si vous voyez ce que cela sous-entend… un télétype par service et premier éditeur.

    • Deux ou trois mois après mon installation à la Maintenance, la division des Études propose à la Maintenance d’assumer le suivi d’une application de gestion comptable des forêts. Bien sûr, débarquant des Études, on me demande ce que j’en pense. Connaissant les difficultés relationnelles entre le chef de projet et l’utilisateur, je me suis méfié et j’ai proposé une rencontre Chef de projet – Équipe de Maintenance chez l’utilisateur. L’utilisateur a tout simplement refusé de nous rencontrer et nous a envoyé sa secrétaire pour nous dire que pour lui, l’application dont on parle n’existe pas et qu’il ne voit pas ce que l’on vient faire.

      Heureusement, dans notre équipe de Maintenance, nous avions un collègue IGREF. Entre IGREF, ils se comprennent. Finalement, nous avons été reçus, sans le chef de projet. Nous avons repris l’application et notre collègue IGREF l’a réécrite pratiquement en totalité.

    Conclusion

    Ce sont deux exemples parmi d’autres illustrant le décalage entre le besoin réel de l’utilisateur et son interprétation par l’informaticien. Je ne jugeais pas vos compétences techniques. Si c’est ce que vous croyez, c’est que vous n’avez rien compris à ma démarche. Je constatais simplement l’incidence inappropriée de votre compétence technique incontestable dans la réflexion concernant cette problématique. Cette discussion est un révélateur de ce qui peut se passer lors de l’informatisation d’une problématique. J’ai vécu ces situations d’incompréhension entre le monde des utilisateurs et celui des informaticiens durant toute mon activité et c’est la raison pour laquelle j’en suis venu à développer en électron libre dans l’entité métier de l’utilisateur, pour disposer de l’information à la source, pour vivre la réalité de la problématique et non sa modélisation à travers le filtre de la technicité informaticienne.

    Je regrette que nous ne soyons pas capables de communiquer positivement sur le sujet. Il eut été intéressant par exemple qu’anapurna développe son approche selon laquelle tout algorithme peut être validé et vérifié mathématiquement. Je regrette également de vous avoir éloigné de l’algorithmie, mais bon, la discussion semble intéresser beaucoup de monde, notamment les invités.

    Je vous laisse faire le lien avec la pensée out of the box.

    Post-Scriptum

    La solution que je proposais n’est pas idéale à 100%. Elle permet seulement de réaliser globalement un ordre de passage acceptable au lieu d’avoir à le réaliser manuellement inscription par inscription, sans vue d’ensemble.

    Rien n’empêche d’affiner la solution résultante en déplaçant une inscription à l’intérieur d’un ensemble NB_TOURS – N_ORDRE pour augmenter ou diminuer l’espace temps entre deux passages d’un même cavalier ou d’un même cheval. Cela ne fait que perturber sans conséquence l’ordre alphabétique dans cet ensemble. Il reste juste à actualiser la chronologie des passages (N°_PASSAGE).

    J’ai réfléchi à ajouter ce genre de traitement mais ça complique trop le processus. Le mieux, c’est d’affiner éventuellement à la main si c’est nécessaire.

    Pour ma part, je n’ai plus rien à ajouter. Bonne continuation !...



  14. #54
    Membre éclairé
    Avatar de APL-AML
    Homme Profil pro
    Développeur Gestion (Retraité)
    Inscrit en
    Juin 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur Gestion (Retraité)
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2020
    Messages : 50
    Points : 878
    Points
    878
    Billets dans le blog
    85
    Par défaut PHILOSOPHIE vs TECHNICITÉ
    ■ ■ ■ SOMMAIRE ■ ■ ■

    1. PHILOSOPHIE
      • Ce que j'en pense...
      • Philosophie vs Technicité
      • Démarche Top-down vs Démarche Bottom-up
      • L’Art et la Manière
        • L’ART
        • LA MANIÈRE
          • Principes méthodologiques
            1. Principes du Manifeste Agile (Management)
            2. Principes du RAD (Management/Développement)
            3. Principes de l’Adhocratie (Management)
            4. Principes APL-AML (Management/Développement)
            5. Principes communs Adhocratie/RAD/Agile
          • Principes psychologiques
            1. Les principes de la Poulpe attitude
            2. Les principes de la Positive attitude
            3. Les principes de l’Impulse attitude
            4. Les principes de la Running attitude
            5. Les Principes de la Pensée out the box
          • Principes philosophiques
            • Citations, proverbes
      • CONCLUSION
    2. TECHNICITÉ
      • Fonctionnalité « INTERVALLE »
        • Algorigramme INTER_CAVALIER
        • Algorigramme INTER_CHEVAL
        • Algorithmes
      • CONCLUSION
    3. ANNEXES
    4. LIENS


    § I- PHILOSOPHIE

    ■ Ce que j’en pense…

    Citation Envoyé par Galet Voir le message
    Et qu'en pense l'auteur de la discussion ?

    Sa démarche est-elle "philosophique", ce qui donnerait raison aux interventions d'APL-AML, ou technique, ce qui honorerait l'intérêt de WhiteCrow, Mat.M et Anapurna ?

    @maxime_nrgt, merci de "réconcilier" ceux qui se sont donné la peine de chercher une réponse...
    La dualité « Philosophie-Technicité » constitue avec le « développement Bottom-up » les deux sujets de ma réflexion de développeur depuis plus de 50 ans.

    1. Dualité « Philosophie-Technicité »

      Je traduis cette dualité par l’expression « L’Art et la Manière » que symbolise mon avatar avec le Yin (l’Art) et le Yang (la Manière).

    2. Développement Bottom-up

      Je traduis ma démarche de développement Bottom-up par les expressions « Au Pied Levé - À Main Levée ». C’est le titre de mon blog et son acronyme « APL-AML » a inspiré mon pseudo et le titre de mon premier blog logique : APL-AML.

      Cela répond à la discussion : [Forums] Vos pseudos : Ils viennent d'où ?



    ■ Philosophie vs Technicité

    Ma démarche n’était pas seulement philosophique puisqu’elle a permis d’apporter une réponse au problème posé par maxime_nrgt.

    La philosophie n’est pas un savoir, ni un ensemble de connaissances, mais une démarche de réflexion sur les savoirs à disposition ; c'est une recherche de la sagesse, de la vérité. Philosopher, c’est apprendre à débattre de tout, à réfléchir au sens de ses actes, à penser par soi-même. La réflexion philosophique ne produit pas de code mais permet d’adopter une attitude qui elle va impacter la démarche de développement et in fine le code.

    En évoquant la pensée out of the box et notre imaginaire mutuel lorsque l’on communique, mon intention était d’évoquer l’importance de notre attitude dans notre démarche de développement.

    À ces deux considérations psychologiques peut s’en ajouter une troisième : L’empathie cognitive, qui consiste en la capacité à se représenter l’état mental de l’autre. C’est le fait de comprendre les raisons pour lesquelles l’autre ressent ce qu’il ressent. En langage courant, le phénomène d'empathie est souvent rendu par l'expression « se mettre à la place de l'autre ».

    Selon les contextes, l'empathie désigne aujourd'hui à la fois une aptitude psychologique et les mécanismes qui permettent la compréhension des ressentis d'autrui.

    Des neurones miroirs activés indistinctement lors d'une action observée et d'une action effectuée, envoient certains messages nerveux qui permettent en quelque sorte de vivre ce qui est observé de l'autre comme si c'était soi-même.

    Se mettre à la place de l'autre, comprendre les ressentis d'autrui ne constitue pas seulement une aptitude psychologique. Pour ma part, j'ai poussé le curseur "empathie cognitive" jusqu'à développer mes applications dans l'entité métier des gestionnaires. Il ne suffit pas d'interviewer le responsable d'une entité puis de coller des post-it sur un tableau mural pour décoder la complexité d'une problématique et des rapports humains dans l'entité. Ainsi, un responsable connait certes les règles de gestion de son entité mais il ignore la plupart du temps comment ces règles sont mises en pratique par ses gestionnaires. Vivre la même aventure que les gestionnaires permet de voir l'invisible, ce que les gestionnaires eux-mêmes ne savent pas qu'ils savent.

    « L'empathie est le talent le plus précieux de l'être humain. » - Meryl Streep
    Empathie émotionnelle - Empathie cognitive



    ■ Démarche Top-down vs Démarche Bottom-up

    Adapter la problématique de l’utilisateur à sa technicité n’est pas la même chose qu’adapter sa technicité à la problématique de l’utilisateur.

    • Soit la technicité pilote une démarche de développement Top-down :

      Le développeur adapte la problématique de l’utilisateur à sa technicité (modélisation conceptuelle) et son système de pensée induit une logique combinatoire.

      La modélisation conceptuelle Top-down recense les entités et leurs attributs existants. Elle ne prévoit pas la création d’attributs et c’est bien la raison pour laquelle les trois tentatives de solutions classiques par une logique combinatoire n’ont pas abouti.

      « Un spécialiste sait construire ce qu’il a appris à construire, pas autre chose. » - Bertrand PICCARD

      Logique combinatoire : Un système logique est dit combinatoire si à tout instant, il est possible d’écrire l’équation logique de chaque sortie, en fonction seulement des entrées.

      Le résultat logique en sortie peut donc être représenté par une table de vérité ou un tableau de Karnaugh.

    • Soit la philosophie pilote une démarche de développement Bottom-up :

      Le développeur adapte sa technicité à la problématique de l’utilisateur et son système de pensée induit une logique séquentielle.

      Il utilise sa technicité (L’Art) et sa philosophie (La Manière) pour comprendre et traduire informatiquement la solution que lui suggère la problématique.

      Citation Envoyé par APL-AML Voir le message
      En considérant la problématique sans à priori, c’est la problématique qui guide la réflexion et suggère progressivement la solution.
      « On ne peut pas penser à une solution, on peut vivre et ressentir une solution. » - Bertrand PICCARD

      Logique séquentielle : Un système est dit séquentiel si à une même combinaison des variables d’entrée peut correspondre plusieurs combinaisons différentes des variables de sortie. La combinaison des variables de sortie dépend des entrées mais également de l’état antérieur des variables de sortie.

      La logique séquentielle fait intervenir le temps. Autrement dit dans un système séquentiel, La valeur d'une variable logique à l'instant donné T dépend de celles qu'avaient les variables logiques aux instants précédents (instant T-1). C’est ce que l’on appelle « l’effet MÉMOIRE ».

      On retrouvera les mêmes états des entrés à plusieurs étapes, alors que les sorties seront différentes. Il est donc impossible de les représenter par un tableau de Karnaugh.



    ■ L’Art et la Manière (Extrait de mon blog logique APL-AML)

    L’Art a ses règles, la Manière ses valeurs et ses principes.

    Le développement n’est pas qu’une affaire exclusivement technique, c’est une alchimie mêlant savoir-faire (l’Art) et savoir-être (la Manière). L’Art se définit par des modalités pratiques d’exécution, des procédures opérationnelles, organisationnelles (règles métier) ; la Manière est gouvernée par une attitude, des obligations morales, (valeurs et principes). Règles et Principes modélisent l’Art et la Manière de développer.

    1. L’ART (L’art au sens des usages en vigueur dans un corps de métier)

      Les règles métier (ou règles de gestion, ou « business rules » en anglais) sont des prescriptions propres à une science, une technique, une activité déterminée, des spécifications, des déclarations structurées de haut niveau qui permettent de contraindre, contrôler et influencer un aspect du métier.

      Les règles métier, considérées comme seules exactes, autorisées, permettent de diminuer ou d’augmenter l'impact de risque et de prendre des décisions rationnelles. Il importe de les suivre dans leur étude, leur pratique.
      Travailler dans les règles de l’art, c’est observer de bonnes pratiques, exercer un savoir-faire, respecter les usages en vigueur. Pour un informaticien, c’est la maitrise des méthodes de conception et de réalisation.

      Lorsque ces méthodes défaillent, le réflexe est de surajouter de la maitrise, de la complexité au lieu d’envisager de transformer l’impossible en possible, de trouver des solutions, se remettre en question dans toutes nos stratégies en sortant des sentiers battus, des certitudes et des habitudes, en prenant tous les chemins de traverse, pour entrer dans les doutes et l’inconnu, en saisissant toutes les occasions de stimuler notre créativité, d’inventer de nouvelles solutions, de faire ce que les autres n’osent pas faire ou pensent être impossible.

      L’être humain a horreur du vide et veut à tout prix remplir tous ses doutes par des explications.

    2. LA MANIÈRE (Principes méthodologiques, psychologiques et philosophiques)

      La Manière, c’est l’état d'esprit adopté par le développeur lors de ses développements. Cette Manière est gouvernée par une attitude, des obligations morales, des valeurs, des principes méthodologiques, psychologiques et philosophiques.

      Valeurs

      Les valeurs sont subjectives et ne dépendent que de l’importance qu’on leur accorde, mais elles n’ont pas de prix car c’est en fonction d’elles, conscientes ou non, que chacun détermine ses choix d’action. Elles sont loin d’être un choix théorique car c’est notre « boussole interne » qui guide nos actions, permet de nous réaliser, nous fait avancer dans la vie en étant en accord avec nous-même.

      Les identifier revient à connaître ce qui sous-tend toutes nos pensées, tous nos projets, toutes nos actions. L'important est de trouver ses principales sources de motivation.

      Valeurs sociologiques : elles peuvent construire une éthique personnelle, orienter les actions des individus dans une société en fixant des buts et des idéaux.

      Valeurs humaines : ce sont des vertus qui nous guident pour prendre en compte l’humain lorsqu’on interagit avec un autre être humain.

      Valeurs du Manifeste : sociologiques et humaines, elles impactent l’équipe de développement et la collaboration utilisateur/développeur. Outre leurs vertus, leur respect par tous les acteurs joue un rôle de rassemblement.

      Principe

      C’est à la fois ce qui précède et ce qui régit les choses qu'on lui rapporte.

      C’est une source, un fondement, une vérité première d'idées, les premiers préceptes, les premières règles d’un art, quant au fonctionnement d’une chose. C’est une notion importante de laquelle dépend tout développement ultérieur en toute connaissance.

      C’est une maxime morale que l'on se donne, définissant une règle de conduite, une manière type d'agir sans préjuger des modalités pratiques d'exécution.

      C’est une norme constituant une référence fondée sur des considérations théoriques, des valeurs sur lesquelles il convient de régler une action ou sa conduite.

      C’est une cause active de quelque chose, un élément qui a la propriété de produire certains effets.

      C’est une loi de portée générale relative à une science, non démontrée mais vérifiée par ses conséquences que certaines observations ont d’abord rendue vraisemblable.

    • Principes méthodologiques

      Un principe « management » se distingue d’un principe « développement » en ce qu’il concerne des personnes et non une procédure. Manifeste Agile, RAD, APL-AML… chaque méthode prescrit ses propres principes liés au management et/ou au développement :

      • Principes du Manifeste Agile (Management)

        Des personnes motivées, compétentes, communicantes, autonomes.

        Le Manifeste concerne le management des équipes de développement et non le développement proprement dit. En distinguant Valeurs et Principes, il traduit bien la perception des 17 leaders-managers qui l’ont rédigé.

        Reproduire le texte original du Manifeste n’ayant aucun intérêt, ses valeurs et principes sont ici regroupés par niveaux conceptuels, tels qu’ils peuvent être perçus par des développeurs et non des managers.

      • Principes du RAD (Management/Développement)

        Un engagement constant pour la satisfaction des utilisateurs en termes de fonctionnalités, de délais et d’ergonomie.

        Le « RAD » de Jean-Pierre Vickoff évoque des principes sans en dresser une liste à l’instar du Manifeste. Il s’agit donc de déductions extraites de son ouvrage.

      • Principes de l’Adhocratie (Management)

        Concentrer tous ses efforts et toutes ses ressources dans la réalisation rapide d’un objectif.

        Aucune ambiguïté sur la typologie de ses principes puisque l’ouvrage dont ils sont extraits « La stratégie des équipes ad hoc » ne se réfère pas du tout à l’informatique.

        Schématiquement, l’adhocratie qualifie toute forme d’organisation qui va à l’encontre de la bureaucratie pour aborder le changement.

        Concrètement, ce sont des collaborateurs compétents de départements différents de l’entreprise qui entreprennent de solutionner des problèmes communs à l’ensemble de cette entreprise, en transgressant si nécessaire les règles bureaucratiques telles que les organigrammes, les départements, les fonctions, les profils de poste, la hiérarchie et la tradition.

      • Principes APL-AML (Management/Développement)

        Vivre en mode intuitif (écoute intérieure) et vivre en mode chance (écoute extérieure).

        Et si je relisais mon texte en sélectionnant les concepts les plus significatifs de ma démarche pour les ériger en principes…

        APL-AML est en accord avec la plupart des principes du Manifeste mais n’est pas pour autant une méthode agile dans la mesure où le Manifeste s’adresse à des équipes de développement « Top-down » en SSII alors qu’APL-AML est une démarche individuelle Bottom-up, personnelle, en intra-entreprise.

      • Principes communs Adhocratie/RAD/Agile

        Exprimés différemment, certains principes abordent les mêmes sujets. Il est intéressant de les corréler.

    • Principes psychologiques

      La Manière, c’est aussi l’attitude qu’enseigne la vie et qui a également ses principes. C’est l’engagement, c’est la liberté qui ne range pas tout dans des cases, une liberté qui s’alimente d’inhabituel, d’opportunisme, de coïncidences, d’intuitions, d’initiatives prémonitoires, d’irrationnel, d’irrespect des règles et du modèle pour devenir pleinement réactif.

      Lorsque le développement fait appel à plusieurs spécialistes installés confortablement dans leur bulle confort, aucune place n’est laissée à l’imprévu.

      L’exercice quotidien d’un métier génère des habitudes, des raccourcis qui font oublier le processus de certaines pratiques. C’est vrai pour les gestionnaires qui ne savent pas qu’ils savent mais également pour le développeur que je suis et qui doit s’observer lui-même avec suffisamment de recul pour décrypter son mode de fonctionnement. C’est en cherchant à comprendre et à expliquer le démarrage, l’évolution, la progression de mes informatisations, que j’ai mis en évidence l’influence d’événements imprévus, d’opportunités et de coïncidences. Cette irrationalité qui s’oppose au cartésianisme atavique de l’informaticien est néanmoins une constante d’APL-AML. Ce n’est pas une règle mais un simple constat. L’attitude vis-à-vis des personnes et des événements favorise sans doute le phénomène.

      Curieusement, certains événements ouvrent des perspectives, des opportunités débloquent une situation en impasse, des coïncidences simplifient une complexité…

      Cette Manière, APL-AML la nomme véloce attitude, un terme générique qui associe :



    • Principes philosophiques

      La philosophie comme mode de vie et non pas uniquement comme une réflexion théorique, c’est vivre et agir d’une certaine façon et non pas seulement se confronter à des questions abstraites.

      C’est mettre en application dans sa propre vie, des résultats de la réflexion philosophique.




    ■ CONCLUSION

    Ça va faire plus un demi-siècle que les informaticiens déshumanisent les problématiques en développant selon leurs méthodes cartésiennes, leurs modélisations conceptuelles idéalisées, codifiées, validées et vérifiées mathématiquement.

    Cette discussion prend l’informaticien en flagrant délit d’égarements causés par des maladresses d’ordre philosophique et psychologique.

    L’Art s’enseigne parce que la matière est concrète, on apprend à conceptualiser, à modéliser ce qui se voit, la partie émergée de l’iceberg, puis on développe cette jolie modélisation. Mais ce n’est pas la vraie vie ! Dans la vraie vie, il n’y a pas que ce qui se voit, il y a aussi ce qui ne se voit pas, le non-dit, la partie immergée de l’iceberg, toutes ces fonctionnalités auxquelles personne ne pense ou même n’ose imaginer et qui ne se révèlent qu’au fur et à mesure que progressent les développements.

    La Manière ne s’enseigne pas, c’est une affaire personnelle que l’on ose explorer ou que l’on préfère ignorer pour ne pas avoir à se poser des questions qui dérangent. Il est plus confortable de rester dans sa bulle confort "Technique" en se satisfaisant des recettes apprises, que d’engager une réflexion susceptible de perturber notre vision du développement telle qu’elle nous a été transmise par nos formateurs et qui risquerait de fissurer notre formatage scolaire.

    Il ne s’agit pas de renier ce que l’on a appris, l’Art avec sa technicité demeure. Dans une démarche de développement Bottom-up, le chemin se découvre en marchant. Le développeur fait sa pelote en gardant le cap, avec "engagement et pugnacité" comme l’a très bien décrit Galet, mais toujours sous contrôle d’une réflexion en arrière-plan qui veille à respecter l’état de l’art.

    Ce qu’il faut retenir

    1. Le développement n’est pas qu’une affaire exclusivement technique, c’est une alchimie mêlant la technique (l’Art) et l’attitude (la Manière). L’Art se définit par des modalités pratiques d’exécution, des procédures opérationnelles, organisationnelles (règles métier) et la Manière par une attitude, des obligations morales, (valeurs et principes). Règles et Principes modélisent l’Art et la Manière de développer.

    2. Le système de pensée de la logique combinatoire est le même que celui du développement top-down.

    3. Le système de pensée de la logique séquentielle est le même que celui du développement bottom-up.



    Deux petites citations de Bertrand PICCARD pour clore ce chapitre :

    • « Découvrir d’autres façons de penser, d’agir, d’autres influences, réponses et visions du monde, c’est apprendre à fonctionner autrement, à se libérer de nos automatismes et de ce que notre conditionnement nous a appris. »

    • « Il n’y a pas de performance, d’efficacité, de véritable capacité de décision et d’action sans la liberté d’abandonner ses convictions, de raisonner en dehors de tout ce que nous avons appris, de tout ce qui nous a conditionnés à être ce que nous sommes. »



    § II- TECHNICITÉ


    ■ Fonctionnalité « INTERVALLE »

    Afin d’évaluer la qualité de l’ordre de passage et d'informer les cavalliers, j’ai ajouté deux nouveaux attributs INTER_CAVALIER et INTER_CHEVAL calculant le nombre de passages prévus entre deux passages d’un même cavalier ou d’un même cheval pour leur permettre de récupérer.

    Ces deux attributs ne sont renseignés que pour les 2èmes et 3èmes passages d’un cavalier et d’un cheval.

    L’algorigramme est simple mais mes compétences Excel ne me permettent pas de programmer l’algorithme. J’ai concrétisé l’idée par un simple calcul mental.

    Le résultat est intéressant :

    • Pour le 1er concours équestre de la FFE (26 inscriptions), le nombre de passages entre deux passages d’un même cavalier s’échelonne de 2 à 22 et entre deux passages d’un même cheval, de 3 à 12.

    • Pour le 2ème concours équestre de la FFE (33 inscriptions), le nombre de passages entre deux passages d’un même cavalier s’échelonne de 8 à 21 et entre deux passages d’un même cheval, de 7 à 21.


    • ALGORIGRAMME INTER_CAVALIER

      Tri : NOM_CAVALIER, N°_PASSAGE

      NOM_CAVALIER.bak = sauvegarde de NOM_CAVALIER
      N°_PASSAGE.bak   = sauvegarde de N°_PASSAGE
      
                                         ┌─────────────────────────────┐
                                         │                             │
                                  D-PROG │  NOM_CAVALIER.bak = ""      │
                                         │                             │
                                         └──────────────┬──────────────┘
                                                        │◄───────────────────────────────────────────────┐
                                         ┌──────────────┴──────────────┐                                 │
                                         │          NOM_CAVALIER.bak   │                                 │
                       D_ INTER_CAVALIER │              ::             │                                 │
                                         │          NOM_CAVALIER       │                                 │
                            <>           └──────────────┬──────────────┘            =                    │
                          ┌─────────────────────────────●─────────────────────────────┐                  │
           ┌──────────────┴──────────────┐                             ┌──────────────┴──────────────┐   │
           │        NOM_CAVALIER.bak     │                             │         INTER_CAVALIER      │   │
           │              =              │                             │              =              │   │
           │        NOM_CAVALIER         │                             │(N°_PASSAGE-N°_PASSAGE.bak)-1│   │
           └──────────────┬──────────────┘                             └──────────────┬──────────────┘   │
                          └─────────────────────────────┬─────────────────────────────┘                  │
                                         ┌──────────────┴──────────────┐                                 │
                       F_ INTER_CAVALIER │ N°_PASSAGE.bak = N°_PASSAGE │                                 │
                                         └──────────────┬──────────────┘                                 │
                                                        ●────────────────────────────────────────────────┘
                                         ┌──────────────┴──────────────┐
                                  F-PROG │              ϕ              │
                                         └─────────────────────────────┘
      
    • ALGORIGRAMME INTER_CHEVAL

      Tri : NOM_CHEVAL, N°_PASSAGE

      NOM_CHEVAL.bak = sauvegarde de NOM_CHEVAL
      N°_PASSAGE.bak = sauvegarde de N°_PASSAGE
      
                                         ┌─────────────────────────────┐
                                         │                             │
                                  D-PROG │    NOM_CHEVAL.bak = ""      │
                                         │                             │
                                         └──────────────┬──────────────┘
                                                        │◄───────────────────────────────────────────────┐
                                         ┌──────────────┴──────────────┐                                 │
                                         │          NOM_CHEVAL.bak     │                                 │
                         D_ INTER_CHEVAL │              ::             │                                 │
                                         │          NOM_CHEVAL         │                                 │
                            <>           └──────────────┬──────────────┘            =                    │
                          ┌─────────────────────────────●─────────────────────────────┐                  │
           ┌──────────────┴──────────────┐                             ┌──────────────┴──────────────┐   │
           │         NOM_CHEVAL.bak      │                             │         INTER_CHEVAL        │   │
           │              =              │                             │              =              │   │
           │         NOM_CHEVAL          │                             │(N°_PASSAGE-N°_PASSAGE.bak)-1│   │
           └──────────────┬──────────────┘                             └──────────────┬──────────────┘   │
                          └─────────────────────────────┬─────────────────────────────┘                  │
                                         ┌──────────────┴──────────────┐                                 │
                         F_ INTER_CHEVAL │ N°_PASSAGE.bak = N°_PASSAGE │                                 │
                                         └──────────────┬──────────────┘                                 │
                                                        ●────────────────────────────────────────────────┘
                                         ┌──────────────┴──────────────┐
                                  F-PROG │              ϕ              │
                                         └─────────────────────────────┘
      
    • ALGORITHMES

      1. Désactiver momentanément voire même définitivement les fonctions dans les cellules de la colonne N°_PASSAGE :

        Onglet Formules -► Options de calcul -► Manuel

      2. Trier sur :

        • NOM_CAVALIER (Ordre croissant)
        • N°_PASSAGE (Ordre croissant)

      3. Lorsque 2ème ou 3ème passage d’un cavalier :

        INTER_CAVALIER = (N°_PASSAGE de la ligne - N°_PASSAGE de la ligne précédente) – 1

      4. Trier sur :

        • NOM_CHEVAL (Ordre croissant)
        • N°_PASSAGE (Ordre croissant)

      5. Lorsque 2ème ou 3ème passage d’un cheval :

        INTER_CHEVAL = (N°_PASSAGE de la ligne - N°_PASSAGE de la ligne précédente) – 1

      6. Après ces calculs, il faut bien sûr restituer l’ordre de tri final du tableau :

        • NB_TOURS (Ordre décroissant)
        • N_ORDRE (Ordre croissant)
        • NOM_CAVALER (Ordre croissant)

      7. Réactiver éventuellement les fonctions dans les cellules de la colonne N°_PASSAGE :

        Onglet Formules -► Options de calcul -► Automatique

      Idéalement, une fonction Excel dans les cellules INTER_CAVALIER et INTER_CHEVAL devrait peut-être pouvoir automatiser ces calculs ?

      J’espère avoir bien exprimé cette nouvelle fonctionnalité… si ça intéresse quelqu’un de s’y coller.

      Ci-joint ma dernière version du fichier Excel : Concours équestre (FFE).xlsx



    ■ CONCLUSION

    Cette fonctionnalité "INTERVALLE" illustre parfaitement mon propos lorsque j’évoque : "… toutes ces fonctionnalités auxquelles personne ne pense ou même n’ose imaginer et qui ne se révèlent qu’au fur et à mesure que progressent les développements".

    L’ajout de l’attribut NB_TOURS pour imposer une priorité de passage aux couples cavalier/cheval selon leur nombre de passages dans l’épreuve, était déjà une fonctionnalité qui ne s’est révélée qu’en cours de développement.

    En "Bottom_up", le cahier des charges, c’est une page blanche à remplir. Le contrat, c’est un engagement moral entre un utilisateur en désespérance et un développeur providentiel.

    En théorie, un développement "Bottom_up" ne se termine jamais mais l’expérience montre, comme c’est le cas ici, que c’est souvent l’utilisateur qui met fin à la collaboration. L’informatisation de sa problématique lui donnant satisfaction, ce dernier ne s’investit plus et n’investit plus. Le contrat moral est rompu, le développeur se désengage, la situation se dégrade par obsolescence technologique et dégradation progressive des fonctionnalités informatisées, le cycle en cloche de la durée de vie d'une application se termine par l’abandon de la solution.

    Pour le fun...

    Il reste à comparer l'ordre de passage créé à l'aide de l'algorithme avec l'ordre de passage créé manuellement par la FFE (N°_PASSAGE_FFE).



    § III- ANNEXEXES

    Ordre de passage de la 1ère épreuve du concours équestre FFE

    Nom : Concours équestre_FFE (1ère épreuve).jpg
Affichages : 136
Taille : 215,9 Ko

    Ordre de passage de la 2ème épreuve du concours équestre FFE

    Nom : Concours équestre_FFE (2ème épreuve).jpg
Affichages : 134
Taille : 241,2 Ko



    § IV- LIENS

    La discussion s’est développée parallèlement dans deux directions, l’une algorithmique et l’autre philosophique. Chacun de ces deux thèmes fait l’objet d’une synthèse publiée sous forme d’un billet de blog.

    La synthèse algorithmique se trouve dans mon blog logique ALGORITHMIQUE.

    La synthèse philosophique se trouve dans mon blog logique FORUMS.

    Trois sujets abordés dans cette synthèse philosophique font l’objet de trois billets distincts dans mon blog logique DIVERS. L’idée est de développer davantage ces sujets, à l’occasion.

    Rappel : un blog logique se concrétise de deux façons :

    • par une page personnalisée (5 maximum) définissable dans le tableau de bord du blog (Modifier les pages personnalisées) et accessible dans le bloc d’en-tête du menu latéral du blog principal,

    • par une catégorie utilisateur définissable dans le tableau de bord du blog (Gestion des catégories) et accessible dans le bloc "Catégories" du menu latéral du blog principal.


    Blog logique ALGORITHMIQUE

    Blog logique FORUMS

    Blog logique DIVERS



  15. #55
    Membre éclairé
    Avatar de APL-AML
    Homme Profil pro
    Développeur Gestion (Retraité)
    Inscrit en
    Juin 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur Gestion (Retraité)
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2020
    Messages : 50
    Points : 878
    Points
    878
    Billets dans le blog
    85
    Par défaut Un tutoriel au format PDF
    Complètement oubliée dans mes archives : la version Word au format "PDF" qui a servi de support à la publication de mon Billet de Blog :

    Billet de Blog :
    La situation étant désespérée, tout est maintenant possible. John Cage

  16. #56
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 465
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 465
    Points : 4 645
    Points
    4 645
    Par défaut
    Bonjour,

    L'auto-référence systématique est, par définition, du "in box" le plus étroit. Les petites phrases sentencieuses remplacent la profondeur par du vernis, ce qui ne ressort nullement d'une quelconque philosophie.

    Si ne pas se contenter des approches méthodologiques classiques est une bonne chose, s'en abstraire totalement n'est pas pour autant souhaitable. Qui pense que marcher sur un pied soit la meilleure façon d'avancer ?

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  17. #57
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 465
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 465
    Points : 4 645
    Points
    4 645
    Par défaut
    Bonjour maxime_nrgt,

    Citation Envoyé par maxime_nrgt Voir le message
    ...résolu mon problème...
    Il faut faire attention, l'exemple montré part d'une liste ordonnée tant en terme de cavaliers que de chevaux, ce qui ne sera pas le cas dans la grande majorité des cas.

    Aussi l'algorithme présenté par APL-AML ne fonctionne pas. Contre-exemple :
    Nom : CSO.png
Affichages : 63
Taille : 6,5 Ko

    Il faut prévoir une étape supplémentaire pour pouvoir faire l'indexation correcte (celle des cavaliers après celle des chevaux). Cette étape implique de trier le tableau selon les cavaliers pour pouvoir détecter les présences multiples. La logique d'indexation doit vraisemblablement être revue : quel incrément si un cavalier monte 2 fois le même cheval ?

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  18. #58
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 465
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 465
    Points : 4 645
    Points
    4 645
    Par défaut
    Bonjour,

    Un petit programme pour traiter ce type de problème avec moins de contraintes que celles d'un concours (mais ces contraintes sont implicitement et préalablement traitées lors de la constitution des passages. Par exemple, le programme accepte un nombre quelconque de passages, de participations cavalier et cheval.

    Nom : CSO.png
Affichages : 34
Taille : 59,6 Ko

    Il permet de fixer la zone de voisinage gênant, par exemple 4 pour dire qu'il faut éviter un autre passage ayant l'un des participants dans les 4 précédents et les 4 suivants. Le non respect engendre un coût que l'algorithme minimise en réagençant les passages. Dans l'idéal la cible est 0, mais si le nombre de participations multiples et croisées (une participation avec un cavalier et cheval récidivistes) ou que la zone de voisinage est trop ambitieuse (on peut aller jusqu'à 48 !) l'algorithme ne parviendra pas à tenir l'objectif mais proposera la moins mauvaise solution.

    Il n'y a pas unicité de solution ne serait ce parce que l'ordre inverse est tout aussi bon et que les participations où les membres du duo ne font qu'un passage sont interchangeables.

    Il peut importer et exporter une liste de passages en CSV : n° de dossard cavalier ";" nom du cavalier ";" n° de dossard cheval ";" nom du cheval. Le séparateur peut être modifié : ";", tabulation, ":", ",". Les n° doivent être des nombres.

    Il y a un autre algorithme beaucoup plus performant mais qui suppose qu'un même couple ne puisse se présenter plusieurs fois. Cela permet de travailler en dimension 2 avec un complexité nLon(n). Comme il faut bien revenir en dimension 1, il faut faire une projection sur une droite en garantissant l'unicité d'où un calcul d'une quasi diagonale de pente a/b avec a premier avec b et les deux >= aux dimensions d'origines (nombre de cavalier, nombre de chevaux). J'ai gardé ce petit calcul (pourtant non utilisé dans l'application) car l'implémentation en est très économique.

    L'algorithme implémenté est moins glorieux, en O(n2.5) si je ne me trompe, mais les opérations sont très simples (+, - et >>) et la réponse est instantanée à l'échelle humaine. Un clic sur optimiser en maintenant CTRL enfoncé permet de voir la progression.

    L'exécutable : CSO.7z. Les sources sont aussi disponibles si cela intéresse quelqu'un.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

Discussions similaires

  1. Quel algorithme pour classer des opérations par ordre de priorité
    Par verbose dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 16/06/2014, 11h11
  2. Quel algorithme pour insertion d'objets "triés" da
    Par phplive dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2005, 09h27
  3. Algorithme pour trier trois nombres
    Par legosam dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 17/01/2005, 21h47
  4. quelle balise pour établir un lien interne
    Par christopher dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 08/12/2004, 13h48
  5. Algorithme pour chiffres significatifs en Assembleur
    Par lutin2003 dans le forum Assembleur
    Réponses: 5
    Dernier message: 09/09/2004, 10h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo