Man VS wild

On demande toujours à un développeur objet de concevoir des modèles objet logiques.
« Observez la nature, les objets autour de vous
pour faire une bonne conception objet » qu’il disaient.

Dans la théorie oui pace que l’informatique c’est modéliser le monde du vivant et reproduire son comportement.

Mais dans la vraie : que nenni !
Ok je veux bien que la Nature elle-même soit une immense source d’inspiration. Elle est tellement bien faite qu’on ne peut dire le contraire.
En revanche la logique du monde des humains est largement plus perfectible.

Je pars toujours de faits très anodins pour faire des analogies entre le monde réel et le monde numérique

L’autre jour j’étais de corvée de linge chez moi : je devais lancer le lave-linge.
Chose que je maitrise très bien (j’suis un homme moderne !).

  1. J’ai rempli le tambour avec les vêtements sales
  2. j’ai mis le curseur sur le bon programme.
  3. Enfin j’ai dosé la lessive et l’ai versé dans le réceptacle.

D’habitude je fais tout ça machinalement.
Mais cette fois-ci c’est sur cette 3e étape qu’un truc m’a frappé.

Le dosage :

C’est normal pour tout le monde de doser la lessive et la verser dans le réceptacle ou dans la boule.
Et pourtant ce scenario est totalement abérrant à reproduire tel quel en conception logicielle.
Et si même un jour quelqu’un fabrique un lave-linge innovant qui corrige cette aberration, je clamerai que ca n’a rien d’innovant.
Je dirai que ca aurait toujours dû être comme ca mais que le monde a mis du temps à s’en rendre compte.
Pas innovant par rapport à la logique de la Nature, mais innovante dans l’histoire écrite par l’homme.
C’est exactement comme la différente entre dissymétrie et assymétrie.

Pour revenir à notre histoire, en fait j’estime que le travail du dosage ca devrait pas être à moi de le faire.
C’est une opération complexe et qui suis-je moi humain pour faire ca.
Il faut à la fois que je m’occupe de le faire, que je sache bien doser, pour que la machine soit efficace
sans gaspiller du produit.

Si on suit un processus en génie logiciel, on affecte à chaque collaborateur les responsabilités qui lui sont naturellement endossables, à savoir:

– l’humain fournit le linge sale (matière à traiter) dans le tambour (collection privée)
– l’humain remplitde temps en temps la cuve de lessive (ressource, carburant)
– le lave linge doit savoir (calcul métier) quelle quantité de lessive (unité de valeur) il doit extraire de son réservoir (ressource)
– …en fonction du poids des vêtements (condition, critères) dans le tambour (collection); information remontée par la balance (service capteur).

Dans un monde idéal il est capable de rediriger le linge propre & trempé auprès du sèche linge (interopérabilité, découverte UDDI de services via descripteur WSDL).
Et le sèche-linge devrait implémenter un mixin d’eco-responsabilité : il devrait être capable de vider son eau non pas dans son bac de récupération d’eau, mais dans le récupérateur d’eau du jardin (urbanisation de services, out-of-the-box thinking).
Bon déjà le sèche linge a une faculté intéressante : un capteur (service) sonde la température dans le tambour afin de stopper le cycle de séchage quand le linge est sec, au lieu de le faire tourner bête et méchant jusqu’au terme préprogrammé .

class LessiveController
{
    public void doTaskAction(User moi, Buanderie buanderie)
    {
        moi.addToTambour(buanderie.panier.lingeSale);
        Dose dose = moi.calibrateDosage(buanderie.getBidonLessive(), buanderie.getBouleDeLessive());
        moi.verserDose(dose);
        moi.setProgrammeLavage();
        moi.pushButtonStartLavage();
    }
}

 

Si mon anecdote ne vous parle pas trop, j’ai un exemple beaucoup plus évident :

vous mangez un sandwich : est ce que vous vous attendez à ce que votre estomac vous demande quelle est la quantité d’acide gastrique il doit sécréter pour digérer votre sandwich ?
Ben non bien sur, vous estimez que « ca se fait tout seul » parce que derrère ce « ca se fait tou seul » c’est le c’est le job du système neuro-végétatif.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s