C’est un fait, si en 1995 Internet était assez anecdotique (aaaah, la nostalgie des modems 56Kbps et de leur lenteur légendaire, sans parler de maman qui gueule dans le couloir parce qu'elle doit passer un coup de fil), aujourd’hui nos vies sont quasiment dirigées par notre hyperconnectivité compulsive. Ne fais pas comme si tu n’étais pas concerné en me fuyant du regard: tu vois ce smartphone que tu tiens dans ta main? Dès qu’une notification apparaît, tu sautes dessus la bave aux lèvres… Oseras-tu maintenant me dire que j’ai tort peut-être? 

Bref, dans ce contexte, quoi de plus normal pour toi de vouloir toi aussi te lancer dans l’aventure en devenant un acteur et non plus un simple spectateur. D’ailleurs, on le rabâche assez souvent ces derniers temps: il faut savoir coder et c’est facile de créer un site Internet ou une application Web. Ahem. Bah oui et non, alors calme bien vite tes ardeurs jeune padawan, il faut qu’on cause toi et moi!

Et va chez le coiffeur s’il te plait

 

Bien comprendre ce qu’est “être un développeur”

Alors, est-ce qu’il faut vraiment savoir coder quand on n’a pas vocation de devenir un jour développeur? Bah, de toi à moi, ce n’est vraiment pas primordial pour le commun des mortels, mais j’avoue que comprendre la logique de fonctionnement d’une application peut éventuellement t’aider à mieux comprendre le monde qui t’entoure, tout n’étant qu’une succession de choix, chaque choix entrainant forcément une réponse. Et bien dans une application, c’est tout à fait pareil: tu donnes des choix à tes utilisateurs et en fonction de ceux-ci, tu leur retournes un résultat adapté. Simple? 

Presque. Déjà, oublie rapidement cette légende urbaine qui laisse entendre que c’est facile de créer une application. Ce n’est ni plus ni moins qu’une insulte envers ce métier aux multiples facettes que tu convoites tant, car il y a de nombreux paramètres à prendre en compte avant de se lancer sans réfléchir. Alors certes ils te paraîtront anecdotiques mais au fur et à mesure que tu progresseras tête baissée dans ton projet, tu te rendras vite compte que tu auras oublié/négligé certaines choses qui vont tôt ou tard bloquer ta progression frénétique.

 Alors assieds-toi, prend un café et énumérons brièvement les 5 points primordiaux:  

  1. Définir son projet, sa finalité et son évolution
  2. Que veulent mes utilisateurs?
  3. Quelle techno choisir, quelle plateforme viser et où m’héberger?
  4. Architecturer son application: la logique et la base de données
  5. L’UI et l’UX, ce casse-tête permanent

 “Que 5 points? TROP F-A-C-I-L-E!” te diras-tu. Ne m’oblige pas à te frapper, toi et ton insouciance de débutant. Reste assis, ouvre bien grand tes oreilles et détaillons ensemble chaque point, tu vas vite comprendre qu’on ne devient pas développeur aussi facilement et que le boulot est loin d’être si simple.

 

Définir son projet, sa finalité et son évolution

Avoir une idée, c’est bien. Très bien même. Mais encore faut-il en cerner toutes les aspects pour bien démarrer, car vous êtes nombreux à penser que vous aller avoir l’idée du siècle, l’app ultime, celle qui fera autant de succès que Facebook, Instagram, Twitter ou Snapchat. Ca pourrait être le cas, je ne voudrais nullement briser tes rêves mais… t’es presque touchant de naïveté. 

On se fixe, on respire un grand coup et on se pose les bonnes questions (et prend aussi un carnet pour y placer tes notes, c’est important): que vais-je proposer, à qui vais-je m’adresser et comment cela pourrait évoluer? Ca te paraît niais, hein, pas vrai? Je suis d’accord, mais sache que si tu ne te poses pas les bonnes questions maintenant, tu vas difficilement pouvoir adapter ton application et de surcroit ta base de données en cas de changement de cap. 

 

Donc tu t’assieds s’il te plait (ça fait 3x que je te le dis), tu ouvres ce carnet et t’y poses les réponses à ces questions fondamentales. Tant qu’à faire, fait aussi une mindmap, c’est parfois très utile. Merci. C’est fait? On continue alors.

 

Que veulent mes utilisateurs?

Après avoir trouvé les réponses aux trois précédentes questions existentielles (prend ton temps, on n’est pas pressé), il faut maintenant basculer du côté obscur: celui de l’utilisateur. Oui, tu m’as dit que tu voulais être développeur, être acteur, devenir riche et gnagnagna, mais… STOP. On arrête les jérémiades tout de suite. 

C’est là un des points essentiels lorsque l’on développe une application: si on néglige l’utilisateur et sa réaction face à une application, tu vas droit dans le mur. Premièrement, tu vas devoir capter l’attention de ton utilisateur, non pas seulement grâce à ton idée de génie qui pourrait attiser sa curiosité et encore moins par l’effet “poudre aux yeux” de ton interface utilisateur au design léché. Non. Il va falloir le séduire en pensant comme lui, à anticiper le moindre de ses gestes, ses réactions douteuses et ses fantasmes les plus bizarres. Oui, c’est comme ça.  

En effet, un utilisateur n’a pas la même approche qu’un développeur. C’est ainsi. Rien de discriminatoire, hein, ne t’emballes pas, mais faut se rendre à l’évidence: nous n’avons pas la même logique! Les développeurs ont une approche binaire, l’utilisateur, lui, y va à l’instinct comme un gros bourrin. Pour lui, ça doit être simple et intuitif, ni plus, ni moins. 

Du coup, si ton idée génialissime est hyper complexe, je te conseille vivement de la morceler en ajoutant des nouvelles fonctionnalités au travers de mises à jour car, il faut le savoir, l’utilisateur adore les mises à jour (en fait, au début, il pestera en te maudissant sur 5 générations en criant avec la bave aux lèvres que c’était mieux avant, mais tracasse, il finira par l’accepter tôt ou tard, crois moi), preuve irréfutable que ton idée est vivante et qu’elle lui donnera encore bien des choses à découvrir.

 

Quelle techno choisir, quelle plateforme viser et où m’héberger?

Note: dans cet article, soyons bien d’accord toi et moi, je ne parle que des développeurs Web, ceux qui ont envie de monter un site Internet ou encore un webservice (qui pourrait se transformer en SaaS, etc…). 

Ne m’en veut pas si je bâcle un peu le sujet, car je risque de tomber dans le technique. Trop technique. Si vraiment tu veux qu’on en discute tous les deux, mendie dans les commentaires un article sur le sujet et n’oublie pas de faire une offrande journalière au créateur de ce blog. C’est important pour le traitement de ta demande. 

Si je me permets de bâcler, c’est parce qu’il existe des dizaines et des dizaines de possibilités pour donner vie à ton idée, autant de libertés qui peuvent s’avérer être limitative en réalité. En dehors de l’éternel combo HTML / CSS totalement indispensables pour le développement Web, je pense sincèrement que le choix du langage de programmation importe peu (ou presque) tant que tu trouves le framework (quitte à coder, autant ne pas réinventer la roue) dans lequel tu te sens à l’aise. Bon, évite quand même les langages exotiques, trop jeunes et faiblement utilisés, c’est toujours mieux d’avoir d’utiliser un langage qui possède une communauté active, l’idéal pour t’aider en cas de pépins!

Quant au choix de la plateforme, il n’est pas bien compliqué: tu t’adresseras à du mobile (smartphone / tablette) et du desktop (ordinateur / ordinateur portable, oui, je sais, c’est bizarre de dire desktop pour un ordinateur portable). Du coup, tu t’écrieras que tu as déjà la réponse toute faite pour répondre au besoin de tout ce petit monde: le responsive design! Bien, au moins tu connais le terme, c’est déjà ça. Pour les autres, derrière ce terme anglophone se cache une “technique” de développement qui permet de coder une interface qui s’adaptera automatiquement à votre écran. 

Wow, mais alors… Est-ce que le responsive design est LA réponse ultime pour les développeurs Web? Non. Ahahahah, désolé d’être aussi brutal mais il faut être honnête: là aussi, il faut être logique et réfléchir. Généralement, lorsque l’on code avec cette technique, on pense d’abord desktop puis on se dit que le responsive fera le reste pour le mobile. Erreur monumentale, qui accouche bien souvent de sites inexploitables sur un écran mobile. Crois-moi ou pas, mais c’est l’inverse qu’il faut faire: il faut d’abord penser mobile, puis adapter interface et contenu pour du desktop. Pour faire simple, puisque t’as pas l’air de me suivre: imagine de l’eau (ton contenu) dans un vase (ton contenant) puis essaie de verser toute cette eau dans un petit verre, en espérant que tout rentrera dedans. Tu saisis? Ca va déborder. ET C’EST DEGUEULASSE!  

Enfin, dernier point et non des moindres: l’hébergement de ton projet. Là encore, les possibilités sont vastes tant il y a de prestataires. Pas vraiment facile de s’y retrouver entre les types de serveurs (mutualisés, dédiés ou VPS), le type de base de données qu’ils proposent (SQL ou noSQL) ou encore le type de serveur Web (Apache, nginx), d’autant plus que le choix ne doit pas se faire à la légère, au risque de voir son site ou son application ramer sous la charge des utilisateurs. Puis vient alors l’achat du nom de domaine et la gestion des DNS pour que tout ce petit monde soit accessible au commun des mortels via l’échange de ta sacro-sainte URL. Ca va, t’es toujours avec moi?

 

Architecturer son application: la logique et la base de données

Pas de miracle: si tu n’es pas structuré dans ta tête, tu ne pourras jamais créer d’application Web. Jamais, tu m’entends. Tout est une succession de logique: tu proposes à ton utilisateur des choix et en retour, tu lui propose une réponse adaptée. Et soit certain d’avoir prévou tout les cas de figure car l’utilisateur final est ce genre de personne désagréable qui peut trouver, en quelques secondes à peine, un bug que tu n’aurais jamais soupçonné! 

Il faut donc bien délimiter toutes les actions possibles et les réponses à retourner, l’improvisation et la magie noire n’ayant donc définitivement par leur place dans le développement Web. Je te conseille de te mettre au pattern MVC qui te facilitera bien la vie, mais ne crois pas que c’est gagné. Le plus dur reste encore à faire: créer ta base de données!  

Je pense qu’on est paré à toute éventualité. Ou presque

C’est sans aucun doute le point le plus délicat. Il y a fort à parier que tu auras des données à stocker, tôt ou tard, alors autant s’y mettre tout de suite. Que vas-tu choisir? Utiliser des fichiers plats (AHAHAHA, quitte ce blog tout de suite et pourri dans les flammes de l’enfer s’il te plait et n’oublie pas de fermer la porte au passage, merci), faire du SQL ou te laisser séduire par le noSQL assez permissif sur les schémas? 

Peu m’importe que tu choisisses le SQL ou le noSQL. L’important, dans l’un comme dans l’autre, est de structurer avec précision le stockage de tes données, en créant les champs nécessaires avec le type qui va bien avec. Et gare à toi si tu mets du VARCHAR partout... 

Je te l’accorde, architecturer une base de données est très complexe. Mais c’est environ 60% du boulot, soit une raison de plus pour ne pas bâcler cette étape primordiale. Certains te diront à l’oreille que modifier une base de données est assez simple alors… YOLO. Non. C’est en réalité plus complexe et bien souvent risqué lors de la migration en production. Tu veux perdre tes données? Fonce, YODO.

 

L’UI et l’UX, ce casse-tête permanent

UI = User Interface (interface utilisateur)

UX = User Expérience (expérience utilisateur)

BIEN DISTINGUER LES DEUX. Pour ça, c’est très simple: l’UI, c’est le côté pimpant de ton application, l’UX, c’est l’utilisateur qui va te cracher à la tronche en te disant que c’est certes très joli mais totalement inutilisable. Oui, il est brutal et direct l'utilisateur.

Il faut donc concilier les deux et ne jamais succomber au charme des sirènes, comme l’est ce magnifique script qui permet de zoomer automatiquement sur les images quand on passe au dessus avec la souris (ceci n’est qu’un exemple parmi tant d’autres). En gros, ne jamais miser sur la poudre aux yeux et aux effets clinquant si ce n’est pas utile. 

Alors comment faire? Simple, il faut faire des études de cas réels, c’est-à-dire aller sur des sites / applications web qui ressemblent plus ou moins à ta super idée que tu veux développer. Attention, je te vois venir. Il ne s’agit pas de plagier ce que font les autres mais de cerner, en se mettant dans la peau de l’utilisateur, le juste milieu entre “c’est joli” et “c’est super intuitif” (tu te souviens du point n°2?). Là est toute la subtilité entre UI et UX. Les deux sont bien entendu indissociables, alors autant te faire à l’idée que tu vas perdre un temps fou à faire des tas mockups et de prototypes jusqu’à ce que tu saches savamment doser ces deux éléments.

 

Le mot de la fin

Ceci est un bref survol ce qu’est le métier de développeur Web, sans vraiment rentrer dans la technique et sans parler de la sécurité, un aspect pourtant évident que même les grosses entreprises négligent. A tort, on pense que le métier de développeur Web est très facile alors qu’il combine en réalité plusieurs compétences qui doivent travailler de concert. 

Sans prétention quelconque, ceci n’est pas la marche à suivre impérativement pour t’assurer le succès de ton futur site Internet / application Web, mais elle te permettra sans aucun doute de mener à bien ce projet dans lequel tu te lances.

Tags:

Fred Christian

Dans le monde de l’informatique depuis l’âge de ses 4 ans où il troqua sa sucette en plastique contre un tournevis puis son bavoir pour un livre de code, il est autodidacte de bout en bout et n’hésitera pas à partager avec toi sa passion pour peu que tu le paies en hectolitre de bières.

Commentaires

commentaires générés par Disqus

Article Précédent

Organisation

Retour de vacances : Mon guide de survie

Revenir au travail après les vacances peut s'avérer une expérience douloureuse. Heureusement qu'un guide existe.
Lire

Article Suivant

Organisation

Chronique d'un développeur anonyme

Ou comment j'en suis arrivé à m'interroger sur le métier de Développeur.
Lire

Recevez mes trucs & Astuces chaque semaine!

Abonnez vous à la newsletter et recevez les derniers articles directement dans votre boite aux lettres! Je déteste les spams aussi, donc pas d'inquiétude là dessus.
En Bonus : Vous recevrez également mon guide gratuit sur comment vous organisez efficacement au travail!