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.