Source: "Loi de Conway"

image

Note de l'auteur 42 ans après sa publication:

Peut-être plus particulièrement dans cet article, il a été publié en raison de la déclaration décrite dans le troisième paragraphe de la fin. Pour soulager la difficulté de surmonter les 45 paragraphes précédents, je vais l'exprimer sous forme libre maintenant:

Toute organisation concevant un système (interprété ici plus qu'un simple système d'information) créera inévitablement un modèle qui reproduira la structure de communication de l'organisation elle-même.

Il s'avère que ce principe n'est pas observé uniquement dans le développement de logiciels, dans le contexte duquel il est souvent évoqué.

Je vous suggère de vous familiariser avec le matériel, puis de regarder autour de vous et de le rechercher dans d'autres domaines.

Actuellement, mon exemple préféré est le complexe des problèmes sociaux liés à la pauvreté en Amérique: accès au marché du travail, logement, éducation et soins de santé. Après avoir lu l'article, réfléchissez à la manière dont les structures de nos différents gouvernements influencent leur attitude face à ces questions.


Comment les comités créent-ils de nouveaux?

Melvin E. Conway
PDF d'origine .

L'activité intellectuelle, à la suite de laquelle un ensemble est créé à partir de parties disparates, peut être appelée conception de système. Que ce soit la préparation d'un grand complexe militaire, des recommandations pour résoudre des problèmes sociaux ou une liste de programmes informatiques. Un objectif typique d'une organisation de conception est de préparer un document contenant une quantité d'informations structurée de manière cohérente. Nous appelons ces informations le modèle du système. En règle générale, l'initiateur est un client qui souhaite utiliser le modèle pour effectuer toute action supplémentaire. Par exemple, un homme d'État a l'intention de proposer un projet de loi pour empêcher la répétition d'une catastrophe récente, pour cela, il engage une équipe pour découvrir les causes de la catastrophe. Ou le fabricant a besoin d'un nouveau produit, et il nomme des personnes responsables pour déterminer le nouveau produit et planifier sa sortie.

L'organisme de conception peut ou non être impliqué dans la mise en œuvre du système conçu. Souvent dans les efforts du gouvernement, il existe des normes qui empêchent le groupe d'agir conformément à ses propres recommandations, tandis que la situation inverse prévaut dans le secteur privé. Il sera raisonnable de supposer que cette condition affectera le processus de conception du système, ainsi que d'autres idées du développeur sur son propre avenir. Comme nous le verrons plus loin, les incitations qui existent dans un environnement de gestion traditionnel peuvent être contraires aux objectifs du client. [1]

Étapes de conception


La phase de conception initiale porte davantage sur la structuration du processus lui-même que sur le développement du système [2]. Le développement complet est précédé de certaines actions préliminaires, à savoir:

  1. Définir les limites des activités du projet et le résultat final établi par le client et les réalités existantes.
  2. Évaluation initiale de la structure du système dans le but d'une formation équilibrée des équipes de développement.

À l'avenir, nous expliquerons en détail que la structure organisationnelle de l'équipe affecte déjà la mise en œuvre du projet, directement ou indirectement. Ainsi, même dans l'impossibilité de fournir des conditions idéales pour la recherche d'employés, la formation de l'équipe ne se fera pas de manière absolument objective. Et après la formation de l'équipe, les responsabilités seront déléguées à des sous-groupes, ce qui réduira la portée de la recherche, ce qui réduira simultanément le nombre d'options pour le développement du système.

Ayant réparti les responsabilités, les managers sont confrontés au problème de coordination au niveau des groupes de travail, ce qui affecte négativement la consolidation des efforts de chaque groupe afin de créer un système uniforme. Malgré la diminution possible de ce rôle d'un individu.

Le processus de conception du système comprend les étapes suivantes:

  1. Définir les limites conformément aux règles de base.
  2. Développement d'un concept de système préliminaire.
  3. Organisation des travaux de conception et délégation des tâches conformément au concept.
  4. Coordination au niveau des tâches déléguées.
  5. Combinaison de sous-systèmes dans un système.

Dans un travail de conception unique, toutes les étapes peuvent ne pas être tracées. Il peut arriver que, dans le processus, un nouveau concept de projet plus parfait soit trouvé. Bien sûr, ce n'est pas un moment très favorable, car l'arrêt du travail qui s'ensuit sera douloureux et coûteux. Bien sûr, du point de vue de l'historien, tout se répète.

Dans ce cas, pourquoi n'y a-t-il pas toujours assez de temps pour tout faire correctement, mais il y a toujours assez de temps pour refaire quelque chose?

Conception du système


Tout système série se compose de sous-systèmes interconnectés. La description de la structure interne du système doit refléter sa relation avec l'environnement externe et la relation de ses sous-systèmes. En descendant à un niveau inférieur, nous pouvons dire la même chose du sous-système, le considérant comme un système. Et ainsi de suite, jusqu'à un tel sous-système, qui sera extrêmement simple et indivisible.

Des exemples


Le système de transport transcontinental de l'État comprend des bus, des trains, des avions, des taxis, des parkings, des terminaux, etc. Il s'agit d'un système très hétérogène, ce qui signifie que ses sous-systèmes sont assez divers. En descendant à un niveau inférieur, par exemple, nous verrons ses sous-systèmes: châssis, moteur, distribution d'énergie, communication, charge utile. Le système moteur comprend des sous-systèmes tels que le carburant, l'allumage, etc.

Pas si évident, mais la théorie est aussi un système. Elle renvoie à l'environnement extérieur, aux événements observés, qu'elle doit expliquer ou du moins ne pas contredire. Il se compose de parties-théories qui se rapportent les unes aux autres de manière similaire. Par exemple, au cours de l'enquête sur l'accident, une théorie a été créée qui décrit la trajectoire de l'aéronef, ses communications, les dommages et l'interaction avec d'autres objets pendant l'accident. Chacun de ces éléments est en soi une histoire distincte et peut également être divisé en sous-éléments, jusqu'à des unités individuelles d'informations.

Schémas


Dans la Fig. 1, le système est représenté sous la forme d'un diagramme - semblable à un hochet - avec des connexions (branches) sous forme de lignes et des nœuds principaux (nœuds) sous forme de cercles. Chaque nœud symbolise un sous-système qui communique avec d'autres sous-systèmes, qui peuvent être représentés de manière similaire. Le terme interface, qui gagne en popularité parmi les développeurs, fait référence à l'interaction des sous-systèmes, indiquée par des lignes.

image

L'image graphique montre clairement la forme identique des deux concepts que nous envisageons: le système et l'organisation qui le conçoit. Essayez de remplacer:

  1. «Système» à «comité»
  2. "Sous-système" au "sous-comité"
  3. «Interface» à «coordinateur»

Comme dans le cas des systèmes, nous voyons que les organisations de conception peuvent être envisagées en tenant compte de plusieurs niveaux de complexité. Le gouvernement fédéral est un excellent exemple d'une organisation de conception dont le niveau de complexité peut satisfaire tout ingénieur. Il s'agit d'un exemple particulièrement intéressant, qui montre la similitude des deux concepts que nous considérons, car le gouvernement fédéral est à la fois une organisation de conception (élabore des lois, des traités, des politiques) et une organisation de conception (avec la Constitution comme principale documentation de conception).

Interaction primaire


Nous sommes maintenant prêts pour le numéro principal de cet article. Existe-t-il une relation prévisible entre la structure de l'organisation de conception et le système qu'elle conçoit? La bonne réponse est oui, et cette connexion est si simple qu'elle est souvent constante. Considérez les «preuves» suivantes.

Choisissons arbitrairement le système et l'organisation qui l'a développé et sélectionnons au hasard le niveau de complexité du système conçu, esquissons-le (notre choix est arbitraire, car si nous observons des relations intéressantes, nous pouvons les étendre à toute organisation de conception et à tout niveau de complexité). Dans la Fig. La figure 2 montre (pour plus de clarté) une structure pour laquelle l'énoncé ci-dessous est vrai.

image

Pour tout noeud x du système, nous pouvons identifier le groupe de travail de l'organisation de conception qui l'a développé (dénoté par X). De cette façon

résumant ce processus, pour tout nœud du système, nous avons une règle pour trouver le groupe de travail approprié. Veuillez noter que le rapport 1: 1, c'est-à-dire deux sous-systèmes peuvent être conçus par la même organisation de conception.

Fait intéressant, nous pouvons faire une déclaration similaire concernant les succursales. Prenez deux nœuds du même système, x et y. Ils peuvent être connectés ou non (c'est-à-dire qu'ils interagissent les uns avec les autres d'une manière importante pour le fonctionnement du système ou non). S'il y a une connexion entre eux, alors les deux groupes de travail X et U, qui ont développé deux nœuds de données, devaient se mettre d'accord sur les caractéristiques de l'interface pour réaliser la possibilité de communication entre les nœuds. S'il n'y a pas de connexion entre x et y, alors les sous-systèmes ne communiquent pas entre eux, ce qui signifie que les groupes de travail n'ont pas interagi entre eux (car il n'y a pas de connexion entre X et Y). [3]

Que venons-nous de montrer? En termes simples, nous avons démontré qu'il existe un lien étroit entre la structure du système et la structure de l'organisation impliquée dans sa conception. Lorsque chaque sous-système a son propre groupe de travail distinct, nous pouvons observer que les structures (schémas) du groupe de travail et du sous-système sont identiques. Dans le cas où plusieurs groupes de travail développent un sous-système, la structure d'organisation de la conception ressemble à une structure système, mais avec moins de sous-systèmes (nœuds dans le diagramme).

Une relation similaire préservant la structure entre deux objets est appelée homomorphisme. En langage mathématique, il existe un homomorphisme entre le diagramme système et le diagramme de projection d'organisation.

Le système est le reflet de l'organisation qui l'a conçu


De nombreux concepteurs de systèmes expérimentés pensent que n'importe qui peut mieux faire n'importe quelle conception de système. En d'autres termes, il est erroné et incorrect de parler de la tâche de conception, sauf dans le contexte du lieu, du temps, du niveau de connaissances et de la technologie. Cela devrait être rappelé par ceux qui lisent l'histoire du travail de conception d'un objet ou se souviennent et analysent leur travail.

Le développement de traducteurs informatiques de langages de programmation tels que FORTRAN et COBOL en est un excellent exemple. Au milieu des années 1950, lorsque des prototypes de ces langages sont apparus, leurs compilateurs étaient encore plus encombrants que les ordinateurs eux-mêmes, gigantesques à l'époque qui étaient censés exécuter des commandes. Aujourd'hui, ces traducteurs ne sont que des merveilles historiques qui n'ont rien de commun avec les compilateurs modernes. (Il convient de noter qu'une énorme percée dans le développement des compilateurs a été associée à l'émergence de nouveaux groupes de personnes dans la région précédemment considérée comme le patrimoine des fabricants d'ordinateurs - il s'agissait dans un premier temps d'un petit groupe universitaire cohérent de chercheurs, suivi par des développeurs de logiciels indépendants).

Si nous supposons que pour toute exigence système, il existe un certain nombre de projets système qui répondront à cette exigence, nous devons également nous demander si le choix de l'organisation de conception affecte le processus de choix d'un projet système de cette série. Si nous croyons en notre homomorphisme, alors nous serons d'accord avec quelles influences. Étant donné que l'organisation n'a pas de structure de communication flexible, cette organisation tamponnera une copie d'elle-même dans tout produit de projet. Plus l'organisation est grande, moins elle est flexible et plus cette propriété se manifeste.

Des exemples


Dans un organisme de recherche, huit personnes étaient censées fabriquer les compilateurs COBOL et ALGOL. Après une première évaluation de la complexité et des délais possibles, cinq d'entre eux ont été déterminés à travailler avec COBOL et trois ont été affectés à ALGOL. Par conséquent, le compilateur COBOL a fonctionné en cinq passes et le compilateur ALGOL en trois passes.

Deux services militaires, sous la direction de leurs commandants en chef, ont mis au point un système d'armes adapté à leurs besoins. Après cela, non sans effort, ils ont fait une copie de leur structure organisationnelle (voir Fig. 3a)

image

Faites attention au système d'exploitation de l'ordinateur impliqué dans cette tâche. Après l'avoir étudié en détail, nous voyons qu'il se compose de trois parties: le matériel, les logiciels et les applications (voir Fig. 3b). Leurs développeurs correspondent à ces sous-systèmes: les ingénieurs du fabricant d'ordinateurs, ses programmeurs système et les développeurs d'applications personnalisées (ce cas rare où les spécialistes du matériel et des logiciels collaborent, et ne se supportent pas seulement avec difficulté).

Gestion du système


La structure des grands systèmes a tendance à se dégrader à mesure qu'ils se développent. Cette observation est particulièrement évidente lorsque l'on considère les grands systèmes d'information militaire des dix dernières années. Ce sont les objets les plus complexes de tous créés auparavant par l'homme. Une activité appelée «gestion de système» a vu le jour, notamment en raison de la tendance des systèmes à se séparer en leurs éléments constitutifs. Examinons l'aspect pratique de la gestion des systèmes dans le contexte de l'idée principale de cet article.

Pourquoi les grands systèmes se désagrègent-ils? Ce processus passe par trois étapes, dont les deux premières sont contrôlables, et la troisième étape est une conséquence directe de notre homomorphisme.

  1. Premièrement, les développeurs, ayant réalisé la taille du système projeté, ne peuvent résister à la tentation d'embaucher autant de personnes que possible pour le créer.
  2. Deuxièmement, lors de l'application du modèle managérial habituel pour la mise en œuvre d'un projet d'une telle ampleur, sa structure de communication se décompose en plusieurs parties.
  3. Troisièmement, les processus de désintégration qui se produisent dans la structure du concepteur d'organisation se produisent dans la structure du système, conformément au phénomène de l'homomorphisme.

Pour commencer, considérons la situation de «surpopulation». Le désir naturel du développeur de déléguer des tâches est tout à fait compréhensible lorsque le niveau de complexité du système approche des limites de sa compréhension. Il s'agit d'un tournant dans le processus de développement. Soit il se bat pour simplifier le système et gagne, soit il en perd le contrôle. Le résultat est presque prévisible, compte tenu de la pression du calendrier et du budget.

Si le délai est perdu, le manager sera exactement à blâmer s'il n'a pas utilisé toutes les ressources pour éviter cela. Par conséquent, il tentera d'influencer le développeur, qui, peut-être, préférerait gérer la complexité du système, et ne pas déléguer de tâches à d'autres. En conséquence, le nombre de ressources impliquées augmentera.

Ou un autre exemple, démontrant un cas similaire de conflit du gestionnaire et de l'intégrité du système conçu. Le gestionnaire doit donner la partie critique et complexe du travail pour la mise en œuvre. Il peut choisir l'un des deux interprètes: une nouvelle petite entreprise, qui se distingue par une approche créative et des bas salaires, ou un bureau réputé qui s'est établi, qui a des prix plus «réalistes». Il sait que si une jeune entreprise brillante ne fait pas face à la tâche, il sera coupable de perturber le projet. Si une organisation bien connue échoue, cela indiquera seulement que la tâche est vraiment difficile.

Quelle est la prise ici? Fondamentalement, dans la méthode d'évaluation et d'allocation des ressources, qui est traditionnellement utilisée. Donc, l'unité de la ressource est le dollar, donc toutes les ressources sont exprimées en dollars. Si la ressource est du travail humain, l'unité de mesure sera le coût d'une heure de travail multiplié par le nombre de travailleurs.

L'erreur de cette approche est que le travail de deux personnes pendant l'année est évalué de la même manière que le travail de centaines de personnes pendant la semaine. Mais puisque la structure organisationnelle du travail de deux et cent sera différente, compte tenu de l'homomorphisme, on peut affirmer qu'ils créeront des systèmes différents, vous ne devriez donc pas comparer le coût de leur travail. Par expérience, nous savons que deux personnes correctement sélectionnées, si elles s'en sortent, donneront le meilleur résultat. Les hypothèses qui peuvent être vraies pour l'épluchage des pommes de terre ou la pose de briques sont erronées dans la conception du système.

La loi de Parkinson [4] est d'une grande importance dans la redistribution des ressources en main-d'œuvre dans les activités du projet. Tant que la réputation du manager dépendra de la taille du budget, il sera intéressé à développer son organisation. Ce n'est pas une motivation appropriée pour résoudre des problèmes de développement de systèmes. Une fois qu'une organisation existe, elle sera bien sûr utilisée. Peut-être la raison la plus convaincante de l'existence de tant de systèmes mal conçus aujourd'hui réside dans la présence d'organisations de conception à la recherche de travail.

En second lieu, la raison de l'effondrement du processus de conception du système - fragmentation de la structure de communication de l'organisation de conception - commence à se manifester avec le début de la délégation des tâches. Selon la théorie de la probabilité élémentaire, le nombre de communications possibles est égal à la moitié du carré du nombre d'employés de l'organisation. , . .

. , . . , .

Conclusion


— , ( ) , . , . : , , . , . , , , , , - , .

, . , , . . .


[1] . « » (John Kenneth Galbraith's The New Industrial State). VI, «».

[2] C. « » (.J. Middleton, «How to Set Up a Project Organization,» 1967, . 73).

[3] . , . , , .

[4] .. « » (C. Northcote Parkinson, Parkinson's Law and Other Studies in Administration, 1957)

:

En savoir plus



«»


«Augmenting Human Intellect:
A Conceptual Framework»
, .

«» — « », «» , , () .

— ( , ! , .) — , , , , , , , , WikiPedia, Web Archive, Knol, Quora, Cybersyn, Xanadu, DARPA, IARPA.

50 . The Mother of All Demos

Si vous voulez vraiment comprendre NLS, vous devez oublier la réalité d'aujourd'hui. Oubliez tout ce que vous savez sur les ordinateurs. Imaginez que vous ne savez toujours pas ce qu'est un ordinateur. Retour en 1962. Et puis lisez ce qu'il a en tête .
- Bret Victor, Quelques mots sur Douglas Engelbart

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


All Articles