Quelques règles pour réussir votre projet informatique

Il n’est pas rare en informatique de voir les coûts et les délais exploser dans les projets de software. Pour éviter cela, je m’efforce de suivre les quelques règles suivantes que j’ai apprises par mon expérience (et mes erreurs) et au contact de développeurs séniors.

1. Spécifier un cahier des charges visuel sous forme de « mockup » avec le client/collègue

Car un bon schéma dit bien plus que de nombreuses pages de texte. Je vous invite donc schématiser les différentes pages du site ainsi que les actions de bases. Pour cela, vous pouvez soit faire les dessins à la main, ou utiliser un logiciel du type balsamiq (licence à 79$) ou une version équivalente gratuite comme Lumzy ou Pencil. Le but n’est pas forcément ici d’être exhaustif, mais d’avoir une vision commune du produit. Ces mockups serviront notamment au  designer et vous feront gagner un temps précieux en aller-retours.

2. Catégoriser et hiérarchiser les priorités des fonctionnalités

Trop souvent on sous-estime le temps de développement et la difficulté du développement web. On en vient même à considérer qu’écrire du code est une commodité qui peut être faîte par un adolescent indien. Développer un logiciel ou un site internet un peu personnalisé n’est pas facile et tout prend trois fois plus de temps que prévu. En résumé, vous n’aurez ni le temps ni les ressources de tout développer sur votre site ! Il vous faut donc hiérarchiser les priorités.

Rassemblez pour cela votre Directeur Technique avec l’équipe marketing et listez, pour chacun des différents acteurs qui utiliseront votre logiciel, les fonctionnalités en quelques mots. Vous trierez ensuite ces fonctionnalités en trois ou quatre catégories, par exemple : indispensable, utile et confort. Vous pourrez ensuite estimer pour chacune d’elles le temps de développement afin d’avoir une première idée des grands chantiers. A ce stade, vous vous rendez sans doute compte, que compte tenu de vos ressources, les fonctionnalités confort ne verront jamais le jour…

3. Utiliser une méthode de développement agile de votre choix

Plusieurs générations d’entrepreneurs et de software développeurs se sont cassées les dents sur  bonnes et mauvaises méthodes de développement et sont arrivées à la conclusion que les méthodes agiles sont efficaces sur Internet. Que vous utilisiez les méthodes Scrum, Extreme Programming ou le concept plus général de Lean Startup, l’idée est de développer le produit de manière itérative, incrémentale et adaptative et de faire participer le client le plus vite possible afin d’avoir ses retours et corriger le tir en cours de route (l’antithèse du gros cahier des charges et du projet qui dure trois ans sans voir ses clients). En pratique, vous sortez rapidement une version minimale de votre produit qui ne possède que les fonctionnalités indispensables (votre produit bêta) et vous observez comment vos premiers clients utilisent votre site. Les surprises seront nombreuses ! Vous modifiez ensuite votre produit pour qu’il réponse au mieux à leurs besoins, etc.

Je vous invite à lire le livre Practices of an Agile Developer de Venkat Subramaniam pour approfondir la méthodologie agile ou le livre de Eric Ries The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses pour mieux comprendre le concept de « lean startup ».

4. Utiliser un gestionnaire de version de type Git ou SVN

La collaboration entre développeurs n’est pas aisée sans les bons outils. En effet, il faut sans arrêt synchroniser les codes sources, éviter de se marcher sur les pattes, savoir où est la dernière version du code, être capable de la déployer sur n’importe quelle machine avec les bonnes librairies en dépendance, être capable de revenir à une version stable du code en cas d’introduction d’un nouveau bug, savoir qui a fait quoi, etc. Plutôt que de se débrouiller tant bien que mal avec des codes sur un serveur FTP ou pire sur une clef USB, je vous invite à découvrir les « repository » SVN ou Git pour gérer les différentes versions de votre code source. J’utilise personnellement l’excellent service Github et je vous invite à suivre le tutoriel suivant si vous débutez.

5. Automatiser ses tests

On se dit toujours qu’on va perdre du temps en écrivant des tests automatiques des fonctionnalités de votre site, mais croyez-moi, pour avoir fait avec et sans, ces derniers vous feront gagner un temps précieux par la suite. En effet, le code source sera amené à changer de très nombreuses fois, en raison des nouvelles fonctionnalités, de la correction de bugs, de petites modifications diverses, etc. Les tests automatiques de vos fonctionnalités vous permettent de savoir, avant l’envoi du code sur votre serveur, si ce dernier n’a pas introduit de nouveaux bugs. Si l’un de vos tests unitaires ne passe pas, vous voyez tout de suite le bout de code qui est concerné et vous pouvez le corriger instantanément.

Ruby on rails offre pour cela une interface toute faite pour les Units Tests. Vous pouvez charger des données artificielle et tester chacune de vos fonctionnalités. Je vous invite aussi à regarder les gems RSpec ou Cucumber 

Je vous invite aussi à créer un serveur de test en ligne qui a le même configuration et la même base de donnée que votre site finale pour y effectuer les tests manuels avant de mettre en ligne définitivement le code. En effet, de nombreux bugs apparaissent une fois qu’il y a toutes les données, surtout les plus originales.

 

En conclusion, la gestion de projets web est complexe car de nombreux acteurs vont interagir et les coûts peuvent rapidement être importants en raison du salaire de vos ingénieurs et développeurs. De nombreuses bonnes pratiques ont vu le jour d’abord dans le développement de logiciels puis dans le développement web et d’applications et de nombreux livres traitent plus en détails de ces découvertes. N’étant pas très fan des grandes théories et préférant les méthodes pragmatiques, je vous invite vivement, si vous voulez approndir ce sujet, à découvrir les livres de la collection The Pragmatic Bookshelf ou le livre des fondateurs cette maison d’édition : The Pragmatic Programmer d’Andy Hunt et David Thomas. Vous retrouverez ici un résumé de leurs conseils qui sont encore d’actualité…

Quelques règles pour réussir votre projet informatique

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *