new kiss, my *sspeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. ·...

47
KISS, my *SS ! Emmanuel Lécharny

Upload: others

Post on 24-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

KISS, my *SS !

Emmanuel Lécharny

Page 2: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

$ whoami

● 50 ans

● Concept, Atos, iMediation, IKTEK, Symas

● Apache committer depuis 2005

● Apache member depuis 2007

● Directory (LDAP), Mina (NIO), Fortress

(RBAC), Mavibot (BTree MVCC), Studio

(GUI), ...

Page 3: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

La dictature du simple

“Ce qui se conçoit bien s'énonce

clairement et les mots pour le dire

viennent aisément”

Boileau

Page 4: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

La magie du simple

“J’ai une démonstration véritablement

merveilleuse de cette proposition,

que cette marge est trop étroite pour

contenir.”

Fermat

Page 5: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

“Un million de chômeurs, c'est un million

d'immigrés en trop”

FN, 1978

De ‘Simple’ à ‘Simpliste’...

Page 6: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

De ‘Simple’ à ‘Simpliste’...

“Il faut faire payer les

riches !”

Page 7: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

voire simplet...

Des solutions de “café du

commerce”

Page 8: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Two systems

● Notre cerveau dispose de 2 systèmes

● Un basé sur l’intuition

● l’autre s’appuie sur la réflexion

● Nous privilégions le premier.

(Thinking, fast and slow, Daniel

Kahneman)

Page 9: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Exemple...

Ann

approached

the bank

Page 10: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

● A, B, C

● Ann va à la Banque

● 12, 13, 14

Pas d’ambiguité

Ce qu’on lit

Page 11: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

● A, B ou 13 ?, C

● Ann s’approche de la banque / bergE ?

● 12, 13 ou B?, 14

Mais...

Ann

approached

the bank

Page 12: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

● Notre cerveau élimine les ambiguités

● c’est contextuel

● Le choix est immédiat

● non conscient

● Réaliser la possibilité d’une ambiguité

demande un effort mental.

Vers le ‘simple’

Page 13: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

La réalité...

Notre monde est COMPLEXE

Page 14: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

La réalité...

Nous aimons la simplicité

Page 15: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

La matière...

● Eau, air, terre, feu (Empédocle, 430 BC)

● Atome (Milet, 420 BC)

● back to eau, air, terre et feu

● Atomes (Mendeleiev, 1869)

● Nucléons (Thompson 1897, Rutherford 1912)

● Quarks (Gell-mann, 1969)

● ???

Page 16: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Simple ?

● fermions (12) et anti-fermions (12)

○ leptons (6)

○ quarks (6)

● Bosons (12)

○ photon

○ Z et W+/W-

○ 8 Gluons

● Boson de Higgs, graviton (?)

Page 17: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Retour à nos ovins

Informatique

Page 18: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Le tri

● à Bulle, sélection, insertion : N^2

● Shell : N*log^2(N)

● fusion : N*log(N) externe

● Quick Sort : N*log(N) -> N^2

● introsort : N*log(N) en place

● Heap : N*LOG(N)

● Arbre : N*loG(N) -> N^2

● AVL : N*log(N)

Page 19: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Le tri, 2

● Quid de la mémoire ?

● Quid du support ?

○ bande magnétique

○ disk rotatif

○ SSD

Page 20: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Contraintes physiques

● CPU

● Mémoire (RAM, Disque)

● bande passante

Page 21: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Contraintes connexes

● Concurrence

● Complexité algorithme

● Défaillances physiques

● Diversité des OS/machines

Page 22: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Contraintes humaines

● Temps

● Environnement de développement

● connaissances

● Collaboration

● Communication

● Organisation

Page 23: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Darwin avait raison !

● Même en informatique, tout

change !

● Technologies

● Langages

● Avenants...

Page 24: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Pour aller plus loin

quelques exemples

Page 25: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

La concurrence

“What’s the best tool you find useful when

debugging a concurrence issue ?”

“LUCK”

Page 26: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

La sécurité

● Disponibilité

● Intégrité

● Confidentialité

● Traçabilité

● Authentification

● Non-répudiation, imputation

Page 27: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Cryptographie

“Anyone, from the most clueless amateur to the best

cryptographer, can create an algorithm that he

himself can't break. It's not even hard. What is hard is

creating an algorithm that no one else can break,

even after years of analysis. And the only way to prove

that is to subject the algorithm to years of analysis

by the best cryptographers around.”

Bruce Schneier

Page 28: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Quelque liens utiles

http://blog.cryptographyengineering.com/

https://www.schneier.com/

Page 29: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Les frameworks

● JS

● Web

● ORM

● Cache

● OS

Page 30: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Mais quel framework ?

● Web

○ Spring

○ Play!

○ Struts

○ JSF

○ Vaadin

○ ...

Page 31: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Le code...

● Langages

○ Java

○ JS

○ Python/Perl/Ruby

○ Shell

○ P/SQL

Page 32: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

L’effet taille

● Evolution ApacheDS :

○ 17/6/2004 : 84 810 slocs

○ 26/11/2014 : 765 588 slocs

○ ApacheDS, Ldap API, Mavibot, MINA,

Studio

Page 33: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

L’effet périmètre

● ApacheDS :

○ Base de données

○ Concurrence/Cache

○ ASN/1 codecs

○ OSGi

○ Kerberos

○ CLients

Page 34: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Un exemple, DN parser

● DN = Distinguished Name :

○ dc=example, dc=com

● élément de base dans un serveur LDAP

Page 35: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Un exemple, DN parser

distinguishedName = [ relativeDistinguishedName *( ',' relativeDistinguishedName ) ]relativeDistinguishedName = attributeTypeAndValue *( '+' attributeTypeAndValue )attributeTypeAndValue = attributeType '=' attributeValueattributeType = descr / numericoidattributeValue = string / '#' 1*hexpairstring = [ ( leadchar / pair ) [ *( stringchar / pair ) ( trailchar / pair ) ] ]leadchar = LUTF1 / UTFMBLUTF1 = %x01-1F / %x21 / %x24-2A / %x2D-3A / %x3D / %x3F-5B / %x5D-7Ftrailchar = TUTF1 / UTFMBTUTF1 = %x01-1F / %x21 / %x23-2A / %x2D-3A / %x3D / %x3F-5B / %x5D-7Fstringchar = SUTF1 / UTFMBSUTF1 = %x01-21 / %x23-2A / %x2D-3A / %x3D / %x3F-5B / %x5D-7Fpair = '\' ( '\' / special / hexpair )special = escaped / ' ' / '#' / '='escaped = '"' / '+' / ',' / ';' / '<' / '>'hexpair = HEX HEXdescr = keystringHEX = DIGIT / %x41-46 / %x61-66numericoid = number 1*( DOT number )number = DIGIT / ( LDIGIT 1*DIGIT )DIGIT = %x30 / LDIGITLDIGIT = %x31-39keystring = leadkeychar *keycharleadkeychar = ALPHAALPHA = %x41-5A / %x61-7Akeychar = ALPHA / DIGIT / '-'UTFMB = UTF2 / UTF3 / UTF4UTF0 = %x80-BFUTF2 = %xC2-DF UTF0UTF3 = %xE0 %xA0-BF UTF0 / %xE1-EC 2(UTF0) / %xED %x80-9F UTF0 / %xEE-EF 2(UTF0)UTF4 = %xF0 %x90-BF 2(UTF0) / %xF1-F3 3(UTF0) / %xF4 %x80-8F 2(UTF0)

Page 36: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Un exemple, DN parser

● V 1 : Antlr

● V 2 : à la main (perfs x 2)

● V 3 : à la main + Antlr (perfs x 2)

● Passage de 60% du temps consommé à 15%

Page 37: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Un exemple, DN parser

● Retour d’expérience :

○ Les outils sont pratiques

○ Ils ne sont pas performants

○ Ils évitent plein de bugs

○ 99 / 1 (et pas 80 / 20)

○ les tests, les tests, les tests !

Page 38: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

● V 0 : Basé sur Snacc (license privée)

● V 1 : règles de réécritures

● V 2 : Decodeur complet, avec switch the

grammaires : perfs x 20

● V 3 : Suppression des switches de

grammaires : perfs + 50%

● 2 personnes peuvent l’utiliser...

ASN/1 codec

Page 39: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Méthodologies

Agile !!! (WTF ?)

Page 40: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

I see it when I believe it

Question : How much do you agree in:

“Use of agile methods has caused a better performance when looking

at the combination of productivity and user satisfaction.”

Result :

The agreement in the claim depended on their previous belief in agile

methods

http://www.scm.keele.ac.uk/ease/magne_key.pdF

Page 41: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

I see it when I believe it

All values were

RANDOMLY

generated !

Page 42: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

TDD

● Comment faire avec 1M Slocs ?

● Qu’est-ce qu’on teste ?

● Comment teste-t-on ?

● Comment teste-t-on les tests ?

● Combien ça coûte ?

“Test-first fundamentalism is like abstinence-only sex ed: An unrealistic, ineffective morality campaign for self-loathing and shaming.” (http://david.heinemeierhansson.com/2014/tdd-is-dead-long-live-testing.html )

Page 43: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Kanban, Lean, XP, Scrum...

● Fabrique-t-on des voitures ?

● Stabilité vs Changement ?

● Où sont les experts ?

● Jusqu’où perdre du temps ?

Page 44: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Au final...

● On ne sait toujours pas construire des

logiciels de manière industrielle.

● S’il y avait une bonne méthode, elle s’

imposerait...

Page 45: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Baisser les bras ?

● L’expérience…

● La formation !

● La collaboration

● Les outils (NIH Syndrom !)

● Le recul

● Accepter la complexité comme un

paramètre de l’équation !

Page 46: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

C’est pourtant simple!

Accepter la

complexité

comme un paramètre

de l’équation !

Page 47: New KISS, my *SSpeople.apache.org/~elecharny/kiss-my-ass.pdf · 2015. 1. 28. · com/2014/tdd-is-dead-long-live-testing.html) Kanban, Lean, XP, Scrum... Fabrique-t-on des voitures

Q & R