Conception, cycles de développement et tests

Ayant travaillé avec différentes équipes, j'ai découvert par moi-même plusieurs règles de développement que je souhaite partager avec vous.

La conception


  1. Il vaut mieux passer beaucoup de temps au stade de la conception d'un système d'information que de perdre du temps et de l'argent plus tard.
  2. Des erreurs de conception peuvent entraîner: un retard dans le temps, des coûts multiples du projet.
  3. La conception d'un système est entièrement du début à la fin (sans ajouter de fonctionnalités supplémentaires) ou offre une modularité:

    - développement et perfectionnement du concept complètement.
    - élaboration d'un cahier des charges très détaillé.

    - développement d'un schéma de base de données
    - développement de script de contrôleur
    - développement du design des modèles de présentation
    - développement d'un scénario de comportement utilisateur (alias scénario de test)
    - PDG
    - ...
  4. Il est préférable de créer un appel d'offres pour la création de la documentation du projet et des spécifications techniques, puis d'effectuer un audit. Peut-être qu'au stade initial, vous dépenserez plus d'argent, mais vous pourrez économiser beaucoup plus à l'avenir.

Développement


1. Dans le développement, utilisez des solutions prêtes à l'emploi et stables: cela signifie que pour travailler avec la base de données, il est préférable d'utiliser le framework MVC (Model View Controller) ou ORM (Object Relational Mapping) ou AR (Active Record), et pour travailler avec des scripts CRUD standard ( Create Read Update Delete) - un générateur qui crée du code sans erreur.

Personne n'appréciera vos compétences en tant que développeur de bas niveau, mais si le système fonctionne de manière stable et sans erreur, ce sera un gros plus.

2. Documentez le code.

3. Créez une documentation technique claire et bonne.

4. Utilisez un docker.

5. Utilisez des systèmes d'assemblage de versions automatiques.

Organisation du travail en équipe


  1. Utilisez des systèmes de contrôle de version, j'ai utilisé git dans mon travail.
  2. Divisez le travail des développeurs en différents modules fonctionnels, de sorte que lorsque les branches du système de contrôle de version fusionnent en un seul, il n'y ait pas de conflits.
  3. Ne vous engagez pas dans une programmation extrême sur le genou quand cela prend de plusieurs heures à plusieurs jours pour résoudre un problème.

Définissez les tâches pour un minimum d'une semaine et un maximum d'un mois jusqu'à la prochaine génération.

Test


  1. N'utilisez pas de systèmes de réglage et de correction des tâches pour les testeurs.
  2. Utilisez des tests automatisés: créez un module de test logiciel qui s'exécutera à chaque fois avant l'assemblage et testez l'ensemble du système automatiquement.

Cycle de développement


Après avoir créé une tâche technique de haute qualité, vous pouvez commencer à développer, puis je vais vous donner un cycle répétitif:

1. Définir des tâches pour les développeurs de divers systèmes afin de surveiller l'exécution des tâches afin qu'elles n'affectent pas le code des autres, par exemple, diviser le système en modules, chacun travaillant dans sa propre branche.

Les tâches doivent être terminées dans une semaine.

Après avoir terminé chaque tâche, le développeur doit exécuter des tests logiciels automatisés qui couvrent l'ensemble du système.

2. Chaque lundi, le code de chaque développeur fusionne dans la branche principale.

Après que le résultat du travail de toute l'équipe apparaisse dans la branche principale, chacun des développeurs copie la branche principale pour lui-même.

Ensuite, le cycle se répète.

Avec cette approche


  1. Le nombre d'erreurs résultant des tâches sera minime.
  2. Vous pouvez créer un meilleur logiciel.
  3. Vous gagnerez du temps.
  4. Vous économiserez de l'argent.
  5. L'équipe travaillera plus rapidement, plus efficacement, plus harmonieusement (sans conflit en termes de changement de code).
  6. Vous pourrez terminer les tâches à temps.
  7. Les tâches terminées seront meilleures.
  8. Vous n'avez pas à effectuer de tâches supplémentaires, telles que: changer la conception, la fonctionnalité ou autre chose au cours du travail.

Ce qui rendra le résultat plus prévisible, simple et compréhensible.

Je programme depuis plus de 10 ans, tous des projets intéressants et réussis!

Source: https://habr.com/ru/post/fr442704/


All Articles