DevPCI Team posté le juin 22, 2010 08:19
Personne n'aime à admettre l'échec, mais la seule façon de résoudre un problème consiste à admettre lorsqu'il existe. Une fois de plus, nous avons eu supprimer une version en raison d'un bogue sévère rendant à travers le processus de publication. Nous pourrions avez probablement juste à gauche la 4.2.7 version tel qu'il était et a travaillé sur la course à un nouveau 4.2.8 version pour résoudre le bug, toutefois, nous nous sommes sentis il serait prudent pas mettre nos utilisateurs dans la position de l'installation et essayez d'utiliser une version que nous connaissons est va rompre un grand nombre de modules de 3ème des développeurs tiers.
Le bug en question est un changement de rupture qui va rompre un module qui utilise la principale fonction de couche d'accès ExecuteSQL données. Il est difficile d'évaluer simplement le nombre de modules pour utiliser cette fonction, mais nous savons que cette fonction affectés modules au moins 4 développeurs équipe de cœur, y compris de nombreux modules administratifs que nous utilisons pour exécuter DotNetNuke. com. La solution pour ce bogue est relativement simple et nous ont déjà coché dans un correctif et travaillent pour le tester. Nous aurons un prêt de package de mise à jour pour les tests de demain par un groupe de développeurs de module commercial avec une version finale de 4.2.8 venir plus tard cette semaine. Étant donné les problèmes de sécurité qui ont été déjà rendues publiques, nous sommes limiter la portée de cette version afin de que nous ne le laissez pas la Communauté surexposée.
Cette question met en évidence l'un des défis de la croissance rapide dans toute organisation de développement logiciel. Comment vous amener à maîtriser de nouveaux développeurs et invitez-la productive aussi rapidement que possible ? Comment continuer à s'assurer que votre logiciel continue de respecter les normes de qualité que vous et vos clients attendent, même si votre équipe technique se développe et vos processus sont en cours de modification ?
Alors comment nous prévoyons relever ce défi ? La solution est vraiment celle qui doit être adressée à tous les niveaux du processus d'ingénierie – depuis le développeur qui touche tout d'abord le code, au gestionnaire de génération qui est responsable de la création de packages, à l'équipe d'assurance qualité qui teste le code, pour les testeurs bêta de communauté qui effectuent des tests, le Gestionnaire de version qui se déconnecte sur la version finale ad-hoc. Nous mettons à chaque phase il y a de personnes concernées qui ont certaines responsabilités afin de garantir un produit que nous pouvons tous être fiers de. Nous travaillons actuellement avec des gens de chacun de ces niveaux afin d'améliorer nos processus et nos outils pour faire tout ce que nous pouvons pour éliminer ces problèmes.
Notre équipe d'ingénieurs travaille dur pour ajouter des tests permettant de détecter ces types de problèmes plus tôt d'unités de plus en plus. Partie de notre défi ici est d'apporter des modifications architecturales nécessaires qui nous permettra de test unitaire de plus en plus du cadre. Nous reconnaissons également qu'il y a très peu de connaissances culturelles et historiques sur la plate-forme dont nous avons besoin de passe-sur de nouveaux membres de l'équipe d'ingénierie. Nous avions déjà prévu une retraite ingénierie cet été pour l'ingénierie complète et équipes de produit et de mettre l'accent sur la qualité d'ingénierie sera certainement un grand sujet couvert cette semaine.
Pour les 9 derniers mois nous avons été la création et améliorer notre automatisée construire le processus. Avec chaque nouvelle version, nous avons amélioré le processus pour automatiser des tâches de plus en plus. Nous savons qu'il existe de nombreux processus qui restent à être automatisées. Basé sur les résultats de la 4.2.7 version nous va être intensifier nos efforts pour intégrer automatisé API afin de nous ne sommes pas casser la compatibilité binaire entre les versions de test. Cela avait été sur notre liste de choses à faire, mais sera désormais déplacé vers le haut de la pile de sorte que nous pouvons obtenir cela en place à temps pour la prochaine version 5.5.
Notre équipe d'assurance qualité interne a travaillé dur pour suivre le rythme de nos communiqués. Ces derniers mois plusieurs, ils ont produit et exécuté le cas bien plus de deux mille de test de la fonctionnalité et de régression. Étant donné la taille actuelle de notre équipe, nous devons hiérarchiser le nombre de tests qui s'exécutent avec chaque nouvelle version. Nous continuer à développer cette équipe et va être réévaluer les principales étapes de tests pour s'assurer que nous sommes couvrant un ensemble assez large de tests de base avec chaque nouvelle version. Basé sur certaines des questions version ce printemps nous seront ajoutés dans les cas de test qui exercent d'installation et de mise à niveau de clé 3e partie modules.
Un domaine qui nous peinent encore avec est de savoir comment mieux engager la Communauté à faire partie intégrante de notre processus de publication. Nous avons essayé de versions bêta fermée, versions bêta ouverte, référentiel ouvert et la même spéciales des comités consultatifs tout dans le but d'obtenir code et emballés rejets hors de la Communauté dans un effort pour obtenir vos commentaires avant vers une version. Rien, nous avons essayé a entraîné dans une évaluation adéquate. En novembre dernier, nous avons commencé la validation de code source sur CodePlex. Par la mi-février nous avions ce processus automatisé afin que le code a été mis à disposition presque chaque nuit comme il a été archivé dans notre propre référentiel. Alors que nous continuons à obtenir un grand nombre de téléchargements nous ne semblent pas être obtention d'une réponse sur la qualité du code.
De même, après la sortie de 5.3 et 5.4 nous formé un comité consultatif module développement composé d'un groupe de développeurs de module commercial. Ce groupe reçoit des accès pour créer des packages dans le même temps que nous avons fourni des packages à notre équipe d'assurance qualité interne. Nous continuerons à travailler avec cette équipe pour savoir comment nous pouvons mieux identifier ces types de problèmes avant une version.
Enfin, la dernière personne qui touche chaque package avant sa sortie est de moi. Pour au cours des 18 derniers mois ou si nous avons été avec une liste de contrôle de version pour s'assurer que nous suivez les mêmes étapes avec chaque version. Une grande partie de cette liste se concentre sur veillant à ce que l'ingénierie et les efforts de commercialisation sont complets, que nous avons effectué les étapes QA nécessaires et que nous avons publié les fichiers dans les répertoires appropriés et mis à jour les pages web qui ont besoin de mise à jour. Jusqu'à ce point, nous n'avons pas eu un produit "propriétaire" qui serait effectuer tout type de tests d'acceptation. Avec la création récente d'une équipe de produit formel, nous commencerons intégrer cette étape de notre processus de publication. Compte tenu de la taille de cette équipe, que ce ne sera pas un ensemble englobant tous les tests comme ça effectuée par QA mais comprendra certaines vérifications de base votre tranquillité d'esprit pour s'assurer que chaque partie de la chaîne de qualité est en train de faire leur part pour vous assurer de que nous mettre un produit solide.
Nous pensons que par une étape de retour et de réévaluer comment nous procédons chaque étape de l'ingénierie et version de processus que nous pouvons apporter des améliorations significatives dans la qualité de nos communiqués. Vous méritez mieux chez nous et nous exigeons le meilleur de nous-mêmes.