// Développez vos projets personnels !

Le lundi 30 septembre 2013 par David Brown

La plupart des gens ont des idées. L'avantage quand on est développeur, c'est que l'on peut les réaliser. Cependant relativement peu de gens le font. C'est quoi votre excuse ? :)

Ce que j'entends le plus souvent, c'est "je n'ai pas le temps". C'est sûr que quand on travaille à plein temps, qu'on fait du sport et qu'on a 3 gosses à la maison, ça peut être compliqué.

L'évolution de notre métier

De nos jours, nous utilisons de plus en plus de librairies et outils en tous genres. Si je dois implémenter un moteur de recherche par exemple, j'ai plutôt tendance à regarder du côté de Lucene (sauf besoin ultra-spécifique).

Nous avons la chance de disposer de nombreux outils open-sources bien pensés pour s'adapter à de nombreux besoins et paramétrables pour obtenir des performances élevées (souvent meilleures qu'un outil sur mesure, selon le temps que l'on dispose pour le développer). Nous devenons de plus en plus "intégrateurs de solutions".

Restez simples et amusez-vous

En utilisant ces librairies, il est possible de construire en un rien de temps des applications aux fonctionnalités poussées. Par contre, le but d'un petit projet personnel n'étant pas de réinventer la roue (ça tombe bien si vous n'avez pas le temps), les possibilités seront guidées par les librairies que vous trouverez... donc restez simples !

Cependant avec tout ce qui existe, vous aurez de quoi faire. L'important c'est de s'amuser en le faisant (si vous voulez devenir millionnaire avec votre projet, ce n'est pas forcément le bon billet à lire).

La veille technologique

Se tenir au courant de tous les outils qui sortent permet aussi de trouver de nombreuses idées. Par exemple j'aime bien tout ce qui touche à la cartographie ; à chaque fois que je vois passer un outil sur le sujet, je le note. Il y a quelques temps, j'ai ainsi vu passer un exemple assez cool d'utilisation de D3.js : Démo planisphère 3D interactif.

Puis récemment je suis tombé sur annyang une librairie visant à faciliter l'intégration de la reconnaissance vocale proposée dans Chrome. Ces deux librairies sont respectivement sous licence BSD3 et MIT, ce qui veut dire qu'on peut les utiliser, les modifier, les repartager à sa guise et même gagner de l'argent grâce à elles.

Ce que ça peut donner

J'ai combiné les deux librairies pour créer un petit jeu simple dans lequel je colore un pays sur le planisphère 3D et le but est de donner son nom à l'oral.

Le jeu a été créé en une après-midi. Il est très simple (largement améliorable), ne fonctionne que sous Chrome, mais si j'avais dû faire ça il y a quelques années, ça aurait été autrement compliqué.

Voilà donc ce que peut donner la combinaison de deux outils ! En gros j'ai deux méthodes : l'une qui choisit aléatoirement un pays et le colore, et l'autre qui vérifie que le pays énoncé correspond, incrémente le score, puis appelle la première méthode (30 lignes de code). Lien vers la démo / lien vers le code.

Lancez-vous !

Et vous quelles sont vos idées ? Là j'ai pris un exemple relativement simple. Si votre idée est plus ambitieuse, cherchez la première étape à réaliser. Si vous n'avez qu'une heure de disponible, alors voyez ce que vous pouvez déjà faire en une heure. Et surtout définissez dès maintenant quelle est la prochaine plage horaire où vous serez disponible ! Une fois lancé, ça roule tout seul.

Les avantages collatéraux

  • Si ça marche vous pouvez toujours complexifier et améliorer par la suite
  • Votre projet vous sert à vous auto-former
  • Vous communiquez vos centres d'intérêts et montrez que vous êtes passionné
  • Partager peut vous amenez à faire des rencontres intéressantes

// J'ai une idée, par où commencer ?

Le lundi 5 août 2013 par David Brown

Vous avez une idée d'application Web qui va révolutionner le monde ? Ok cool, mais vous ne savez pas par où commencer ?

Selon notre profil, plutôt marketing ou plutôt technique, on ne se pose pas les mêmes questions. Personnellement je suis du côté technique, mais je vais tenter de couvrir tous les aspects importants à mon sens.

Super idée

Parlez de l'idée autour de vous

En schématisant un peu, si vous avez une idée, il est probable que 1000 personnes dans le monde aient eu la même idée. Sur ces 1000 personnes, 100 vont y réfléchir pour en faire quelque chose, 10 vont réellement essayer, 3 vont aller au bout, et 1 seul va réussir. Le point, c'est que vous pouvez parler sans crainte de votre idée, la probabilité que quelqu'un vous la vole et réussisse est très faible.

Parlez de l'idée à des personnes venant de différents horizons, les différences d'approches de chacun permettent d'avoir une vision à la fois plus générique et plus précise d'un problème. Le fait de discuter de l'idée va permettre de trouver des pistes que vous n'auriez jamais eu seul et de la confronter à d'autres afin de l'affiner. D'ailleurs n'en parlez pas qu'à des proches qui pourraient avoir tendance à ne pas vouloir critiquer votre idée, cherchez les critiques positives.

Ecoutez les gens : ça a l'air bête mais nous interprétons souvent ce que les gens nous disent pour le transformer en quelque chose qui nous arrange. Pour tenter d'éviter cela, posez des questions ouvertes et écoutez les réponses sans guider la personne. Faîtes attention au vocabulaire utilisé, si possible notez ou enregistrez ce qui est dit, vous pourrez relire avec du recul et peut-être détecter des logiques récurrentes et des sens cachés.

Remarque au passage : ne parlez pas de vos objectifs, vous auriez une probabilité moins importante de les atteindre...

Etudiez un minimum votre cible client

Souvent quand on trouve une idée sympathique, on se met à chercher si elle peut être utile pour certains, et on se persuade que c'est le cas (si si, moi le premier, qui ne l'a jamais fait ?). C'est la meilleure manière de finir avec une application Web destinée à des gens qui utilisent peu l'internet, ou plus simplement, trouvent l'idée intéressante mais ne sont pas prêts à payer pour... (en voici un exemple).

Au minimum :
  • Prenez votre cible client (scindez-la en sous-groupes si nécessaire. Exemple pour des médecins : en cabinet / hors cabinet, dans une grande ville / petite ville...)
  • Oubliez votre produit !
  • Cherchez des informations sur votre cible : quelles sont leur occupations, leurs préoccupations, leurs valeurs, qu'est-ce qui peut leur faire perdre du temps / de l'argent ? Pour cela, il va falloir faire des recherches, interroger les gens, créer des sondages...
  • Est-ce que votre produit les aide à résoudre l'un de leurs problèmes ?

Dans l'analyse, il faut également distinguer le fait d'avoir un problème, d'un besoin, d'une demande. Si vous n'avez pas les deux premiers à ce niveau là, la route risque d'être moins simple que prévu.

Pour aller un peu plus loin que le minimum vital, vous pouvez chercher ce qui les influence, où se renseignent-ils, quel est leur ressenti par rapport à votre domaine ? Et pour une analyse en profondeur, trouvez un modèle de business plan et remplissez-le en détail. Vous pouvez également lire le Guide des Startups d'Olivier Ezratty, disponible sur son site.

En résumé, à ce point il vous faut au minimum avoir validé que vous répondez réellement à un problème et que des gens sont prêts à payer pour (et au mieux avoir déjà trouvé des clients).

Note : quand je dis "prêt à payer", j'inclus aussi "prêt à accepter de la publicité" ou "prêt à cliquer sur vos liens affiliés", selon votre tactique de monétisation, sachant que ces deux derniers cas demandent des affluences très importantes (plusieurs millions de visites par mois pour commencer à rentabiliser un site avec des bannières publicitaires).

Construire le produit minimum (MVP)

Le but maintenant est de construire l'âme de votre produit, autant sur les valeurs que vous voulez véhiculer (quelle est votre histoire personnelle qui vous a mené à traiter ce sujet ?) que sur l'âme au sens cœur, structure du produit.

Définissez la fonctionnalité phare et les fonctionnalités secondaires essentielles. Simplifiez-les au maximum pour définir votre MVP (Produit Minimum Viable) et lancez-le en version bêta. Cela a plusieurs avantages :

  • Vous lancez un produit simple : les utilisateurs comprennent plus facilement.
  • Si vous avez du mal à intéresser les utilisateurs, vous voyez le problème très vite.
  • Les utilisateurs qui participent à la construction de votre produit sont très importants : ce sont des gens engagés qui peuvent vous aider à véhiculer la vision que vous partagez avec eux.
website prototype

Note : autant il est intéressant de lancer rapidement une version bêta "bootstrappée", comme diraient nos amis outre-Atlantique, autant il faut soigner le design au maximum. Si vous n'avez pas de grands moyens, cherchez des thèmes préconstruits.

Chercher un financement ?

Chercher un financement n'est pas toujours un but en soi. Si vous en aviez vraiment besoin (financer de la R&D, de la publicité...) construisez si possible le MVP avant, vérifiez que votre cible est prête à payer pour votre produit (chiffres à l'appui), et seulement alors commencez à chercher un financement.

Je parle ici des financements pré-amorçage ("love money", prêts de proches, incubateurs...), mais de la même manière, plus vous aurez de preuves que votre idée peut être profitable, plus votre recherche de financements d'amorçage et développement sera facile par la suite.

Lancez-vous !

Ok donc vous avez une idée, plus ou moins facile à réaliser. Quelle est la prochaine action que vous devez réaliser pour cela ? Trouvez simplement le prochain objectif à atteindre, et lancez-vous... pas la peine d'essayer de prévoir tout ce qu'il peut se passer, vous ne le pouvez pas. Faîtes votre premier pas !

Deux intellectuels assis vont moins loin qu'une brute qui marche. Michel Audiard

// D'où viennent les bonnes idées ?

Le samedi 29 juin 2013 par David Brown
C'est une très vaste question sur laquelle je me penche aujourd'hui :)

Pour tenter d'y répondre, je vais m'appuyer sur le livre "Where good ideas come from - the natural history of innovation" de Steven Johnson (livre que je recommande vivement).
Vidéo TED et Vidéo Youtube où il explique ses concepts.

(Pour les retardataires qui ne connaîtraient pas TED, je vous encourage à visionner leurs conférences : les 20 conférences les plus regardées).
Nuage de mots créativité Nuage de mots créativité
Chance favours the connected minds. Steven Johnson

Le champ des possibles

Il arrive souvent que les mêmes découvertes se fassent indépendamment, à quelques années (voire mois) d'intervalle (Loi de Boyle-Mariotte, Loi d'Avogadro-Ampère, ainsi que de nombreuses autres). Selon la loi du "possible adjacent", de Kauffman, nous inventons à partir de ce que nous connaissons : au moment où toutes les théories fondatrices d'un nouveau concept sont "disponibles", ce ne serait alors qu'une question de temps avant que quelqu'un fasse la découverte suivante ; chaque découverte étend ainsi le champ des possibles. (Nous avons néanmoins quelques exemples de "sauts dans le temps" quand Léonard de Vinci dessine les premiers plans d'hélicoptères en 1486.)

Par analogie, si je veux construire un engin mécanique, il faudra que j'attende que toutes les pièces soient disponibles (ou que je les rende disponibles, en les créant). Par exemple, il arrive qu'un nouveau procédé de fabrication, un nouveau niveau de miniaturisation ou encore de nouveaux matériaux permettent des idées non réalisables auparavant.

Selon cette théorie, c'est en combinant les "pièces détachées" que nous innovons. Le but pour créer est donc d'une part de permettre l'échange des "pièces détachées" disponibles (au moins au niveau de chaque entreprise, sans vouloir rentrer ici dans des débats sur les brevets) et d'autre part d'encourager les nouvelles combinaisons de pièces.

Une partie du processus pour trouver une bonne idée consiste donc à connaître les "pièces détachées" qui sont à notre disposition. Un excellent exercice pour cela est de lire régulièrement toutes sortes d'informations (liées à votre domaine, mais aussi à de nombreux autres. Lisez des articles sur l'art, sur la psychologie, soyez curieux, regardez des conférences TED... :)).

Chaque idée est un ensemble de réseaux

Partons du réseau le plus bas dans l'apparition d'une idée : le cerveau, notre réseau neural. Il nous permet d'emmagasiner toutes sortes d'informations environnantes, puis de les filtrer, de les synthétiser, de les trier ("les ranger dans des petites boîtes") selon des critères qui sont propres à chacun. Toutes ces informations et ressentis sont combinables à volonté dans notre esprit. Sauf que nous n'opérons que peu d'associations car notre éducation et expérience nous entrainent à penser de la manière la plus rationnelle possible. (D'ailleurs nos rêves permettent de lever certaines limites : s'ils nous paraissent décousus, voire complétement fous, cela montre leur plus grande liberté.)

Réseau de neurones
Souvent quand une idée nous vient, nous parlons d'illumination, d'éclair de génie, de déclic. Mais cet "Eurêka" se construit à partir de l'ensemble de nos connaissances. C'est plutôt une sorte de pressentiment qui monte lentement. On perçoit qu'on touche quelque chose du doigt, mais sans arriver à le formuler, quand tout d'un coup tout s'éclaire. Comme exemple de ce phénomène, on peut citer Darwin, qui parle du moment où il a eu le déclic de sa théorie de l'évolution. Sauf que si l'on explore ses carnet (il notait précautionneusement toutes les idées qu'il avait), sans en avoir conscience il avait toutes les notions de la théorie en tête depuis des mois.

Le deuxième niveau de réseau est le réseau humain. Peu de grandes découvertes sont faites par des individus isolés (à part si elles sont dues à une erreur, j'y reviendrai). Au siècle des lumières on associe souvent les salons aux importantes avancées que les scientifiques notamment ont réalisées dans de nombreux domaines. Ainsi, dans l'entreprise, de nombreuses idées sont trouvées lors de réunions. Confronter une idée permet entre autres de l'affiner.

Le troisième niveau serait l'état de connaissance à l'instant donné (i.e. les "pièces détachées disponibles"), et on peut remonter à toute l'histoire qui converge pour créer le présent. L'idée à retenir, c'est que de nombreux facteurs rentrent en compte dans la genèse d'une idée, et que quand tous les éléments des réseaux sont en phase, l'éclair créatif jaillit.

Les réseaux liquides

L'image derrière les réseaux liquides est simplement qu'il faut "trouver un équilibre entre le solide et le gazeux" : si les éléments de nos réseaux (notre esprit, nos relations et nos connaissances) sont fixes (état solide), aucun élément nouveau ne pourra venir "compléter le tableau". A l'inverse, si tous ces éléments défilent à toute vitesse sans avoir le temps de considérer les combinaisons qui sont générées, aucune idée ne peut être créée.

Comment trouver des idées ?

Si l'on part de l'image des réseaux liquides, pour favoriser les idées le but est que notre esprit, nos relations et nos connaissances trouvent un équilibre entre "favoriser les échanges" et "prendre le temps de considérer les combinaisons".

Quelques pistes pour cela :

  • Faire tourner son cerveau : entrainer-vous à associer des idées, des concepts, des mondes différents (ici par exemple :)), prenez le temps de chercher des idées (au lieu de regarder la télé de temps en temps), libérez-vous (osez considérer les idées, même bizarres ou irréalisables au premier abord ; rêver et blaguer peut aider à lever les limites que l'on s'impose naturellement.)
  • Fixer ses idées : notez vos pensées (vous pourrez les relire par la suite, avoir une base pour croiser avec des idées nouvelles), notez également vos tâches à réaliser et utilisez un outil pour vous rappeler les dates butoirs (cela vous permettra de "libérer de la bande passante" au lieu de stresser et d'utiliser votre cerveau pour vous souvenir de tâches. Voir le concept de GTD.)
  • Développer son réseau relationnel : cherchez les rencontres avec des gens de différents horizons, profitez de l'effervescence des grandes villes (des études montrent que l'innovation est plus importante en proportion, notamment grâce au "Spillover effect"), favorisez l'échange d'informations dans les espaces de travail (tableaux blancs aux murs, cloisons flottantes pour s'adapter à chaque projet...)
  • Nouer des relations privilégiées : apprenez à écouter les autres (quels sont leurs habitudes ? leurs préférences/dégouts ? leurs petits soucis au quotidien ?)
  • Augmenter ses connaissances : lisez régulièrement tous types d'informations, de livres, soyez curieux, posez des questions, cherchez l'information de manière désordonnée (ne filtrez pas uniquement les flux qui vous intéressent : qui n'a jamais été attiré par la couverture d'un livre dans une bibliothèque alors que l'on cherchait autre chose.)
  • Maitriser certains domaines d'intérêt : *the last but not the least* soyez passionnés !

Les découvertes hasardeuses / Les erreurs

Comme je l'abordais plus haut, nous bridons inconsciemment notre esprit et nous nous interdisons de nombreuses combinaisons. Ceci car notre éducation, notre expérience nous indiquent qu'elles ne peuvent pas fonctionner. Pourtant certaines découvertes en chimie par exemple sont le fruit d'erreurs (flacon renversé, mauvais stockage...). Le fait d'être désordonné augmente la probabilité de la sérenpidité (ou « découverte hasardeuse ».)

Good ideas are more likely to emerge in environments that contain a certain amount of noise and error.

Parfois le fait de sortir de son environnement de travail habituel permet d'enrayer certains bridages qui y sont renforcés. Poincaré par exemple a eu de nombreuses idées lors de balades.

L'exaptation (l'adaptation d'une amélioration à un autre but)

L'invention du post-it est un très bon exemple de réutilisation d'une invention : tout a commencé par des recherches sur les adhésifs qui ont menées à la découverte d'une colle peu efficace (ce qui n'était pas le but recherché). Ce n'est que 15 ans plus tard, après plusieurs tentatives d'application de cette colle et essais de mise sur le marché que ses ventes explosent.

De manière plus générale, de nombreux domaines développent leurs propres modèles, méthodes, outils, paradigmes (représentation du monde, manière de voir les choses). Par exemple un neurologue connait le fonctionnement du système nerveux qui, selon Wikipédia, est "responsable de la coordination des actions avec l'environnement extérieur et de la communication rapide entre les différentes parties du corps". Certaines méthodes très spécifiques ont été inventées pour arriver à appréhender le fonctionnement de ce système. Mettons qu'un biologiste décide d'étudier une fourmilière comme une entité pensante (qui peut réagir à la présence d'un intrus et doit communiquer l'information à l'ensemble de la colonie), peut-il utiliser les outils (après adaptation) du neurologue ? Ou l'inverse ?

De nombreux problèmes rencontrés par des spécialistes d'un domaine ont été abordés par des spécialistes d'autres domaines. Cependant la transposition entre les domaines n'est pas toujours évidente (trouver les similitudes entre deux concepts étrangers peut être difficile), d'autant plus qu'il faut connaître un minimum l'autre domaine pour saisir les subtilités d'une approche.

All decisive events in the history of scientific thought can be described in terms of mental cross-fertilization between different disciplines. Arthur Koestler

D'où l'importance de mélanger les disciplines, les approches, les origines des personnes. Un outil permettant de conceptualiser un modèle d'un autre domaine est la métaphore structurante : imaginons que l'on cherche un concept innovant autour des transports en commun ; croisons avec un autre domaine, mettons le médical. J'ai envie de représenter une gare importante comme un cœur humain, qui, aux heures de pointe, "aspire" une grande quantité de gens, puis dirige le flux vers les extrémités du corps, puis recommence (l'analogie peut être approfondie, je m'arrête là pour l'exemple). Comment les vaisseaux sont-ils organisés ? Comment traite-t-on une embolie ? Peut-on appliquer ces mêmes schémas aux transports ?

Les plateformes

Créer un projet sous forme de plateforme est souvent intéressant. Une plateforme au sens "récif corallien" : ces derniers abritent 25% de la biodiversité marine en occupant moins de 0.1% de la surface des océans. Les récifs fournissent abri et nourriture à de nombreuses espèces qui s'adaptent et apportent des bénéfices en retour (nutriments...). Deux concepts associés sont les écosystèmes et la symbiose.

De nos jours, il n'est pas forcément nécessaire de tout maîtriser, de tout connaître pour développer une idée. Cela est très net dans le domaine de l'informatique : la possibilité d'utiliser de manière libre de nombreuses technologies favorise l'apparition de services. Exemple très commun, l'environnement LAMP (Linux comme système d'exploitation, Apache comme serveur, MySQL comme base de données, et PHP (ou Python, Perl) comme langage). Ces technologies servent de base à d'autres (Framework Zend, Symfony...), certaines prévues pour les non-développeurs (WordPress...). Ce phénomène est également de plus en plus courant au niveau hardware.

Exemples de plateformes

Le plus important au final est la notion de communauté : trouvez une formule qui permette aux gens de construire à partir de vos idées et que ceci soit également bénéfique pour vous. Prenez Android (basé sur Linux au passage) permet à de nombreux développeurs de construire et vendre des applications sur leur store (s'ils avaient dû trouver toutes les idées eux-mêmes, on n'aurait pas autant de diversité). Même chez Amazon, pour prendre un autre exemple, où ils savent qu'ils ne peuvent pas proposer tous les produits existants, ils permettent à chacun d'ouvrir leur boutique, élargissant ainsi leur catalogue.

En bref

Sortez faire une balade, cultivez votre intuition, écrivez tout ce qui vous passe par la tête (mais gardez vos notes désorganisées), cherchez à favoriser les découvertes hasardeuses, générez des erreurs, ayez plusieurs passions, fréquentez des clusters (et autres réseaux liquides), creusez vos idées, suivez les liens entre idées, laissez les autres construire à partir de vos idées, empruntez, recyclez, réinventez. Construisez votre récif corallien.


1 2 3