devoxx france 2015 - coding fast and slow

Post on 29-Jul-2015

69 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

@kawabytes @ygrenzinger#CodingFastAndSlow

Coding, Fast & Slow

@kawabytes Maxime MADER, Carbon-IT

@ygrenzinger Yannick GRENZINGER, Carbon-IT

@kawabytes @ygrenzinger#CodingFastAndSlow

Coding, Fast & Slow

• Psychologie du Raisonnement

• L’art sombre de l’Estimation

• La construction de la Réalité

• Le « flow » ou la Néguentropie Psychique

@kawabytes @ygrenzinger#CodingFastAndSlow

Quizz #1

• Linda a 31 ans et possède une maîtrise de philosophie. Etudiante, elle se montrait très préoccupée par les questions de discrimination et de justice sociale, elle participait aussi à des manifestations antinucléaires.

A. Hôtesse d’accueilB. Hôtesse d’accueil et active dans un mouvement féministe

@kawabytes @ygrenzinger#CodingFastAndSlow

Biais de représentativité

raisonnement basé sur les informations du texte

vsraisonnement logique et probabiliste

(loi d’inclusion)

@YourTwitterHandle@YourTwitterHandle@kawabytes @ygrenzinger#CodingFastAndSlow

Psychologie du Raisonnement

@kawabytes @ygrenzinger#CodingFastAndSlow

Induction Déduction

a a

b a -> b

a -> b b

Inférences

@kawabytes @ygrenzinger#CodingFastAndSlow

Evolution psychique

• Sensori-motrice (de 0 à 2 ans).

• Préopératoire : langage, dessin, symbolisme (de 2 à 6 ans).

• Opératoire : nombre, classes, logique concrète (de 6 à 10 ans).

• Formelles : hypothèses, déductions (de 10 à 16 ans).

@kawabytes @ygrenzinger#CodingFastAndSlow

Evans, Kahneman, Tversky

• Etudes scientifique des erreurs de raisonnement (Evans).

• Découverte des biais cognitifs, heuristiques (Kahneman, Tversky).

• Inductif ou déductif, nous faisons tout le temps des erreurs.

@kawabytes @ygrenzinger#CodingFastAndSlow

Biais cognitifs

• Sensori-moteurs

• Attentionnels

• Mnésiques

• Jugement

• Raisonnement

• Liés à la personnalité

@kawabytes @ygrenzinger#CodingFastAndSlow

Analyse, Conception

• Biais d’intérêt

• Illusion de savoir

• Biais de la tâche aveugle

• Effet Dunning-Kruger

@kawabytes @ygrenzinger#CodingFastAndSlow

Codage, Test, Debugging

• Perception sélective

• Dissonance cognitive

• Illusion des séries

@kawabytes @ygrenzinger#CodingFastAndSlow

Rétrospection

• Biais d’autocomplaisance

• Biais d’immunité à l’erreur

• Biais rétrospectif

Système 1

Système 2

Système 1

Système 2

@kawabytes @ygrenzinger#CodingFastAndSlow

Système 1

impressionsintuitions

sentiments

Système 2

croyancesactions volontaires

contrôle de soi

@kawabytes @ygrenzinger#CodingFastAndSlow

Quizz #2

• Toutes les roses sont des fleurs, certaines fleurs fanent vites, est-ce que certaines roses fanent vites ?

A. Non.B. Oui.

@kawabytes @ygrenzinger#CodingFastAndSlow

biais d’appariement

Fanent

Roses

Fleurs

@kawabytes @ygrenzinger#CodingFastAndSlow

Damasio, Houdé

• La prise de décision et le raisonnement implique tout le corps (Damasio)

• Les émotions comme le trait d’union entre le système 1 et le système 2 de Kahneman? (Houdé)

@kawabytes @ygrenzinger#CodingFastAndSlow

Système 3

• Fonction d’arbitrage

• Contrôle inhibiteur, guidage émotionnel

• Réconciliation de Piaget et de Kahneman

@kawabytes @ygrenzinger#CodingFastAndSlow

Pour aller plus loin..

• Développement de la compréhension du raisonnement

• Méta-cognition

• Automatisme + règles logiques, stratégie neuro-culturelle

@YourTwitterHandle@YourTwitterHandle@kawabytes @ygrenzinger#CodingFastAndSlow

L’art sombre de l’Estimation

@kawabytes @ygrenzinger#CodingFastAndSlow

L’estimation politique

@kawabytes @ygrenzinger#CodingFastAndSlow

Régression à la moyenne

@YourTwitterHandle@YourTwitterHandle@kawabytes @ygrenzinger#CodingFastAndSlow

Solution ?

@YourTwitterHandle@YourTwitterHandle@kawabytes @ygrenzinger#CodingFastAndSlow

La construction de la Réalité

premier ordre - objective

second ordre - subjective

lover

@YourTwitterHandle#DVXFR14{session hashtag} @kawabytes @ygrenzinger#CodingFastAndSlow

« quand je viens de finir les specs et que je n’y ai rien compris »

@kawabytes @ygrenzinger#CodingFastAndSlow

-Thomas Hora

«Pour se comprendre lui-même, l’homme a besoin d’être compris par un autre. Pour être compris par un

autre, il lui faut comprendre cet autre»

@YourTwitterHandle@YourTwitterHandle@kawabytes @ygrenzinger#CodingFastAndSlow

Solution ?

@YourTwitterHandle#DVXFR14{session hashtag} @kawabytes @ygrenzinger#CodingFastAndSlow

Behavior Driven Development

@kawabytes @ygrenzinger#CodingFastAndSlow

Exemples BDD Tests d’acceptation

Spécifications liées au domaine métier

se transforment

testentdécrivent

@YourTwitterHandle@YourTwitterHandle@kawabytes @ygrenzinger#CodingFastAndSlow

Le Flux, Néguentropie Psychique

Mihály Csíkszentmihályi - concept du flux

@YourTwitterHandle@YourTwitterHandle@kawabytes @ygrenzinger#CodingFastAndSlow

Solution ?

@kawabytes @ygrenzinger#CodingFastAndSlow

Rubber duck Driven

«debug their code by forcing themselves to explain it, line-by-

line, to the duck» - The Pragmatic Programmer: From Journeyman to Master

@kawabytes @ygrenzinger#CodingFastAndSlow

Pair programming

@YourTwitterHandle@YourTwitterHandle@kawabytes @ygrenzinger#CodingFastAndSlow

Three more things..

@kawabytes @ygrenzinger#CodingFastAndSlow

float InvSqrt (float x){ float xhalf = 0.5f*x; int i = *(int*)&x; i = 0x5f3759df - (i>>1); x = *(float*)&i; x = x*(1.5f - xhalf*x*x); return x; }

Modèle mental

Codeur

Mainteneur

@kawabytes @ygrenzinger#CodingFastAndSlow

Principes de design

• Affordance

• Contraintes

• Visibilité

• Association

@kawabytes @ygrenzinger#CodingFastAndSlow

Pour résumer

• Allez découvrir la psychologie et les sciences cognitives

• Ne perdez pas du temps à estimer mais mesurer en permanence

• Faites en sorte de réunir les deux niveaux de réalités que sont les codes et les besoins métiers

• Apprenez à gérer votre énergie et vos 3 systèmes dans votre vie de tous les jours

@YourTwitterHandle#DVXFR14{session hashtag} @kawabytes @ygrenzinger#CodingFastAndSlow

Pour aller plus loin …

@YourTwitterHandle@YourTwitterHandle@kawabytes @ygrenzinger#CodingFastAndSlow

Q & A

top related