La force des contraintes pour les startups

L’été dernier j’ai observé mes enfants jouer aux LEGO à 4 avec des amies. Ils ont passé des heures à inventer des histoires. Le truc, c’est que comme nous étions en vacances ils ne disposaient que d’un nombre limité de briques au lieu d’avoir à leur disposition leur immense bac à LEGO. Résultat : au lieu de perdre des heures à chercher la bonne pièce et à passer du temps à construire sans objectif et sans fin claire, ils ont utilisé le peu de pièces à leur disposition pour raconter des histoires et jouer ensemble. Autrement dit, la contrainte du faible nombre de pièces disponibles les a naturellement poussés à faire preuve de plus de créativité, à agir et finalement mieux utiliser les LEGO !

Ce qui vaut pour un groupe d’enfants vaut aussi pour un groupe d’adultes. Sans contraintes, notre esprit est comme perdu au milieu d’un océan de possibilités. Et lorsque notre cerveau fait face à trop de choix, il se produit un phénomène psychologique connu : il renonce à choisir ; autrement dit, il se bloque.

Que se passe-t-il ensuite ? La discussion remplace l’action. Les participants passent leur temps à échanger pendant tout le temps disponible, et 5 minutes avant la fin se rendent compte qu’ils n’ont pas avancé. Sous la contrainte du temps devenue bien réelle, ils se dépêchent de formaliser quelque chose. Pour réellement libérer l’intelligence collective et la créativité d’un groupe, il faut leur imposer les bonnes contraintes.

La société Nest est un bon exemple de ce qui se passe lorsqu’il n’y a pas de contraintes ; rachetée par Google, cette startup qui avait lancé un thermostat intelligent1 a bénéficié d’un budget “quasi illimité” pendant plusieurs années. Résultat ? Presque aucun nouveau produit n’est sorti, des décisions très stupides ont été prises par les dirigeants, et les problèmes des produits existants n’ont pas été corrigés.

À l’inverse, beaucoup de bons produits ont eu des contraintes fortes dès le départ. Par exemple les concepteurs du TGV ont toujours fait très attention de minimiser le nombre de composants complètement nouveaux pour limiter les problèmes potentiels. La taille du Palm Pilot a été définie comme une contrainte dès le départ. L’équipe de développement du Macintosh était incroyablement petite pour un projet de cette envergure ; même aujourd’hui le budget du département R&D d’Apple reste bien faible2 par rapport à ses concurrents directs.

Autre exemple : lors de réunions, il est facile de s’enthousiasmer et d’avoir plein de bonnes idées. Faisons trois sites web ! On pourrait aussi faire des podcasts toutes les semaines ! Et aussi des vidéos sur Youtube ! Alors que dans la réalité ces personnes n’arrivent même pas à écrire un article court chaque mois. Avoir des idées est important, mais savoir en éliminer en faisant des choix contraignants l’est encore plus.

Ce phénomène n’épargne pas les startups. Beaucoup d’entre elles s’imaginent avoir touché les jackpot après avoir levé 1 million (d’Euros, de Dollars, de Patates, ça n’a pas d’importance). Tout d’un coup, un grand nombre de contraintes disparaissent. Elles embauchent à tour de bras, lancent des tas d’actions au retour sur investissement incertain, et 1 an plus tard elles se retrouvent de nouveau en manque de liquidités, mais avec des frais fixes qui ont explosé ! Certaines startups très connues que le grand public prend pour des succès phénoménaux sont en réalité dans une situation toujours précaire.

Aussi si vous créez un produit, un service, une startup, un nouveau projet, une question essentielle à se poser est : « quelles sont les bonnes contraintes qui vont nous aider à atteindre l’objectif ? » Les bonnes contraintes vont focaliser la startup, l’aider à trouver sa voie et à avancer plus vite et dans la bonne direction.


  1. réfléchissez trois fois avant d’acheter un produit qui se vante d’être capable d’apprendre tout seul le comportement désiré de l’utilisateur. [return]
  2. le budget R&D d’Apple a toujours été historiquement faible par rapport à la moyenne de l’industrie, même s’il a substatiellement augmenté ces dernières années. [return]

Test de solutions pour se connecter directement à Dropbox et OneDrive

Pour faire court, je ne recommande aucune des solutions testées. En effet, aucune de ces Apps n’est assez fiable et performante pour offrir un niveau de productivité satisfaisant.

Pourquoi utiliser une solution pour se connecter directement à Dropbox et OneDrive ?

Les Apps Dropbox et OneDrive officielles fonctionnent bien (l’App de Dropbox restant la plus fiable et la plus performante). Alors pourquoi diable vouloir utiliser une solution tierce ? Pour deux raisons :

  • Tout d’abord cela évite d’être tributaire de certains aspects peu plaisants des clients officiels. Par exemple Dropbox simule une fausse boîte de dialogue pour vous faire saisir votre mot de passe administrateur, un comportement totalement inacceptable.
  • Ensuite, les clients officiels vous obligent d’avoir une copie en local pour pouvoir travailler dessus. Résultat, vous avez beau disposer de 1 To dans le Cloud, vous êtes limité par votre maigre disque SSD de quelques centaines de Go.

Il est bien sûr possible de ne synchroniser que certains dossiers, et de laisser une copie des autres uniquement dans le Cloud. Mais que faire lorsque vous voulez accéder à ces documents fréquemment ? Passer par le client web est une solution, mais il serait bien plus agréable de pouvoir accéder à ces documents directement depuis le Finder, comme si on accédait à un serveur distant classique. Et c’est justement cette fonctionnalité qu’offrent les clients tiers.

Les candidats

Après avoir pas mal écumé différents sites, il s’avère qu’il y a trois candidats plus sérieux que les autres :

  • CloudMounter
  • ExpanDrive
  • Mountain Duck (basé sur Cyberduck).

Ces trois candidats font tous les trois la même chose : ils vous permettent de vous connecter à Dropbox, OneDrive et d’autres services Cloud directement depuis le Finder comme s’il s’agissait simplement d’un serveur de fichiers distant.

Les sous-doués se connectent au Cloud

Mais… Mais aucune de ces trois solutions ne fonctionne de manière satisfaisante.

CloudMounter se connecte, certes. Je n’ai pas relevé de dysfonctionnement majeur, certes. Mais… la vitesse de connexion est beaucoup trop lente pour être réellement exploitable. Il faut souvent attendre plusieurs dizaines de secondes, voire plus d’une minute pour simplement lister le contenu d’un répertoire. J’ai assez rapidement craqué et abandonné cette option.

ExpanDrive est de loin le plus rapide des trois candidats. Il utilise un mécanisme de cache local qui rend tout très rapide et agréable. Mais… il est rempli de bugs qui ne semblent jamais être corrigés malgré les mises à jour régulières. Par exemple, les caractères accentués vont poser problème sur les fichiers stockés dans Dropbox. Les opérations de copie et de suppression échouent régulièrement pour différentes raisons et lorsque cela arrive la seule solution consiste à aller effacer le cache manuellement. Malgré de nombreux essais je ne suis jamais parvenu à rendre cette solution fiable.

Enfin Mountain Duck s’appuie sur le moteur de Cyberduck, ce qui devrait être un gage de qualité. Malheureusement Mountain Duck souffre également de problèmes de lenteur rédhibitoires. En l’utilisant j’ai parfois eu l’impression d’être revenu dans les années 2000, où certaines opérations de copie déclenchaient systématiquement un gel complet du Finder et l’apparition de la roue colorée de la mort.

En l’état aucune de ces trois solutions n’est réellement exploitable efficacement au quotidien, je ne peux donc pas vous en recommander une. Cependant je garde espoir, et j’essaie régulièrement les nouvelles versions en espérant enfin trouver le Graal du Cloud.

Quelques notes supplémentaires

Cyberduck, déjà mentionné plus haut, offre une alternative viable mais finalement pas plus pratique que le client Web pour accéder directement aux fichiers stockés sur Dropbox. De plus Cyberduck (comme la prochaine version de Mountain Duck) intègre directement Cryptomator, la solution de chiffrage des documents dans le Cloud dont je parlais la semaine dernière.

Eltima, l’éditeur de CloudMounter, a un moment donné fait une promo sur son site pour MacKeeper, un pourriciel de la pire espèce. Cela ne me donne vraiment pas confiance dans cet éditeur, à tort ou à raison.

Enfin je garde un œil ouvert sur Transmit 5, la mythique nouvelle version du client FTP de Panic, qui pourrait intégrer ce genre de fonctionnalité.

La meilleure solution de chiffrage des documents dans le Cloud

Après avoir testé plusieurs solutions de chiffrage des documents dans le Cloud mon choix s’est porté sur Cryptomator. C’est une solution gratuite, rapide, fiable et offrant un bon niveau de sécurité tout en restant simple à utiliser. Cryptomator est également intégré à d’autres solutions comme Cyberduck et Mountain Duck. Elle est également open source, ce qui signifie qu’aucun éditeur ne pourra prendre vos données en « otage » d’un abonnement obligatoire.

Pourquoi chiffrer ses documents dans le Cloud ?

Stocker ses documents dans le Cloud, c’est potentiellement les mettre à la merci des hackers, qu’ils soient criminels ou supportés par un gouvernement. Ne croyez pas sur parole les communiqués des services comme Dropbox ou OneDrive qui vous disent que vos documents sont protégés ; pratiquement tous ont été victimes d’intrusions plus ou moins graves sur leurs serveurs. De plus leurs employés ainsi que certaines agences gouvernementales ont accès à vos documents.

Si les documents que vous stockez dans le Cloud ne contiennent pas de données sensibles, pas besoin de se prendre la tête, une solution de chiffrage supplémentaire n’est pas nécessaire. Mais si vous y stockez des documents contenant par exemple des coordonnées bancaires, des mots de passe ou des données de vos clients, il vaut mieux les chiffrer.

Le chiffrage est un sujet complexe, aussi je tiens à préciser que vos documents ne sont pas protégés dans le Cloud si vous avez chiffré vos documents localement avec une solution comme FileVault ou Bitlocker. Les documents envoyés dans le Cloud ne bénéficient pas de ce chiffrage.

Mon choix : Cryptomator

Après avoir testé différentes solutions, Cryptomator est actuellement la seule solution à satisfaire tous ces critères :

  • Être open source : s’il y a bien un domaine dans lequel l’open source a tout son sens, c’est dans celui du chiffrage ; en effet seules les solutions open source peuvent être garanties sans porte dérobée (et encore, normalement il faut dans ce cas aussi compiler le code source soi-même après avoir vérifié la signature des fichiers).
  • Multi plateforme : Cryptomator est disponible sur macOS, Windows, Linux, iOS et Android. Seules les versions iOS et Android sont payantes.
  • Offrir un mécanisme de chiffrage suffisamment solide.
  • Autoriser la synchronisation fichier par fichier, voire par bloc modifié. Une solution comme VeraCrypt qui impose de tout resynchroniser pour le changement d’un octet n’est pas utilisable.
  • Autoriser la gestion des conflits dans le cas où plusieurs utilisateurs modifient le même fichier en même temps.

Faiblesses de Cryptomator

La faiblesse principale de Cryptomator est que les fichiers chiffrés font la même taille que les fichiers non chiffrés. Sans être expert, cela doit fortement faciliter le cassage de la clé de chiffrage si un hacker possède une copie de fichier chiffrée et une copie non chiffrée. Normalement c’est un scénario qui ne doit pas se produire, mais si vous copiez des fichiers déjà présents dans Dropbox vers Cryptomator, alors Dropbox possédera une copie chiffrée et une copie non chiffrée du même document.

Les autres solutions

VeraCrypt est le successeur spirituel du célèbre TrueCrypt. Cependant la philosophie de conception de VeraCrypt en fait un outil destiné au chiffrage de disques locaux plutôt que de documents stockés dans le Cloud.

BoxCryptor existe depuis plusieurs années, et a un fonctionnement similaire à Cryptomator. Mais le code source est fermé et BoxCryptor nécessite un abonnement payant sans pour autant offrir de bénéfices par rapport à Cryptomator. De plus si la maison mère de BoxCryptor met la clé sous la porte vous n’aurez plus aucun moyen de récupérer vos données.

CloudMounter offre un mécanisme de chiffrage intégré, mais le code source est fermé et impossible d’avoir des informations sur l’algorithme de chiffrage utilisé. De plus l’accès à Dropbox depuis CloudMounter est insupportablement lent.

Cyberduck et Mountain Duck intègrent Cryptomator. Si pendant mes tests Cyberduck a bien fonctionné je ne suis pas parvenu à faire fonctionner Mountain Duck de manière satisfaisante, la connexion s’interrompant constamment lors des transfers.

Conclusion

Le niveau de sécurité par défaut de Dropbox ou OneDrive est suffisant pour des documents ne nécessitant pas de précautions particulières, mais insuffisant pour les documents sensibles : je ne recommande pas de stocker des coordonnées bancaires, mots de passe ou des données client sensibles dans le Cloud sans chiffrage complémentaire. De toutes les solutions que j’ai pu essayer, Cryptomator est celle qui offre le meilleur compromis facilité d’utilisation - sécurité.

Un script AppleScript pour envoyer tous les emails vers OmniFocus

Suite à mon article sur OmniFocus 2, un lecteur m’a demandé si je pouvais partager le script qui me sert à fusionner les boîtes de réceptions de Apple Mail et OmniFocus 2. Le voilà.

Attention 1 : à la première exécution le script va créer une tâche OmniFocus pour tous les emails dans la boîte de réception, si vous en avez beaucoup vous risquez de vous retrouver avec des milliers de tâches OmniFocus en plus ! Pour éviter ce problème, ne laissez pas vos vieux emails traîner dans la boîte de réception, déplacez-les vers un dossier Archive.

Attention 2 : n’exécutez jamais du code AppleScript sans en vérifier le contenu et la provenance, il peut être dangereux.

Attention 3 : vérifiez que vous comprenez ce que fait le script et que cela correspond à votre besoin. AppleScript requiert un certain niveau de connaissance technique. Je ne suis pas responsable de ce que le script peut faire sur votre machine.

use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions

property pLastID : 0
property pInboxName : "INBOX"
property pArchiveBoxName : "Archive"

on run
	
	set cbs to ASCII character 92
	set crt to ASCII character 13
	
	tell application "Mail"
		set theMessage to ""
		set theFlaggedMessages to ¬
			(messages of mailbox pInboxName of first account) ¬
				whose flag index is equal to 5
		if (count of theFlaggedMessages) is greater than 0 then
			repeat with theMessage in theFlaggedMessages
				set theTask to my findOmnifocusTask(theMessage)
				if theTask is missing value then
					set flag index of theMessage to -1
					my archiveMessage(theMessage)
				end if
			end repeat
		end if
		set theInbox to mailbox pInboxName of first account
		set theInboxMessages to ¬
			(messages of mailbox pInboxName of first account) ¬
				whose id is greater than pLastID
		
		if (count of theInboxMessages) is greater than 0 then
			delay 10
			repeat with theMessage in theInboxMessages
				set theSender to sender of theMessage as string
				set theSubject to subject of theMessage as string
				set theID to id of theMessage
				set theTitle to theSender & " — " & theSubject
				set theNote to ("message://%3c" & message id of ¬
					theMessage & "%3e" & crt & crt) as rich text
				set theNote to (theNote & content of theMessage)
				set theAttachments to ""
				set theAttachmentsCount to count of ¬
					mail attachment of theMessage
				if theAttachmentsCount is greater than 0 then
					set theMailAttachments to ¬
						mail attachments of theMessage
					repeat with theMailAttachment in theMailAttachments
						set theAttachments to theAttachments & ¬
							name of theMailAttachment & crt
					end repeat
					set theNote to ¬
						theNote & crt & crt & "Attachments:" & ¬
						crt & theAttachments
				end if
				set theTaskID to my makeOmniFocusTask(theTitle, theNote)
				-- set background color of theMessage to none
				set flag index of theMessage to 5
				set read status of theMessage to true
				-- my archiveMessage(theMessage) -- disabled, too buggy.
				set theID to id of theMessage
				if theID is greater than pLastID then
					set pLastID to theID
				end if
			end repeat
		end if
	end tell
	
end run

on findOmnifocusTask(theMessage)
	using terms from application "Mail"
		set theMessageID to (message id of theMessage) as string
	end using terms from
	tell application "OmniFocus"
		tell default document
			try
				set theTask to first flattened task whose completed is false ¬
					and note contains theMessageID
			on error
				set theTask to missing value
			end try
		end tell
	end tell
	return theTask
end findOmnifocusTask

on makeOmniFocusTask(theTitle, theNote)
	tell application "OmniFocus"
		tell default document
			set theTask to make new inbox task with properties ¬
				{name:theTitle, note:theNote}
		end tell
	end tell
	set theTaskID to "omnifocus://%3c" & id of theTask & "%3e"
	return theTaskID
end makeOmniFocusTask

on archiveMessage(theMessage)
	tell application "Mail"
		set theAccount to account of mailbox of theMessage
		set theMailboxArchive to item 1 of ((mailboxes of theAccount) ¬
			whose name is pArchiveBoxName)
		-- The following code did work too to move the message: 
		-- set mailbox of theMessage to theMailboxArchive
		move theMessage to theMailboxArchive
	end tell
end archiveMessage

Comment s’en servir ?

  • Lancer l’éditeur de Scripts (Script Editor en anglais, AppleScript Editor dans les anciennes versions de macOS)
  • Créer un nouveau script, copier-coller le contenu du script ci-dessus, et sauvegarder le script à l’endroit suivant dans votre répertoire utilisateur : /Bibliothèque/Application Scripts/com.apple.mail" (attention, je ne suis pas certain du nom du répertoire Application Scripts en français, si quelqu’un le connaît vous pouvez me l’indiquer sur Twitter ou par email). J’ai appelé le fichier de script rule → omnifocus-sendto
  • Créer une règle dans Apple Mail qui va lancer le script automatiquement.

Règle Apple Mail vers OmniFocus

Que va faire le script ?

Le script va créer une tâche dans OmniFocus pour tous les emails qui sont dans votre boîte de réception, et va leur ajouter un drapeau de couleur violette (la couleur d’OmniFocus) pour indiquer qu’une tâche correspondante a été créée.

À chaque fois que le script est exécuté (donc à chaque fois que vous recevez au moins un nouvel email), le script vérifie si la tâche correspondante dans OmniFocus existe encore ET n’est pas complétée. Si ce n’est pas le cas (la tâche a été complétée ou supprimée) alors le script enlève le drapeau violet de l’email et le déplace vers le dossier Archive.

Notes techniques

Les connaisseurs verront que je n’utilise pas la formulation recommandée on perform mail action with messages... pour déclencher le traitement. C’est simplement parce que elle est trop buggée, et ce depuis des années. Au lieu de cela j’utilise une technique pour identifier les nouveaux emails qui est de garder en mémoire l’ID du dernier email qui a été traité (pLastID).

Il y a une procédure nommée archiveMessage. Ne changez pas le script pour archiver le message dès sa réception ; il y a un bug dans Mail qui fait que certains messages risquent d’être perdus si vous le faites (je crois que c’est lié au fait que Mail archive le message alors qu’il n’a pas fini d’être chargé depuis le serveur, mais je ne suis pas certain).

Le storytelling ce n'est pas (que) raconter une anecdote personnelle

« Ta présentation doit faire plus storytelling, il faut que tu ajoutes une histoire personnelle ! »

Pour diverses raisons de nombreuses personnes assimilent aujourd’hui le storytelling au fait de raconter des anecdotes personnelles. Vous savez, du genre « j’étais en train d’éplucher les légumes lorsque tout à coup une idée me traversa l’esprit… » Pourtant le storytelling, ce n’est pas ça. En tout cas, ce n’est pas QUE ça.

storytelling ≠ anecdote personnelle

Tout d’abord il est possible de raconter une anecdote personnelle sans faire de storytelling. « Le 30 juin, je me suis levé, j’ai pris ma douche, j’ai pris mon petit déjeuner, constitué d’un bol de 25g corn flakes avec 30 ml de lait. » C’est une anecdote personnelle, mais ce n’est pas du storytelling. Ce n’est pas du storytelling car cette anecdote ne crée aucune émotion. Ça ne crée aucune émotion car ça n’a aucun intérêt. Il n’y a rien de surprenant, rien de nouveau, rien d’intriguant.

Mais surtout il est possible de faire du storytelling sans raconter d’anecdote personnelle. Chaque fois que vous surprenez le public, vous faites du storytelling. Chaque fois que vous captez l’attention du public, vous faites du storytelling.

Chaque fois que vous déclenchez des émotions et donnez du sens, vous faites du storytelling.

Hans Rösling est un excellent exemple de présentateur qui utilise le storytelling pour rendre des données chiffrées intéressantes. Il utilise de temps en temps des anecdotes personnelles, mais celles-ci ne sont jamais le cœur de ses présentations.

Hans Rösling

Voir les présentations de Hans Rösling sur TED

En conclusion ? Les anecdotes personnelles bien racontées sont une forme de storytelling, mais pas la seule. De fait une présentation basée uniquement sur des anecdotes personnelles sera peut-être intéressante, mais risque de manquer de hauteur et peut n’avoir pas beaucoup de sens pour le public. Le storytelling est beaucoup plus large, et englobe l’ensemble des techniques narratives qui donnent du sens, déclenchent des émotions auprès du public et rendent le contenu simple à comprendre.