Quelles sont les caractéristiques d'un «centre d'excellence» logiciel (CoE)?

13

Récemment, un nouveau directeur de mon département est entré et a exprimé son souhait que nous devenions un "centre d'excellence". Je m'attendais à ce que comme il est mon premier patron qui a en fait une formation en programmation, il y aurait une description de cela. Cependant, il en est resté là.

En réfléchissant à cela au cours des derniers jours, je me dis que ce que signifie réellement un CoE ne se limite pas à «être efficace» dans la livraison du produit. Voici les principaux éléments avec lesquels je me bats:

  1. S'agit-il simplement d'un terme utilisé par les types de gestion?

  2. Quelles qualités rendent un groupe de développeurs de logiciels et de testeurs excellents?

  3. Comment mesurez-vous l'excellence dans ce contexte?

Excité
la source
7
Un «Centre d'excellence» est un centre de codeurs moelleux et délicieux, au milieu d'un bonbon croustillant de gestion. ;)
FrustratedWithFormsDesigner
8
Tu lui as demandé? Je veux dire ... la description n'est peut-être pas encore là, mais je lui demanderais certainement ce qu'il veut voir chez les développeurs et les testeurs pour appeler le département un centre d'excellence. Sinon, vous êtes juste en train de poignarder dans le noir avec peu de chances de succès et une énorme chance de frustration.
Marjan Venema
@Marjan, je ne lui ai pas posé la question car il est à quelques niveaux et je n'ai pas beaucoup de temps face (et je n'en ai pas eu depuis). Soyez sûr que je le ferai la prochaine fois. J'aimerais tout d'abord m'informer à partir de sources tierces de confiance :)
Randy
Bravo pour ça. Toujours bon de se préparer avec ce que vous pensez qu'un centre d'excellence signifie ...
Marjan Venema
1
Ce billet de blog pourrait probablement vous apporter quelques éclairages: agileelements.wordpress.com/2008/10/29/… (car il s'agit d'un gars (pas moi) qui en a créé un dans son organisation).
yasouser

Réponses:

7

Oui, ce n'est qu'un terme utilisé par les types de gestion, mais si vous supprimez le langage de gestion, ce qu'il dit, c'est qu'il veut un département qui est perçu comme utilisant et incarnant les meilleures pratiques de l'industrie d'une manière que d'autres aspirent et font. afin de fournir de grandes solutions que les gens aiment.

(Ce dernier élément est important - si vous ne livrez pas réellement, peu importe la qualité de tout le reste et votre gestionnaire ne restera pas longtemps).

La complexité se présente de deux manières principales:

1) Veut-il cela parce qu'il comprend que c'est la bonne façon de développer des logiciels et que c'est ainsi que vous produisez de bons produits, ou le veut-il parce qu'il veut pouvoir s'en vanter?

2) Acceptera-t-il le coût initial (temps, argent, crédibilité et risque) associé à la mise en œuvre des meilleures pratiques? C'est bien de dire «allons-y agile», mais il met sa réputation sur le fait que cela améliorera les choses et devra passer beaucoup de temps à le vendre à l'organisation. Presque toujours, les avantages sont à long terme, les coûts sont à court terme et c'est la partie la plus difficile. En fin de compte, est-il vraiment sérieux à ce sujet?

En termes de ce à quoi cela ressemblerait, bien, cela dépend de ce que vous faites, mais vous devez penser en termes de processus de développement et de gestion de projet, quels outils vous utilisez, quel kit les gens ont, etc. . Le test Joel est toujours un bon point de départ et en particulier je voudrais voir un processus de contrôle de version vraiment solide, un très bon suivi des bogues et de très bons processus de construction.

J'examinerais également si les méthodologies agiles vous conviennent (SCRUM en particulier), dans quelle mesure les tests automatisés pourraient aider (sans déclencher une guerre de religion, les opinions divergent quant au point auquel la complexité des tests l'emporte sur les avantages qu'ils fournir) si vous avez les outils et le kit nécessaires pour faire le travail. En règle générale, je suggère que vous souhaitiez que les outils soient à la pointe, mais pas à la pointe du progrès. Il convient de souligner qu'il ne s'agit pas d'avoir des jouets, mais de donner à tous les membres de l'équipe les outils nécessaires pour être aussi productifs que possible pendant une grande partie de la journée de travail. L'exemple le plus évident est les mauvais PC - est-ce vraiment excellent de payer les développeurs pour regarder un curseur pendant que leur projet prend 5 minutes à construire quand ils le construisent une demi-douzaine de fois par jour?

Quelques autres choses qui vont probablement être visibles dans un centre d'excellence: je dirais qu'un centre d'excellence en logiciels a probablement un assez bon programme de formation - peut-être pas des cours formels mais certainement des budgets de livres, du temps d'étude, du mentorat et comme.

Et je dirais qu'il fait probablement aussi une petite quantité (au moins) de R&D. Par cela, je ne veux pas dire des choses complètement bleues, mais donner aux développeurs de la place pour essayer de nouvelles choses et évaluer de nouveaux outils et langages sans la pression continue de livraison au client. Voilà comment vous allez de l'avant et restez en forme l'année prochaine, l'année suivante, etc.

Comment pouvez-vous le mesurer? Ah, la vieille question. En fin de compte, mesurer le développement logiciel est difficile, voire impossible, et mesurer l'excellence dans le développement logiciel est tout aussi difficile.

La seule chose que je peux vraiment suggérer qui serait utile et qui est largement adoptée par de nombreuses entreprises est la satisfaction des clients et du personnel. C'est une mesure indirecte, mais je pense que si vous n'êtes pas excellent, il est peu probable que vous obteniez de très bons niveaux de satisfaction client et de très bons niveaux de satisfaction du personnel.

Jon Hopkins
la source
Mon problème avec les mots à la mode, c'est qu'ils semblent trop souvent destinés à remplacer efficacement la pensée réelle concernant la chose qu'ils représentent. J'essaie de ne pas juger trop sévèrement quand je rencontre des gars à la mode, parce que parfois ils ne sont que l'équivalent manager des nerds programmeurs, pris dans un univers différent de verbage et ne réalisant pas qu'ils semblent idiots pour le reste d'entre nous même s'ils ont effectivement une intégrité intellectuelle et sont efficaces, accessibles, etc ...
Erik Reppen
6

C'est le problème avec les mots belettes ; ils ont l'air de vouloir dire quelque chose ... mais ce n'est vraiment pas le cas.

Du contexte, il semble que votre entreprise produit un produit et que votre directeur souhaite simplement que votre service soit aussi efficace et efficace que possible. IME, cela signifie qu'ils ont l'intention de faire une ou toutes les actions suivantes:

  • Embaucher de nouvelles personnes ayant des «exigences strictes» sur l'embauche (généralement des diplômes ou certifications supérieurs ou une reconnaissance de l'industrie)
  • "Coupez la graisse" - débarrassez-vous des personnes qui, selon eux, ne produisent pas
  • Injecter de l'argent dans le département pour les outils / processus / personnes / formation

Donc, pour répondre directement à vos questions:

  • Oui
  • Je n'ai pas de réponse solide à cela. Il existe de nombreuses métriques qui peuvent être utilisées pour quantifier la génialité.
  • Dans ce contexte, généralement selon que vous fassiez ou non des dates de sortie.
Steven Evers
la source
3

Au cours de mes 30 années d'expérience, une phrase comme celle-ci signifie généralement que nous voulons que vous produisiez plus avec moins de personnes.

HLGEM
la source
Superbe réponse simple.
Elève
2

En réponse à votre point numéro 1:
La réponse est certainement oui , c'est un terme qui ressemble aux joueurs de Bullshit Bingo expérimentés . Cela ne signifie pas pour autant que le terme n'a pas de sens.

Passons au numéro 2:
Tiré de Wikipédia : Centre d'excellence: un ensemble de connaissances et d'expérience formellement désigné et accepté de manière informelle sur le sujet. Oublions les nominations formelles et acceptées de manière informelle, et nous concentrons sur l'ensemble des connaissances et de l'expérience. Je considérerais la connaissance comme un fond théorique, l'expérience finale comme quelque chose qui vient d'une application pratique. Pour atteindre l'excellence, vous avez besoin des deux. Outre ces qualités (assez évidentes), je pense qu'une troisième est essentielle pour atteindre l'excellence: la capacité de se remettre en question, de réfléchir à ce que vous faites et de chercher des moyens de vous améliorer. Les connaissances que vous apprenez en tant qu'étudiant, mais vous devez constamment y travailler, suivre les derniers développements, etc. L'expérience que vous accumulez est l'expérience, celle-là est presque inévitable. La partie la plus délicate du point de vue de la gestion est de créer une culture de réflexion et de perfectionnement personnel (bonne chance à votre patron avec celle-là ;-)

Quant à votre question numéro 3:
je pense que vous ne pouvez pas. Je parle ici de bien plus que de réussir des projets ici (ce qui est déjà difficile à mesurer, entre autres en raison d'une tendance à déclarer que même le projet le plus bâclé est un succès car il est plus joli dans la présentation PowerPoint). La véritable excellence vient de l'attitude de tous les membres d'une équipe pour donner le meilleur d'eux-mêmes, pour s'améliorer, leurs outils, leurs processus, etc. Votre meilleur coup est de trouver un moyen de mesurer l'efficacité d'un processus d'amélioration continue prédéfini

Treb
la source
1

La première personne qui me vient à l'esprit quand je pense au "Software Center of Excellence" est Oncle Bob Martin

Oncle Martin est depuis longtemps un défenseur de l'excellence dans le développement de logiciels sous la forme connue sous le nom de Software Craftsmanship . Comme wikipedia l'a décrit

L'artisanat logiciel est une approche du développement logiciel qui met l'accent sur les compétences de codage des développeurs de logiciels eux-mêmes. Il s'agit d'une réponse des développeurs de logiciels aux maux perçus de l'industrie du logiciel grand public, y compris la priorisation des préoccupations financières sur la responsabilité des développeurs.

Écoutez-le sur le podcast suivant alors qu'il explique ce qu'est l'artisanat logiciel:

Consultez également le Manifeste pour la fabrication de logiciels , qui met en évidence l'importance de logiciels bien conçus, la valeur ajoutée, la communauté de professionnels et les partenariats productifs

EDIT: Étant donné qu'un centre d'excellence en logiciels nécessite des programmeurs parfaitement formés, vous pouvez également consulter les ressources suivantes:

Anthony
la source
0

Il me semble qu'il vient de dire qu'il veut avoir une culture de la qualité plutôt que de la quantité, mais là encore, il pourrait simplement parler de son @ss. En tant que programmeurs, je pense que nous avons tendance à trop penser à ce que les gens disent. Au moins, je sais que je le fais. En ce qui concerne la façon dont il l'a dit, c'est juste un discours d'entreprise, mais n'y pensez pas trop. Comme d'autres l'ont dit, demandez-lui.

Ominus
la source