Homme-mois mythique
homme-mois mythique : Les essais sur la technologie de la programmation est un livre sur la gestion des projets de du logiciel par les ruisseaux de Fred de , dont le thème central est ce " ; Ajouter la main d'oeuvre à un projet de logiciel en retard lui fait later." ; Cette idée est connue en tant que loi des ruisseaux de , et est présentée avec l'effet de Deuxième-système de et la recommandation du prototypage . Le travail a été édité la première fois dans le 1975 , et a republié comme édition d'anniversaire dans le 1995 (ISBN 0-201-83595-9) avec le " d'essai ; aucun " argenté de la balle ; et commentaire par l'auteur.
Les observations des ruisseaux sont basées sur ses expériences au IBM tout en contrôlant le développement du OS/360 . Il avait de manière erronée ajouté plus d'ouvriers à un projet tombant en retard. Il a également fait l'erreur d'affirmer qu'un projet - écrivant un compilateur d'algol - exigerait le months&mdash six ; indépendamment du nombre d'ouvriers impliqués (il plus long required). La tendance pour que les directeurs répètent de telles erreurs dans le développement de projet a mené des ruisseaux railler que son livre s'appelle le " ; La bible du logiciel Engineering" ; parce que " ; tout le monde le lit mais personne ne fait n'importe quoi à son sujet ! " ;
Idées présentées
; Homme-mois mythique : L'attribution de plus de programmeurs à un projet fonctionnant en retard le rendra encore plus tard, en raison du temps requis pour que les nouveaux programmeurs se renseignent sur le projet, aussi bien que les frais généraux accrus de communication. Quand les personnes de N doivent communiquer parmi elles-mêmes (sans hiérarchie), à mesure que N augmente, leur rendement M diminue et peut même devenir négatif (c. tout le travail demeurant à la fin d'un jour est plus grand que tout le travail qui avait été restant au début de ce jour, comme quand beaucoup de bogues sont créés). * formule d'intercommunication de groupe : * exemple : 50 réalisateurs - > de communication ; L'effet de Deuxième-système : Le système deuxièmes qu'un ingénieur conçoit est le système le plus dangereux il concevra jamais, puisqu'il tendra à incorporer toutes les additions il a lancées mais n'a pas ajouté (en raison des contraintes inhérentes de temps) au premier système. Ainsi, en s'engageant dans un deuxième système un ingénieur devrait être conscient qui il est susceptible de l'over-engineering il. ; Cheminement de progrès : Question : Comment est-ce qu'un grand projet de logiciel obtient d'être d'un an d'en retard ? Réponse : Un jour à la fois ! Les patinages par accroissement sur beaucoup d'avants s'accumulent par la suite pour produire un grand retard global. L'attention continue à rencontrer de petites différentes étapes importantes est exigée à chaque niveau de gestion. ; Intégrité conceptuelle : Pour faire un système facile à utiliser, le système doit avoir une intégrité conceptuelle, qui peut seulement être réalisée en séparant l'architecture de l'exécution. Un architecte en chef simple (ou un nombre restreint d'architectes), agissant au nom de l'utilisateur, décide ce qui entre dans le système et ce qui reste dehors. Un " ; cool" superbe ; l'idée par quelqu'un peut ne pas être incluse si elle n'équipe pas sans couture de la conception de système global. En fait, pour assurer un système facile à utiliser, un système peut délibérément fournir le peu de dispositifs de qu'il est capable de. Le point est que si un système est trop compliqué pour employer, alors plusieurs de ses dispositifs disparaîtront inutilisés parce que personne n'a l'heure d'apprendre comment les employer. ; Le manuel : Ce que l'architecte en chef produit sont écrits des caractéristiques pour le système sous forme de manuel. Il devrait décrire les caractéristiques externes du système en détail, c., tout que l'utilisateur voit. Le manuel devrait être changé comme rétroaction entre des équipes d'exécution et des utilisateurs. ; Le système pilote : En concevant un nouveau genre de système, un d'équipe conception de un système jetable (à s'il prévoit ou pas). Ce système agit en tant qu'installation pilote qui indique les techniques qui causeront plus tard une conception complète du système. Ce système plus futé du deuxième de devrait être celui fourni au client, puisque la livraison du système pilote ne causerait rien mais l'agonie au client, et ruine probablement la réputation et peut-être même la compagnie du système. ; Documents formels : Chaque chef de projet devrait créer un petit ensemble de noyau de documents formels qui agit en tant que feuilles de route quant à ce que sont les objectifs de projet, à la façon dont ils doivent être réalisés, qui vont les réaliser, quand elles vont être réalisées, et combien elles vont coûter. Ces documents peuvent également indiquer les contradictions il est autrement difficile de voir que. ; Évaluation de projet : En estimant des temps de projet, il devrait se rappeler que les compilateurs sont trois fois aussi dures pour écrire car les programmes d'application et les programmes système sont trois fois aussi dures pour écrire comme compilateurs, et l'utilisation d'un langage de haut niveau évolué approprié peut spectaculairement améliorer la productivité de programmeur. En outre, elle devrait être maintenue dans l'esprit quelle quantité de semaine de travail sera dépensé réellement sur les questions techniques plutôt que les administratives ou des autres non techniques, telles que des réunions ou des congés de maladie de maladie. ; Communication : Pour éviter le désastre, toutes les équipes travaillant sur un projet devraient rester en contact mutuel d'autant de manières en tant que possible (email, téléphone, réunions, notes etc.) au lieu d'assumer quelque chose, l'applicateur devraient à la place demander aux architectes de clarifier leur intention sur un dispositif qu'il met en application, avant de procéder à une prétention qui pourrait très bien être complètement incorrecte. ; L'équipe chirurgicale : Beaucoup pendant qu'une équipe chirurgicale pendant la chirurgie est menée par un chirurgien effectuant le travail le plus critique lui-même tandis que dirigeant son équipe aider avec ou rattraper les pièces moins critiques, il semble raisonnable pour avoir un " ; good" ; le programmeur développent les composants de système critiques tandis que le reste d'une équipe fournit ce qui est nécessaire au bon moment. En plus, les ruisseaux réfléchit ce " ; good" ; les programmeurs sont généralement 5-10 fois plus productives que les médiocres. ; Coder le gel et le système Versioning : Le logiciel est invisible. Par conséquent, beaucoup de choses deviennent seulement évidentes une fois qu'une certaine quantité de travail a été effectuée sur un nouveau système, permettant à un utilisateur de l'éprouver. Cette expérience rapportera les perspicacités, qui changeront les besoins de l'utilisateur ou la perception des besoins de l'utilisateur. Le système devrait, donc, être changé pour remplir les conditions changées de l'utilisateur. Ceci peut seulement se produire jusqu'à un certain point, autrement le système ne peut être jamais accompli. À une certaine date, plus de changements ne seraient permis au système et le code serait gelé. Toutes les demandes des changements devraient être retardées jusque de à la prochaine version du du système. ; Outils spécialisés : Au lieu de chaque programmeur ayant son propre ensemble spécial d'outils, chaque équipe devrait avoir un outilleur indiqué qui peut créer les outils qui sont fortement adaptés aux besoins du client pour le travail que l'équipe fait, par exemple, un outil de générateur de code qui crache dehors le code basé sur des spécifications. En outre, au niveau système des outils devraient être construits par les outils communs team, surveillé par le chef de projet. ; Abaissement des coûts de développement de logiciel : Il y a deux techniques pour abaisser les coûts de développement de logiciel que les ruisseaux écrit environ : des *Implementers de peuvent être loués seulement après que l'architecture du système a été accomplie (une étape qui peut prendre plusieurs mois, et pendant ce temps les applicateurs prématuré-loués peuvent n'avoir rien à faire). les mentions de ruisseaux de technique de *Another den'est pas de développer le logiciel du tout, mais de l'acheter simplement " ; " disponible immédiatement ; si possible.
Voir également
Peopleware - recommandé par Brooks à tous les lecteurs d'homme-mois mythique dans l'édition d'anniversaire de 20 ans.
| Random links: | Hydroinformatics | Marque Ockerbloom de John | Affaires de famille (série télévisée) | Université de Magadh | Charles H. Johnston | El_mes_laboral_mítico |