Les programmes informatiques sont partout, dans nos voitures, nos téléphones, notre électroménager. Tous les domaines professionnels sont peu ou prou impactés par ces programmes. Le monde est chaque jour plus numérique et chaque jour apparaissent de nouveaux logiciels. Les entreprises, les particuliers demandent toujours plus de logiciels. Et si vous aviez l'idée du siècle, pourquoi ne pas essayer de développer votre propre programme ? Donc, n’hésitez pas à entrer dans l'univers de la création de logiciels, et de vous informer à propos des langages de programmation, de la phase de test et enfin de la finalisation du produit. Bonne chance !

Partie 1
Partie 1 sur 6:
Trouver une bonne idée de programme

  1. 1
    Commencez par une séance de remue-méninges. Le bon programme est celui qui va servir à accomplir une tâche qui facilite ou améliore la vie des gens, des entreprises… Commencez par jeter un coup d'œil aux programmes déjà existants dans le domaine que vous visez et voyez s'il y a une possibilité d'amélioration, d'extension. Le bon programme est celui que les autres vont trouver intéressant ou utile.
    • Vous avez un ordinateur, regardez les tâches qu'il accomplit déjà. N'y aurait-il pas un programme (à définir !) qui faciliterait telle ou telle tâche ?
    • Inscrivez toutes les idées qui vous viennent à l'esprit. Même si elles semblent surréalistes, déplacées, voire débiles, il est possible que cela débouche sur une grande idée.
  2. 2
    Examinez de près ce que font les autres programmes. À quoi servent-ils ? Peuvent-ils être améliorés ? En quoi sont-ils défaillants ? Si vous trouvez des réponses à ces questions, vous pourriez bien trouver une idée de programme.
  3. 3
    Dressez un avant-projet. Ce document servira à mettre en avant les principales caractéristiques du programme et vos objectifs. Ce document doit être utilisé tout au long du développement, ainsi vous resterez bien sur votre projet, vous ne vous éparpillerez pas. Lisez ce guide sur la façon de construire un avant-projet. À ce stade, quand le document est à peu près bouclé, vous allez vite voir le langage que vous allez devoir utiliser.
  4. 4
    Commencez petit. Vous avez à peu près votre idée de programme en tête, commencez petit. Ne vous lancez pas dans un programme aux fonctionnalités complexes et multiples ! Vous apprendrez beaucoup plus avec un petit projet qui aboutit qu'avec un projet ambitieux qui échouera.
    Publicité

Partie 2
Partie 2 sur 6:
Apprendre les langages informatiques

  1. 1
    Utilisez ou téléchargez un bon éditeur de texte. Un programme s'écrit dans un éditeur de texte, puis les lignes de code sont compilées pour qu'elles puissent être exécutées. Vous pouvez utiliser des éditeurs classiques, genre Notepad ou TextEdit, mais nous vous conseillons de prendre un éditeur dédié à la programmation comme Notepad++, JEdit ou Sublime Text. Avec eux, la syntaxe est mise en valeur par des couleurs et l'on voit mieux ce que l'on fait. Parfois, la syntaxe s'affiche toute seule ou presque !
    • Certains langages comme le Visual Basic sont à la fois des éditeurs et des compilateurs.
  2. 2
    Apprenez un ou plusieurs langages de programmation. Tous reposent sur des lignes de code qui respectent une certaine syntaxe. Il vous faut en connaitre (et parfaitement !) au moins un. Bien évidemment, il faut maitriser le(s) langage(s) qui va(vont) vous servir à développer votre programme. Voici les langages les plus fréquemment utilisés en informatique.
    • Le langage C. C’est un langage assez élémentaire, car très ancien. Il sert à faire tourner votre « hardware » (votre matériel : l'UC, les périphériques, etc.). Certes, il est ancien, mais il est encore bien répandu et il a des défenseurs.
    • Le langage C++. L’inconvénient majeur du C, c'est qu'il n'est pas orienté objet. C'est là qu'intervient le C++ qui, lui, l'est. C'est aujourd'hui le langage le plus utilisé au monde. Les logiciels célèbres comme Chrome, Firefox, Photoshop et bien d'autres sont développés en C++. Il est également très utilisé pour développer des jeux vidéos.
    • Le langage Java. C’est en quelque sorte un C++ évolué, car il est multiplateforme. Pratiquement tous les ordinateurs, quels que soient leurs systèmes d'exploitation (Mac, PC, Linux), peuvent faire tourner ce qu'on appelle une JVM (Java Virtual Machine), laquelle permet de lire n'importe quel programme en Java. Ce langage est très largement utilisé dans le monde de la conception des jeux vidéos et des logiciels professionnels. C'est la raison pour laquelle on vous incite fortement à le connaitre et à le pratiquer.
    • Le langage C#. C’est un langage orienté Windows et assez logiquement, c'est lui qui sert à faire tourner tous les programmes Windows. Il est assez proche du Java et du C++. Si vous connaissez déjà Java, vous n'aurez aucun mal à maitriser C#. Si votre projet est de faire un programme pour Windows ou Windows Phone, assurément, c'est ce langage qu'il vous faut.
    • Le langage Objective-C. À l'image du langage précédent, on a ici un langage, cousin du C, qui sert à programmer les appareils Apple. Vous avez dans l'idée de développer une appli pour l'iPhone ou l'iPad, c'est ce langage qu'il faut.
  3. 3
    Téléchargez un compilateur ou un interpréteur. Une fois les lignes de codes rédigées, la plupart du temps, il faut un compilateur pour « traduire » ces lignes afin que l'ordinateur puisse les exécuter. C'est vrai des langages sophistiqués comme le C++, Java, etc. Les compilateurs varient selon les langages [1] .
    • Certains langages sont exécutables immédiatement sans le recours à un compilateur. Ils sont interprétés sur la machine directement. C'est le cas, par exemple, du Perl et du Python.
  4. 4
    Familiarisez-vous avec les grandes commandes de votre langage. Quel que soit le langage choisi, vous allez vous retrouver en face de commandes qu'on utilise sans cesse. La disposition, la syntaxe varient d'un langage à l'autre, mais le concept lui-même demeure. Sans une parfaite maitrise de ces concepts de base, vous ne pourrez jamais aboutir. Voici les plus courants.
    • La déclaration des variables. Les variables sont des valeurs qu'on déclare en premier dans le code et elles servent ensuite, plus ou moins, lorsqu'elles sont appelées. Ainsi on peut mettre en variable des prix, des distances, des notes, bref, tout ! Ces valeurs peuvent être stockées, modifiées, additionnées, concaténées, etc.
    • Les conditions (« if, else, when », etc.). Ce sont des concepts fondamentaux quand on programme. Ainsi, si vous décidez d'arrêter votre programme au bout de 10 calculs, par exemple, vous coderez une fonction qui stoppera le logiciel au bout de 10 opérations (« if x=10, then exit »). Côté ordinateur, ces conditions reçoivent une réponse « true » (le programme passe à autre chose) ou « false » (le programme continue).
    • Les boucles (« for, goto, do », etc.). Elles permettent de faire exécuter à l'ordinateur une commande, un certain nombre de fois. Il y a également une instruction pour stopper la boucle.
    • Les séquences d'échappement. Ce sont des séquences de quelques octets ou caractères qui permettent par exemple de faire apparaitre des caractères spéciaux (comme le « tilde » espagnol), de créer un retour à la ligne, etc. Une des séquences les plus connues est la séquence ASCII.
    • Les commentaires. Quand on programme sur des centaines, des milliers de lignes, il est bon de savoir à quoi correspond telle ligne ou tel groupe de commandes. Aussi, dans tous les langages, il est possible de rédiger des commentaires en fin de ligne de code. Ils ont une syntaxe qui n'est pas interprétée, c'est uniquement pour vous, pour pouvoir modifier votre code.
    • Les expressions régulières. Elles composent le corps du langage.
  5. 5
    Apprenez ces langages dans des livres. Il y en a pour tous les langages et pour tous les niveaux, du plus simple au plus complexe. Ils s'achètent chez tous les bons libraires spécialisés ou en ligne. Ce qu'il y a de pratique avec les livres, c'est qu'on les a sous la main dès que se profile une difficulté.
    • Sinon, il y a Internet. C'est par dizaines de milliers que se comptent les cours, les tutoriels, les vidéos dédiés à la programmation. Tous ne sont pas d'un bon niveau ni très clairs. Cependant, nous vous conseillons les sites suivants : CodeAcademy, Code.org, Bento, Udacity, Udemy, Khan Academy, W3Schools …
  6. 6
    Suivez des cours (particuliers ou en classe). Avec de l'assiduité et de la persévérance, on peut en effet apprendre par soi-même, mais il est des cas où un bon professeur peut vous faire gagner beaucoup de temps. Dans le même temps, sur des concepts difficiles, on apprend aussi beaucoup mieux. Tant qu'à suivre des cours, vous pouvez aussi vous inscrire à des cours de maths appliquées et de logique, cela vous sera très utile pour plus tard.
    • S'inscrire à des cours coute une certaine somme. Veillez à ne suivre que des cours qui vous seront d'une réelle utilité.
  7. 7
    Posez des questions. Internet est un incroyable moyen de dialoguer, d'échanger avec d'autres développeurs. Si vous êtes en face d'une impasse, décrivez clairement vos difficultés dans des forums ou sur des sites comme StackOverflow. Faites cela de façon intelligente, expliquez que vous avez essayé ceci et cela, mais que ça n'a pas marché. Vous verrez, il y aura toujours quelqu'un de serviable qui vous tirera d'embarras !
    Publicité

Partie 3
Partie 3 sur 6:
Construire un prototype

  1. 1
    Commencez par faire un programme simple. Il doit tourner autour de quelques fonctionnalités essentielles (le cœur du programme). On doit déjà y trouver les fonctions principales qui répondent à l'objectif que vous vous êtes fixé. Le prototype est un petit programme qui vous servira de base jusqu'à ce que vous lui trouviez un design final. Par exemple, vous avez décidé de faire une sorte de calendrier. Votre prototype devra être à la base un calendrier tout simple (avec les bonnes dates !) dans lequel il est déjà possible d'incorporer des évènements.
    • Un prototype, par définition, change sans cesse tout au long du développement du projet. Il change parce que vous avez dû surmonter une difficulté ou parce que, en cours de route, vous avez eu une nouvelle idée.
    • Un prototype a toujours quelque chose d'inachevé, il n'est pas très beau et c'est normal. Pour l'instant, tout ce qui est habillage, design, est le dernier de vos soucis. L'essentiel est que le programme tourne correctement et accomplisse sa tâche. Pour rester sur l'exemple du calendrier, votre prototype peut très bien n'afficher que du texte.
    • Si vous êtes en train de faire un jeu, il doit être divertissant, non ? Donc, votre prototype inachevé devrait l'être déjà. S'il ne l'est pas, faites un autre prototype.
    • Si, à ce stade, des éléments, de base donc, ne fonctionnent pas, il est inutile d'aller plus loin : il faut soit résoudre ces problèmes, soit changer de projet.
  2. 2
    Réunissez une équipe autour de vous. Si vous développez un programme tout seul et que vous désirez travailler en groupe, faites un prototype de répartition des tâches. Une équipe permet de repérer plus rapidement les bugs, de cerner les séquences redondantes, mais pourra aussi vous aider à concevoir ou améliorer l'architecture et l'aspect visuel du programme.
    • Pour un petit programme, il est vrai qu'une équipe n'est pas fondamentale, mais si vous en avez constitué une, vous allez gagner beaucoup de temps.
    • La constitution et la direction d'une équipe de programmation ne sont pas une simple affaire. Il faut des connaissances pour gérer les ressources humaines et structurer une équipe. Consultez ce wikiHow pour plus d'informations.
  3. 3
    Repartez de zéro si nécessaire. Maintenant que vous maitrisez parfaitement tel ou tel langage, vous allez être capables de construire des prototypes très rapidement, en quelques jours, voire moins. Comme ils sont faciles à faire et que vous codez vite, n'ayez pas peur de construire d'autres prototypes qui prennent le même problème, mais sous un autre angle. Et si vous abandonnez l'un d'entre eux, vous aurez moins de regrets, il vous restera les autres. S'il est une phase durant laquelle il vaut mieux tout changer, c'est maintenant. Après, ça deviendra plus compliqué.
  4. 4
    Mettez des commentaires dans votre programme. À l'aide de la syntaxe appropriée, commentez toutes les parties essentielles de votre programme. Soyez explicites ! En fait, ces commentaires servent toujours, surtout quand quelque chose « cloche ». Ils vous serviront personnellement quand vous aurez besoin de trouver où se trouve le codage de telle ou telle partie, mais ils aideront aussi les développeurs qui viendront à votre secours. Ces derniers comprendront alors vite la structure de votre programme. Si vous travaillez en équipe, ces commentaires sont obligatoires. Quoi qu'il en soit, ils ne sont jamais une perte de temps.
    • Les commentaires peuvent aussi servir à désactiver certaines parties du code durant les tests, surtout si ces derniers sont un peu longs. En effet, il est inutile de faire exécuter certaines parties du programme si vous savez qu'elles fonctionnent parfaitement. Encapsulez donc ces passages dans une syntaxe de commentaires. Ainsi, le compilateur les laissera de côté. Quand vous finaliserez votre programme, il suffira de retirer ces commentaires pour retrouver l'intégralité du code.
    Publicité

Partie 4
Partie 4 sur 6:
Procéder à la phase d'alpha test

  1. 1
    Formez une équipe de test. Au stade alpha, votre équipe de test doit être restreinte. Avec un petit groupe, vous allez recevoir leurs commentaires ciblés et vous pouvez également avoir des échanges fructueux avec chacun d'eux. Vous allez ainsi modifier votre prototype et le leur renvoyer à tester. De leur côté, les testeurs vont essayer les nouvelles fonctionnalités et déceler les failles. Ils vous feront un rapport sur ces dernières.
    • Si vous êtes en train de développer un programme commercial, vous devez faire signer à chacun de vos testeurs un contrat de non-divulgation. Ils s'engagent alors à ne rien dire de votre projet à aucun moment et à qui que ce soit (autres développeurs, presse). De même, ils s'engagent à ne pas pirater pour leur compte votre idée.
    • Accordez-vous du temps pour bien planifier votre phase de test. Mettez en place un moyen pratique et rapide avec lequel vos testeurs auront accès à vos versions alpha successives et, en retour, vous communiqueront leurs résultats. Ayez recours à des sites comme GitHub pour gérer cet aspect des choses.
  2. 2
    Testez votre prototype encore et encore ! Les bugs sont évidemment la hantise des développeurs. Il y a les erreurs de codage, de syntaxe, des effets inattendus, etc., qui rendent un logiciel inopérant. C'est la raison d'être des tests. On ne laisse jamais de côté une erreur, il faut absolument y remédier. Quand on corrige un bug, on en profite aussi pour voir s'il n'y aurait pas d'autres faiblesses du même genre.
    • Par exemple, si l'on reprend l'idée du calendrier, essayez de mettre de fausses dates ou des dates dans le futur pour voir ce que ça donne. Tentez le diable !
    • Entrez exprès de mauvaises valeurs. Par exemple, si vous avez un formulaire dans lequel il faut rentrer un âge, entrez un mot et voyez ce que ça donne.
    • Si votre programme a une interface graphique, cliquez sur tout ce qui est censé être actif. Voyez si tout se passe bien quand vous revenez en arrière ou si vous devez taper une série de boutons. Tout doit être vérifié plusieurs fois dans des conditions différentes.
  3. 3
    Classez les bugs par ordre de priorité. Quand on corrige un programme durant la phase alpha, on passe beaucoup de temps à rectifier ce qui ne va pas. Demandez à vos testeurs de classifier les erreurs selon deux critères : celui de la gravité et celui de la priorité.
    • Par gravité, on entend les dommages que cause le bug en question au programme. Ainsi, un bug qui fait planter le programme, qui détruit des données, qui empêche le programme de tourner peut être catalogué dans la rubrique « bugs de classe A ». Celui qui renvoie des réponses fausses ou qui empêche telle ou telle fonctionnalité sera catalogué en « classe B ». Celui qui rend difficile l'utilisation d'une fonctionnalité ou pose un problème au niveau graphique sera en « classe C ». Tous les autres peuvent être classés comme des « bugs mineurs ». Libre à vous d'établir une classification personnelle. Il n'y a pas de règles dans le domaine.
    • Par priorité, on entend l'urgence qu'il y a ou non, à corriger le bug. En agissant ainsi, on fixe un planning de travail de correction. C'est toujours un travail très long que de corriger les erreurs, ce qui repousse d'autant le travail de fignolage du programme. Comme dans la plupart des cas, on est soumis à des délais, il faut corriger en premier certains bugs. C'est ainsi que les bugs de classe A et B sont à corriger en premier : on les qualifie parfois de P1. Ceux de catégorie C tombent sous l'appellation de P2. Ceux-ci n'arrêtent en rien la mise en route du programme et n'entraineront pas un retour du produit s'il est déjà diffusé. Les bugs P3 et P4 n'ont pas vraiment de calendrier, c'est « quand on aura le temps ». Un logiciel sans bug, ça n'existe pas !
  4. 4
    Ajoutez d'autres fonctionnalités. C'est durant la phase alpha que vous devez le faire afin de vous rapprocher le plus près possible de l'objectif que vous vous êtes fixé. C'est durant cette phase que votre programme passe du stade « prototype » au stade « programme quasi définitif ». À la fin de cette phase, toutes les fonctionnalités premières et secondaires doivent être au complet et fonctionner.
    • Ne vous éloignez pas trop de votre projet d'origine. C'est une dérive qu'on rencontre fréquemment chez les développeurs qui partent sur une idée et qui, après moult changements et ajouts, se retrouvent avec un programme qui diffère grandement du projet initial ou qui devient un vrai « couteau suisse » au risque de devenir inutilisable. En somme, restez bien concentré sur vos ambitions de départ, quitte à faire un autre programme s'il vous en vient l'idée en cours de route.
  5. 5
    Vérifiez immédiatement toute nouvelle fonctionnalité. Dès qu'elle est implémentée, envoyez-la à vos testeurs. Pour faire court, vous et votre équipe devez travailler à un bon rythme et en interaction pour parvenir à avoir rapidement toutes vos fonctionnalités.
  6. 6
    Verrouillez vos fonctionnalités à la fin de la phase alpha. C'est nécessaire quand vous estimez que cette phase est close. À partir de ce moment, plus aucune fonctionnalité nouvelle ne pourra être ajoutée et celles déjà testées doivent fonctionner parfaitement. Vous entrez alors en phase bêta, c'est-à-dire que vous allez élargir les tests et peaufiner votre programme.
    Publicité

Partie 5
Partie 5 sur 6:
Réaliser la phase de bêta test

  1. 1
    Augmentez la taille de votre groupe de bêtatesteurs. Dans cette phase, on élargit l'audience de son programme. Certains le rendent même carrément public sous le nom de « version bêta ». N'importe qui, à condition qu'il s'enregistre, peut tester votre programme.
    • Selon le profil et le domaine de votre programme, vous pouvez très bien avoir un groupe de bêtatesteurs plus réduit.
  2. 2
    Testez la connectivité de votre programme. Les programmes d'aujourd'hui interagissent de plus en plus les uns avec les autres. Si vous voulez connaitre un certain succès, le vôtre devra faire de même. Voyez s'il est compatible avec d'autres programmes, avec les serveurs, etc. C'est durant cette phase bêta qu'on vérifie ces connexions, en qualité et en quantité. Quand il sera lancé sur la grande scène mondiale, il ne s'agira pas de découvrir qu'il est lent à télécharger ou qu'il se décompacte mal, etc.
  3. 3
    Peaufinez votre logiciel. Maintenant que tout fonctionne, vous pouvez mettre l'accent sur le côté visuel et sur la maniabilité. L'interface utilisateur est la priorité : ceux qui vont utiliser votre logiciel doivent pouvoir accéder facilement, rapidement et logiquement à toutes les fonctionnalités.
    • C'est une phase pas toujours très évidente. En effet, on peut être un très bon programmeur, voir ce qu'il faut faire, mais être un bien piètre designer. D'ailleurs, c'est même une profession à part entière, radicalement différente de celle de programmeur ou de concepteur de programmes. Si vous n'êtes pas très versé dans ce domaine, tâchez juste de faire un logiciel pratique et esthétiquement pas trop laid. Sachez que le recours à un designer professionnel n'est pas donné ! Si vous avez un budget pour ça, n'hésitez pas ! C'est un plus !
    • Si donc vous disposez d'un budget pour le design, sachez qu'il existe de très nombreux professionnels qui travaillent en « freelance » (travailleurs indépendants) et qu'ils sont prêts à prendre en charge votre projet. Si vous le pouvez, faites-le rentrer comme membre à part entière de votre équipe.
  4. 4
    Continuez à faire « la chasse aux bugs ». Tout au long de cette phase bêta, repérez et cataloguez les bugs que vous rencontrez ou qu'on vous signale. Comme il y a plus de testeurs, il y a de grandes chances (ou risques) qu'il y ait plus de bugs. Comme d'habitude, éliminez les principaux bugs en gardant en mémoire les délais que vous vous êtes fixés [2] .
    Publicité

Partie 6
Partie 6 sur 6:
Faire connaitre son programme

  1. 1
    Dressez un plan markéting pour lancer votre programme. Si vous voulez avoir des utilisateurs ou des clients, il faut qu'ils sachent que votre produit existe. Évident, me direz-vous ! Comme tout produit, le vôtre a besoin de publicité. Votre campagne markéting sera fonction de deux facteurs : son utilité et votre budget. Voici quelques pistes à étudier si vous voulez faire connaitre votre produit.
    • Rédigez des posts dans les forums spécialisés. Respectez bien les règles des forums en question afin d'éviter que vos communications ne soient cataloguées comme spams.
    • Envoyez des communiqués de presse à la presse spécialisée. Faites la recension des blogs et des sites sérieux susceptibles d'être intéressés par ce que vous avez fait. Préparez-leur un communiqué de presse (presque prêt à être publié) dans lequel vous décrivez votre programme et son intérêt. Vous pouvez joindre des captures d'écran.
    • Tournez quelques vidéos à l'adresse de YouTube. Si votre logiciel accomplit une tâche X, faites quelques vidéos de démonstration de votre programme en action. Qu'elles soient bien claires et bien didactiques !
    • Créez des pages dédiées sur les principaux réseaux sociaux. Vous avez le choix : pour votre programme lui-même, une page Facebook, une page Google+. Pour votre communication, éventuellement votre société, créez un compte Twitter.
  2. 2
    Hébergez votre programme sur votre site. Pour de petits programmes, votre site personnel peut suffire. Il suffira de rajouter un système de paiement si vous comptez le faire payer. Si votre logiciel est une réussite, il faut passer à la taille supérieure et avoir votre site professionnel avec un serveur dédié, plus puissant, mais aussi plus cher.
  3. 3
    Organisez un service d'assistance technique. Dès que votre programme est « lâché dans la nature », attendez-vous à ce que des utilisateurs vous écrivent pour vous signaler des défauts de fonctionnement ou des difficultés pour le mettre en route. Commencez déjà par avoir une bonne documentation technique en ligne, claire (pas à pas) et bien illustrée. Prévoyez une assistance technique qui peut répondre par mail, par courrier postal ou encore au téléphone. Vous pouvez aussi instaurer un forum technique, une FAQ, etc. Bien entendu, plus votre projet réussira, plus vous devrez avoir une structure arrière capable de répondre aux attentes et aux exigences de vos clients.
  4. 4
    Mettez à jour votre logiciel. Les programmes qui marchent font l'objet de mises à jour fréquentes ou présentent ce qu'on appelle des « patchs » (« rustines »). Ces mises à jour ont pour but d'éliminer des bugs, majeurs ou non, d'améliorer les protocoles de sécurité ou la stabilité. Il y a aussi des ajouts de fonctionnalités et parfois le logiciel est carrément redessiné. C'est à ce prix que votre logiciel restera dans la course !
    Publicité

À propos de ce wikiHow

Stephen Cognetta, MBA
Coécrit par:
Accompagnateur en matière d’entretien technologique
Cet article a été coécrit par Stephen Cognetta, MBA. Stephen Cognetta est cofondateur et PDG d'Exponent, une plateforme d'apprentissage qui aide le public à préparer et à réussir les entretiens en matière de technologie. Stephen est spécialisé dans le coaching pour la gestion de produits, le génie logiciel, le markéting de produits, la gestion, la gestion de projets techniques et les entretiens en sciences des données. Stephen est titulaire d'une licence en ingénierie informatique de l'université de Princeton, obtenue avec la mention Summa Cum Laude, et d'un master de gestion des affaires (MBA) de l'université de Stanford. Avant de créer Exponent, Stephen a travaillé comme chef de produit pour Google et a cofondé HackMentalHealth. Cet article a été consulté 245 418 fois.
Catégories: Programmation
Publicité