Réussir son projet
de Développement Logiciel

Techniques, méthodes, choix et perspectives.
Sommaire

Les projets de développements de logiciels n’ont jamais été aussi complexes et les logiciels eux-mêmes sont de plus critiques pour faire du business. Conception, développement, tests fonctionnels, tests de sécurité, déploiement, production, exploitation, maintenance, etc. Que ce soit réalisé en interne, avec des prestataires ou directement sur le Cloud, les techniques traditionnelles sont révolues. De nouvelles ont fait leur preuves et commencent à se répandre.



A quoi ressemble un projet de Développement logiciel en 2019 ?


L’exigence de qualité et de performance

  • Un trafic et un flux de données toujours plus important.
  • Des applications haute disponibilité.
  • Les nouvelles attentes des utilisateurs.

L’explosion de la complexité technique

  • Toujours plus de possibilité technique.
  • La multiplication des terminaux utilisateurs.
  • Choisir entre Open Source, SAAS, Cloud, On-Premise, etc.

La difficulté à former des équipes de développement

  • Le problème du recrutement des bons profils.
  • Naviguer entre les choix techniques et la gestion d’équipe.
  • La mise en place des bonnes pratiques de développement.

Démarche projet et Agilité


Évaluer la complexité d’un projet

  • Complexité essentielle et complexité accidentelle.
  • Quand a t-on besoin d’un POC ?
  • Le cas des projets exploratoires.

Méthodes agiles

  • Le tour des méthodes agiles reconnues (Scrum, Kanban, etc.).
  • Ai-je besoin d’appliquer une méthode agile à mon équipe ?
  • Comment tirer le maximum de valeur de manière itérative.

Chiffrage et délais

  • Les clés pour évaluer le coût d’un projet.
  • Que faire lorsque le projet « dérape » ?
  • Faire atterrir un projet de Développement logiciel.

Productivité et usine de développement


Productivité et efficacité

  • Qu’est ce qu’un environnement de développement efficace ?
  • L’impact des choix techniques.
  • Les bonnes métriques pour évaluer la productivité de développement.

Intégration continue

  • La chaîne de construction automatique du logiciel.
  • Gestion de la cohérence du poste du développeur jusqu’à la mise en production.
  • Quels rapports automatisés pour suivre la qualité du logiciel ?

Gestion à long terme

  • Les pièges techniques à éviter pour assurer une productivité continue.
  • Comment contrôler la complexité accidentelle avec le temps ?
  • Analyser et ajuster le processus de développement.

Faire les bons choix techniques


Langages de programmation

  • Comprendre les différents langages de programmations et leur concepts.
  • Quel Langage adapté pour quel usages ?
  • Gérer la prolifération des Langages d’un projet, dans une équipe, une entreprise.

Architecture de service et modularité

  • Comment découper un projet logiciel en composants ?
  • Dois-je mettre en place une architecture Microservice ?
  • L’impact de l’organisation de l’entreprise sur la modularisation des projets logiciels.

Partage et réutilisation de code

  • Avantages et inconvénients de la réutilisation de code.
  • Les bonnes pratiques pour partager du code entre plusieurs projets, organisations.
  • L’impact sur la chaîne de construction du logiciel.

Stratégie de test et gestion de la qualité


Pratiques de tests automatisés

  • Les techniques de tests reconnues (tests unitaires, intégration, de bout en bout, etc.).
  • Naviguer entre le coût et la valeur des tests automatisés. Quoi et quand tester ?
  • L’impact sur le code du logiciel. Comment écrire un logiciel « testable » ?

Gestion des erreurs et des bugs

  • Les bonnes pratiques de gestion d’erreur dans un logiciel.
  • Quel cycle de vie pour la gestion des bugs ?
  • L’impact de la gestion des bugs dans le cycle de développement du logiciel.

Assurer la maintenance à long terme

  • Les clés pour un logiciel « maintenable » et capable d’évoluer.
  • Comment minimiser l’impact des changements organisationnels sur le Développement logiciel ?
  • Le lien avec la documentation, la qualité de code, la stratégie de test.

Le cas du développement des interfaces utilisateurs


Spécificités des interfaces utilisateurs

  • Conception UI et UX.
  • Le cycle de développement d’une interface utilisateur.
  • L’impact sur la stratégie de test.

Développement Web vs Développement natif

  • Ce qui est possible aujourd’hui en Application Web.
  • Les clés pour choisir un toolkit de développement IHM.
  • L’impact sur la productivité.

Les applications mobiles

  • L’Application mobile est-t-elle particulière ?
  • Réutilisation de code entre plateformes différentes.
  • Les problématiques spécifiques liées à la plateforme mobile.

Mise en production, opérations et gestion des incidents


Déploiement continu

  • Les stratégies de déploiement d’un logiciel. Dois-je aller vers un déploiement continu ?
  • Adapter la chaîne de construction logiciel pour le déploiement automatique.
  • Gestion des environnements de préproduction et de qualification.

Suivi de la production et détection des problèmes

  • Quels tableaux de bord mettre en place pour gérer la production d’une Application ?
  • Planification des ressources matérielles nécessaires.
  • Déploiement dans le Cloud vs On-Premise.

Gestion de la disponibilité

  • Détection automatique des incidents et mise en place de systèmes d’alerte.
  • L’impact des choix techniques. Quelle architecture pour une application haute disponibilité ?
  • Stratégies d’astreinte et liens avec le DevOps.

Management d’une équipe de développement


Gestion des différents rôles

  • Profils « Front », « Back » et « Full-Stack ».
  • La tendance DevOps et l’impact sur l’équipe de développement.
  • Comment se situe le rôle du chef de projet aujourd’hui ?

Recrutement et formation

  • Attirer les bons profils dans votre équipe. Que cherche un développeur aujourd’hui ?
  • Quelle méthode d’évaluation pour les recrutements ?
  • Les clés pour la gestion des compétences dans l’équipe.

Clés pour le management

  • Spécificités de la gestion d’une équipe de développeurs.
  • Gestion de carrière en développement. Comment faire évoluer un développeur sénior ?
  • Motivation et impact sur la productivité de l’équipe.

Synthèse et perspectives


Les chantiers à mener

  • La liste des points les plus importants à considérer aujourd’hui.
  • Les priorités pour les nouveaux projets.
  • Les pistes pour rétablir la trajectoire des projets qui « dérapent » aujourd’hui.

L’évolution des tendances de développement

  • Quels changements à prévoir dans les cinq prochaines années ?
  • L’impact sur vos projets logiciels aujourd’hui.
  • Organiser vos projets de Développement logiciel pour être prêt au changement.

Ressources indispensables

  • Les livres et articles à lire absolument.
  • Comment se tenir à jour avec les nouvelles tendances ?