Comment un grand nombre de développeurs écrire ensemble de logiciels sans soit un processus lourd ou un logiciel de mauvaise qualité?
-
30-09-2019 - |
Question
Je travaille dans une entreprise avec des centaines de personnes pour l'écriture des logiciels essentiellement le même produit. La qualité du logiciel doit être élevé parce que tant de gens en dépendent (pas moins les développeurs eux-mêmes). Pour cette raison toutes les questions importantes a donné lieu à une nouvelle vérification -. Soit de façon automatisée ou manuelle
En conséquence, le processus de fourniture de logiciels devient de plus en plus lourde. Donc, cela nécessite plus de développeurs qui ... eh bien vous pouvez le voir est un cercle vicieux.
Nous avons maintenant un problème avec la diffusion des logiciels rapidement -. Le délai même de changer une ligne de code pour un problème très grave est au moins un jour
Quelles techniques utilisez-vous pour accélérer la fourniture de logiciels dans une grande organisation, alors que la qualité des logiciels en maintenant?
La solution
Je travaille aussi dans une grande et lourde organisation. J'ai eu du succès la mise en œuvre de plusieurs développement logiciel agile méthodes, mais il y a deux en particulier que je ont trouvé particulièrement utile.
développement itératif et incrémental - Gardez votre cycle de développement court et serré. À travers une grande équipe, si de nombreuses modifications sont apportées entre les deux versions, vous pouvez vous retrouver dans un cauchemar d'intégration.
Les grandes entreprises se penchent vers les grands plans de projet avec des lignes de temps longues de développement. Combattre cela. La planification d'un projet sur une année entière n'a pas de sens quand votre perception tout pourrait changer après les deux premières semaines de développement. État de vos parties prenantes pour se habituer à l'idée de faire de petites versions supplémentaires et d'adaptation aux exigences en constante évolution.
Tests unitaires automatisés - Ceci est une excellente façon de vous assurer libérez le logiciel de qualité. Les pires bugs sont causés par des changements de code apparemment innocentes qui ont des conséquences non intentionnelles ailleurs. tests unitaires complets sont peut-être la meilleure façon d'attraper ce genre de bug. Si vous pouvez passer à essai moteur de développement ou développement axé sur le comportement , encore mieux.
Toute grande organisation va avoir des développeurs médiocres. Il est un fait de la vie. les tests unitaires automatisés est une excellente façon de garder un œil sur eux. Un de vos meilleurs développeurs d'écrire leurs tests unitaires pour eux. Vous aurez l'assurance que au moins leurs œuvres de code (même si elle est moche).
Autres conseils
Voir continu Intégration
Et s'il vous plaît lire Le Test de Joël:. 12 étapes vers un meilleur code
Il y a plusieurs façons d'améliorer le processus, mais l'élément clé est modularité . En séparant clairement les responsabilités (en code et dans l'organisation) et la définition des interfaces claires et cohérentes, une grande équipe peut travailler autant de petites équipes tous liés ensemble.
Wise, mais sombres paroles:
-
Fred Brooks: Ajout de programmeurs à un projet à la fin, il est plus tard .
-
Gerry Sussman: Les programmeurs comme des résistances en moissonneuse-batteuse parallèle
.
-
Quelqu'un d'autre. Le coût d'un projet est le nombre de programmeurs fois la longueur du calendrier
Quelque chose que le travail pourrait:
organiser le projet de sorte qu'il y a une application de base construite par une ou deux personnes, de préférence actionnés par l'intermédiaire d'une langue. Ensuite, laissez tous les programmeurs soient efficacement utilisateurs du noyau, par un codage dans cette langue.
Je pense à des produits à base de langue: SAS , < a href = "http://en.wikipedia.org/wiki/S_%28programming_language%29" rel = "nofollow noreferrer"> S / R , Matlab , etc.