Mon expérience de stage chez ekito et le projet Teamnews

| 13 minutes read

Si je ne me rappelle pas grâce à qui ou comment je suis tombé sur ekito, je me souviens ce jour-là avoir eu le sentiment de découvrir une entreprise plutôt singulière.

C’était il y a deux ans et je n’ai pas tout de suite saisi ce qu’il s’y faisait concrètement, car le site internet précédent mettait surtout l’accent sur le “conseil” – et surtout parce que je ne soupçonnais pas tout cet écosystème -, mais rapidement, je me rendis compte qu’ils cherchaient “simplement” à faire aboutir des projets divers et variés en ayant tous les spécialistes adéquats pour le faire.

J’ai suivi l’activité grâce à Twitter ou ici même sur ce blog, et à partir de là, j’étais déterminé à entrer en relation avec l’entreprise à un moment ou à un autre.
Ce fut ce mois de juin lors d’un stage beaucoup trop court, que j’ai pu constater de l’intérieur la rigueur de chacun dans une atmosphère détendue et mesurer l’implication de tous face à des projets qui sont, il faut dire, vraiment très captivants.

Une partie des clients d’ekito ont des besoins d’applications. Web, mobile… On trouve donc des développeurs, designers, ergonomes, tous confirmés, pour répondre à cette attente. D’autres clients, grands comptes ou startups, ont eux besoin d’apprendre des méthodes de travail pour se développer, d’être accompagnés sur un produit ou une idée, d’élaborer de nouveaux outils, etc… On a alors des architectes produits, des chefs de projets, des coachs agiles…

ekito fourni ainsi des solutions à forte valeur ajoutée en apportant son expertise et sa capacité à mettre en oeuvre. Il s’agit aujourd’hui de plus de 35 personnes.

Mais ce qui fait la singularité d’ekito, c’est un état d’esprit qu’il me semble avoir capté chez tous les gens qui y travaillent. Quelque chose d’entretenu par tous, de communicatif et qui forge l’identité de la société.

Disruptive Thinking

Il y a tout d’abord cette “tagline” dessous le nouveau logo qui caractérise à merveille son attitude : Disruptive Thinking.

ekito disruptive thinking

Disruptive c’est “prendre le droit quand on n’a pas le gauche”, c’est tout simplement venir bousculer le traditionnel et les usages en étant assez audacieux et captivant pour démontrer que ce que l’on défend est une évolution.
Le parcours étant semé d’embuches, notamment pour une startup (il est facile d’avoir des idées, mais beaucoup moins de les réaliser avec succès), il faut parfois ruser, faire le hacker. Alors ici, on cultive complètement le Workaround et le Do it Yourself.

Un exemple simple d’attitude disruptive :slide mêléeBenjamin, gérant d’ekito, a fait une présentation parmi d’autres acteurs du domaine sur l’accompagnement de startups au dernier salon La Mêlée Numérique à Labège.
La consigne était 3 minutes chacun sans vidéoprojecteur.
La solution : pas de chiffres ou de discours sérieux, mais des slides sous forme de pancartes sur lesquels sont dessinés les personnages d’une petite histoire contée par Benjamin (celle d’une startup qui rejoint ekito). Succès garanti.

Empathy

L’empathie est une autre valeur fondamentale chez ekito et cela pour plusieurs raisons :

– Faire les choses aussi bien que si on les avait faites pour soi-même !

– Pour comprendre le besoin de son client et adapter la solution sans autre motivation que de répondre efficacement à sa problématique.

– Pour s’inscrire dans une démarche de conseil et non de vente, initiative généralement récompensée par la fidélité et la réciprocité à être transparent.

– Pour créer des applications dont l’expérience utilisateur est une priorité.

– Pour motiver les équipes et les commerciaux qui ne sont pas sujets à de l’intéressement commercial, mais à la satisfaction client.

Comme tous les points suivants et précédents, celui-ci est directement lié aux méthodes agiles utilisées dans l’entreprise et qui visent à une satisfaction réelle des intéressés.

Et puis l’empathie c’est aussi se mettre à la place de quelqu’un qui n’est pas forcément au fait de tout ce que l’on sait. C’est par conséquent un partage sans retenu de ses connaissances caractérisé ici par l’activité de conseil et d’accompagnement, mais aussi par des événements gratuits ouverts à tous organisés dans les locaux sur des thèmes variés où chacun peut venir partager son expérience.


Lors du failchat de juin 2014 chez ekito

Confiance partagée

En dehors de l’aspect client et de son implication essentielle dans un projet, ekito a mis en place avec ses collaborateurs un certain nombre de pratiques visant à favoriser l’équitabilité, le partage, la productivité et le bien-être.

À savoir :

    • Il n’y a pas de hiérarchie, si ce n’est de compétences.
    • Dans la gestion des droits d’un projet, tout le monde est admin, et tout le monde a le droit de se tromper.
    • Il n’y a pas d’horaires fixes, le télétravail est contractualisé.
      Il est donné la possibilité de gérer son temps de manière autonome et responsable.
    • Le travail est collaboratif, tout l’espace de travail est ouvert (il n’y a q’une pièce fermée pour les rendez-vous). Les outils de communication et de mise en commun sont réellement utilisés.
    • Le travail n’est pas contrôlé, il n’ y a que le résultat qui compte.

Avec ce système, je peux vous dire que tout le monde est ravi de sa place et mesure la chance qu’il a.

Innovation

L’innovation est au coeur de la société. Tout le monde est un peu geek, mais est surtout passionné.

La veille technologique est quotidienne et les nouveautés sont scrutées, analysées, car elles sont les outils du lendemain. Véritablement.

Dans les locaux on trouve des iBeacons, des imprimantes 3D, des casques Occulus …
Dans les ordinateurs on trouve de la programmation fonctionnelle, du Scala, MongoDB, nodejs …
Et sur les murs … des post-its ! partout !

 

***

Teamnews

 

Lors de ce stage, il m’a été proposé de travailler sur un outil interne intitulé Teamnews que je vais maintenant vous décrire.

Tout le monde ici suit l’actualité de l’innovation, des nouvelles technologies ou de sujets informatiques spécifiques, que ce soit via Twitter, Scoop.it, avec des flux RSS ou d’autres medias, la veille fait partie du quotidien.

 

Au sein de l’équipe, partager cette veille pouvait constituer un formidable outil car, a priori, les intérêts sont communs. Cela pouvait faire naître de nouvelles idées et résoudre des problématiques en rapport avec l’activité de manière plus ciblée. Néanmoins, cela n’exclurait pas forcément la notion de “serendipity” car Teamnews serait d’abord, simplement, un partage de bons liens.

 

L’idée était donc de récupérer ces liens avec un résumé que chacun aurait eu la gentillesse de soumettre et d’en faire une newsletter dont la tagline à l’américaine était toute trouvée :

“the best content curated by your team”

[ Ça m’allait vraiment bien ce projet, fervent utilisateur de Twitter, il m’était même parfois arrivé de m’interroger sur de nouvelles formes de réseaux sociaux et de partage de l’information avec enthousiasme. ]

 

Bon. Il ne s’agissait pas de faire un Twitter-like (même s’il sera possible de poster des messages depuis cette plateforme), nous ferons un MVP et pourrons donc constater l’intérêt suscité grâce à des analytics.

 

Une première expérimentation avait été faite “tout en manuel”, en faisant simplement des échanges de mails sur la fin de semaine. Et il se trouve que selon cette expérience, le bon vieux mail restait le moyen le plus universel et efficace pour toucher directement les collaborateurs.

Voilà qui définissait assez ce qu’il fallait faire :

      • Solliciter les membres d’ekito pour qu’ils partagent leurs liens et résumés
        • soit par mail vers une adresse dédiée
        • soit en faisant la mention d’un compte spécifique dans un tweet (une notification serait alors envoyée par mail avec le tweet)
      • Scanner la boîte de réception du compte destinataire
      • Filtrer pour ne garder que les messages des gens de l’équipe et qui n’ont pas encore été publiés, arranger l’encodage, supprimer tout ce qui est signature, message en citation, etc. pour enfin afficher le résultat dans une page web dynamique.
      • Utiliser MailChimp, qui viendra prendre une “photo” de la page et l’enverra à une liste prédéfinie.


En faisant ça, la boîte de réception nous sert de base de données.
On peut aussi utiliser un simple fichier texte pour stocker le numéro d’édition.

En terme de langage, Teamnews est pour l’instant développé avec du HTML et du PHP. Un portage en node.js est en cours 🙂 .

 

schema teamnews

Le mail collecteur

Pour commencer, nous créons une adresse sur Gmail à laquelle nous appliquons d’entrée 2 filtres.

      1. Pour qu’aucun mail ne parte en spam, l’astuce est de faire une règle pour tous les messages qui nous sont destinés et qui ne contiennent pas une chaîne de caractères aléatoire – il y aurait plus simple, mais le wilcard * n’est plus supporté par gmail comme opérateur lorsqu’il est seul -.
      2. La seconde règle a pour correspondance from:-*@ekito.fr, -notify@twitter.com et a pour action de “ne pas afficher dans la boîte de réception”. Ainsi, nous n’obtenons que les messages des membres d’ekito et de Twitter dans cette BAL.

La page des messages

Les fonctions imap_open et imap_search récupèrent les mails à condition que le pare-feu de votre serveur puisse bien sûr accéder à celui des mails. Dans le cas de gmail :

$server = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX';

imap_fetch_overview nous permet d’accéder au sujet et à l’expéditeur du message, quant à imap_fetchbody il nous en fournit le contenu.

De là, quoted_printable_decode, imap_utf8, mb_convert_encoding, nous sont des fonctions bien utiles pour ajuster les différents encodages.

Vient ensuite une partie sensible, celle qui altère éventuellement le corps du message en supprimant des éléments dont nous n’avons pas besoin. Une signature est généralement annoncée par “– “, nous supprimons donc tout ce qu’il y a après cette chaîne à coup de substr et de strpos.
Quand ce n’est pas suffisant, nous faisons un explode du message et appel à arrayfilter.
Même principe pour des termes tels que “Envoyé avec“, “a écrit :“, “cordialement”, “@ekito.fr” …

Pour les messages bruts dont les liens ne seraient pas cliquables, il nous faut les détecter. J’opte pour le regex ultime mis au point par John Gruber.

 

Voilà donc cette page à laquelle nous pourrons ajouter quelques fonctionnalités comme l’affichage du gravatar associé à l’email, etc.
http://www.gravatar.com/avatar/hash_md5_de_lemail

MailChimp comme gestionnaire d’envoi de la newsletter

Fort de ses 2,5 millions d’abonnés, il fait figure de référence et offre un tas de possibilités, dont celle d’importer une page web pour en faire une newsletter.
Nous créons donc un modèle de campaign (c’est comme ça que s’appelle un email dans MailChimp) en précisant l’url à importer et la liste des destinataires.

Notez bien que tout l’intérêt réside dans le fait que le snapshot de la page est réalisé au moment de l’envoi.

Avant d’automatiser le processus, nous devons d’abord créer un script qui viendra manipuler MailChimp via son API. Nous lui demandons simplement de dupliquer notre modèle et de l’envoyer.
L’intro de la doc est plutôt décourageante :

“Are you a programmer? If not, go find one and send them here. Seriously, APIs are for nerds only.”

Nous voilà prévenus. Etant donné le nombre d’utilisateurs, le référentiel qui est très bien fait et les tas de ressources disponibles, cela ne s’avère en fait pas si complexe.

Avec un “wrapper” de l’API en PHP, mailchimp-api de Drew McLellan, et la clé d’API, nous voilà prêts pour faire le script.
En commençant par obtenir l’id du modèle avec cette ligne :
print_r($MailChimp->call('campaigns/list'));
puis en le dupliquant :
$replicate = $MailChimp->call('campaigns/replicate', array(
'cid' => 'xxxxxxxxx', // release model id
));

et enfin, en récupérant l’id de la campaign qui vient d’être créée pour l’envoyer de la même manière.

$send = $MailChimp->call('campaigns/send', array(
'cid' => $newcampaign_id
));

Automatisation

La dernière étape consiste à planifier une exécution régulière de ce script protégé par un htaccess/htpasswd sur l’espace d’hébergement. Nous utilisons setcronjob.com qui chaque semaine notifie de ses faits et gestes sur l’url
http://monlogin:monpass@monserveur.com/monrepertoireprotege/monscript.php

This is it.
Pour voir le résultat, vous pouvez consulter l’archive d’une précédente newsletter ou vous y abonner.
C’était un projet vraiment sympa et agréable à travailler. Je remercie Nicolas Deverge de me l’avoir proposé.

Le mot de la fin

Je voudrais terminer ce post pour remercier tout le monde chez ekito de m’avoir accueilli avec bienveillance et sympathie au cours de ce petit mois de stage. J’ai eu le sentiment de me sentir au coeur du monde numérique, là où l’on croise les développeurs passionnés, entrepreneurs ambitieux et startupers motivés. Là, où les enjeux de demain se décident et où je voulais être.

Dans les conférences auxquelles j’ai assisté cette année, que ce soit sur de l’innovation, des langages, TEDx etc…, ce qui revenait systématiquement en conclusion de chaque speech c’était : oser.
Oser partager vos idées, oser coder, oser faire les choses.
Et si j’ai fait quelques changements ces dernières années (dont celui de changer de métier) sans savoir ce que ça allait donner et en m’exposant davatange, je dois dire que je m’en réjouis aujourd’hui, notamment grâce à cette expérience chez ekito.
Tout ça m’incite à propager le message à mon tour et d’en remettre une couche. Allez, osez.

Share Button

Leave a Reply

Required fields are marked *.


CommentLuv badge