Gestion de projets externalisés


Original: http://www.stevemcconnell.com/articles/art07.htm

 

Développement de logiciels, Décembre 1997

Acheter, construire, ou externaliser? C’est la torsion des années 1990 sur une question classique. Vous ne pouvez pas trouver dans un dictionnaire relié encore, mais la sous-traitance fait partie du vocabulaire quotidien des développeurs du monde entier. Souvent, il est entonné pour le faire sonner comme une bénédiction ou une épithète, et il peut être un ou des deux.

L’externalisation est regardé avec espoir le plus cher par les responsables du développement pressés entre la diminution du personnel ou de champignons attentes. Il possède des yeux avec méfiance par les développeurs en interne s’inquiètent de la sécurité de l’emploi. Et, bien sûr, c’est le filon de payer les salaires de l’industrie de sous-traitance.

La gestion et la sous-traitance ne sont généralement pas utilisés dans la même phrase, sauf par les gestionnaires de ces entreprises de développement de marché auxquelles les projets de logiciels sont externalisées. Cadres d’autres entreprises, les acheteurs et les acheteurs potentiels de développement externalisés, sont plus susceptibles de penser que vous externaliser le développement de logiciels en partie pour éviter de gérer vous-même. Une fois qu’un projet est sous-traitée, la gestion c’est le problème de quelqu’un d’autre. Après tout, c’est ce que vous les payez pour, n’est-ce pas?

Steve McConnell pense autrement. Son message est simple: les projets externalisés nécessitent l’acheteur de pratiquer une bonne gestion. Vous devez gérer un projet externalisé au moins aussi bien que la gestion de vos projets de développement en maison, mais il ya des complications supplémentaires. Heureusement, Steve a déjà chorégraphié les étapes de base pour vous. Si vous les suivez attentivement, vous et votre nouveau partenaire d’externalisation devriez être en mesure de terminer la danse avec des sourires sur vos visages.

– Larry Constantine

Certains des plus grands risques de projet logiciel sont associés à des projets confiés à des fournisseurs internes ou externes. Comment pouvez-vous gérer les projets en sous-traitance sans perdre le contrôle?

Prenons le cas triste mais vrai de Giga-Corp. Ses clients réclamaient la deuxième version de son logiciel populaire, mais il n’a pas de personnel technique suffisant pour travailler sur la mise à niveau, et le gestionnaire en charge du projet était déjà dépassé. Giga-Corp a décidé d’externaliser.

Il a créé un cahier des charges de 50 pages et a envoyé une demande de proposition pour une douzaine de fournisseurs. La demande de proposition n’incluait pas un budget, mais a fait indiquer une forte préférence pour une offre à prix fixe avec livraison dans les cinq mois. Après la tenue d’une réunion pour répondre aux questions des fournisseurs, Giga-Corp a reçu une poignée d’offres, tous pour le temps et les matériaux, allant de $ 300,000 à $ 1,200,000. L’offre la plus élevée est venu de oiselet, Inc., une start-up fondée par un ancien programmeur Giga-Corp qui avait travaillé sur la première version du logiciel. Giga-Corp a jeté dehors, avec la soumission la plus basse, sur l’hypothèse qu’il s’agissait de valeurs aberrantes et probablement le résultat de l’incompréhension des exigences techniques du projet. Il choisi milieu-de-sac Mega-major et a ensuite négocié l’estimation jusqu’à $ 350,000.

Vers le Sud

Le premier indice incontestable de mal venue quand la tête de recruteur de Mega-major a téléphoné oiselet, le président Inc. un jeudi après-midi, l’air désespéré. «Nous avons besoin de trois programmeurs C ++ le lundi,” at-il dit. “Giga-Corp accepté notre offre, mais leur ingénieur en chef dit notre approche Visual Basic n’était pas techniquement réalisable et nous n’avons pas suffisamment de programmeurs C ++ pour soutenir le projet.” Oiselet, président Inc. a déclaré qu’il ne pouvait pas trouver trois programmeurs C ++ sur un délai aussi court, et a souhaité bonne chance recruteur de Mega-major.

D’une certaine manière, lorsque le lundi enroulée autour, Mega-major s’est présenté au siège de Giga-Corp avec trois nouveaux programmeurs C ++. L’équipe Mega-major était enthousiaste et semble faire de bons progrès au début, mais par la marque de cinq mois, l’équipe était nulle part près de la fin. Mega-major a promis la livraison dans les huit mois, ce qui était acceptable pour Giga-Corp parce que a coïncidé avec le début de la prochaine année de ventes. Huit mois après le projet à la fin était encore loin de la portée, et Giga-Corp exigé des concessions de prix pour retard de livraison.

Quatorze mois après le projet, après plus de bulletins de calendrier et de nombreuses réunions douloureuses avec Giga-Corp, Mega-major livrés environ 25% de la fonctionnalité prévue à un coût d’environ $ 1,5 millions. Compte tenu de l’encastrement de la fonctionnalité, Mega-major avait essentiellement envahi son coût proposé par 1,400% et le calendrier proposé par 1,000%.

Fermer hermétiquement les écoutilles

Avec l’externalisation de logiciels à la hausse, le Giga-Corp et le désastre Mega-major est en cours relus par le logiciel sous-traitance des acheteurs et des vendeurs dans le monde entier. Ces problèmes auraient pu être évités si les participants avaient compris les bases du cycle de vie des logiciels sous-traitance.

Externalisation efficace se compose de six étapes: précisant les exigences en détail, prend une décision explicite d’externaliser, l’obtention de ressources, la sélection d’un fournisseur, l’écriture du contrat, et la construction d’une équipe de gestion interne qui permettra de surveiller le projet à terme. Super grande style- des projets-DoD devra plusieurs étapes, mais la plupart des projets de logiciels d’entreprise bénéficiera d’apprendre les spécificités de ces étapes de base.

Première étape: préciser les exigences en détail

Parce que le cahier des charges devient souvent partie du contrat juridique entre l’acheteur et le vendeur, projets externalisés doivent exigences de haute qualité. Si les exigences ne sont pas clairement précisés dans le début, le projet peut devenir un champ de bataille sur lequel toutes les ramifications possibles de l’acheteur et du vendeur des intérêts différents sont contestés. Comme l’étude de cas illustre, c’est une bataille que les deux parties vont perdre.

Si l’organisation de faire l’achat n’a pas les ressources internes pour créer des exigences détaillées, il doit utiliser une acquisition en deux phases. Pendant la première phase, l’acheteur externalise le développement des exigences. Pendant la deuxième phase, l’acheteur met ces exigences sur la candidature, puis confie le développement du logiciel. En général, si une organisation ne dispose pas des ressources techniques ou de gestion à l’interne pour effectuer les tâches nécessaires à l’externalisation efficace, elle doit avoir un tiers désintéressé les exécuter.

Les exigences détaillées sont aussi à la base de l’effort et le calendrier des estimations de l’acheteur. Un acheteur qui ne crée pas d’estimations détaillées ou les faire faire par un tiers désintéressé ne saura pas si un $ 300,000 ou une offre $ 1,200,000 est plus réaliste.

Deuxième étape: Prendre une décision explicite à externaliser

La décision d’externaliser invariablement consiste à peser les coûts et les avantages. Parce que l’externalisation va augmenter le risque d’un projet, vous devez prendre la décision explicite, avec la pleine conscience des problèmes potentiels. Ne pas choisir d’externaliser parce qu’il semble être le plus facile l’option-il semble rarement facile au moment où le projet est terminé.

Troisième étape: obtenir des ressources

L’acheteur doit acquérir suffisamment de ressources pour réaliser le projet. Ces ressources comprennent les budgets de la phase de proposition, le paiement des fournisseurs, et la gestion du projet du côté de l’acheteur.

Quatrième étape: sélectionner un fournisseur pour développer le système

Choisissez une externalisation fournisseur de logiciels avec soin. Le processus de sélection des fournisseurs implique généralement la création d’une demande de proposition, en le distribuant à des fournisseurs potentiels, et leur demandant de soumettre des propositions. La demande de proposition doit contenir au moins les matières suivantes:

Spécification des exigences logicielles. Ce sont les exigences détaillées qui ont été développés dans la première étape de l’externalisation efficace.

Énoncé des travaux. La déclaration de travaux est un document contenant les exigences de la gestion du projet. Il précise à vos besoins en matière de gestion des modifications des exigences, quels types d’outils et d’environnements de développement seront utilisés, les méthodes techniques et méthodes, la documentation des logiciels, des données techniques (notes de conception, les diagrammes, le code d’échafaudage, de construire des scripts, et ainsi de suite), les procédures de sauvegarde , contrôle de code source, les procédures d’assurance de la qualité et de la gestion l’organisation en particulier l’interaction du projet entre votre organisation et le vendeur.

Liste de documentation. La demande de proposition doit préciser les documents que vous souhaitez avoir développé en collaboration avec le logiciel. Vous devez inclure les documents de conception, de documentation de code source, manuels d’utilisation, les rapports d’état, et tous les autres documents que vous souhaitez développés.

Les estimations de coûts et de calendrier. Inclure le coût et le calendrier estime-vous prêt au cours du développement des exigences. Giga-Corp ne savait pas combien son projet devrait coûter et combien de temps il devrait prendre, qui l’a conduit à engager un fournisseur incapable d’effectuer le travail. Si vous ne publiez pas vos estimations de coûts et de calendrier dans la demande de propositions, le processus de proposition dégénère en un jeu dans lequel chaque vendeur essaie de deviner votre budget.

La divergence entre les estimations des fournisseurs de Giga-Corp suggère soit que les exigences techniques ne sont pas suffisamment au point ou que tout ou partie des vendeurs étaient estimateurs pauvres. Le fait que l’offre la plus élevée a été présentée par la société le plus familier avec le logiciel était un avertissement clair. Si Giga-Corp n’a pas voulu choisir le plus offrant, il aurait été sage de passer à une approche d’acquisition de deux de phase, en utilisant l’un des fournisseurs de développer les exigences plus en détail, la création de nouvelles estimations de coûts et de calendrier, puis mettre le projet sur ​​de nouvelles enchères.

Les critères d’évaluation. Dites aux fournisseurs quels critères vous allez utiliser pour évaluer leurs propositions. Critères typiques incluent la capacité de gestion de projet, la capacité technique générale, l’approche de la conception technique, les méthodes techniques, de documentation technique, de la gestion de données techniques, l’approche de gestion des exigences, l’approche de gestion de la configuration, et l’approche d’assurance qualité.

Fournisseurs compétents expliquer leurs propositions comment ils ont l’intention de rencontrer chacun des critères d’évaluation. En publiant les critères d’évaluation, il sera plus facile pour vous de faire des comparaisons côte-à-côte entre les propositions, et à améliorer de façon significative la qualité de l’information que les fournisseurs de fournir.

Directives pour la préparation de propositions. Décrivez comment vous voulez que les propositions soient organisés et formatés. Inclure les descriptions et les limites de page pour chaque section, taille des marges, le contenu des en-têtes et pieds de page en cours d’exécution, et la taille de police. Cela peut paraître trop pointilleux, mais en spécifiant un format de proposition de norme rend le travail plus facile de l’évaluation de la proposition. Assurez-vous de créer une proposition de l’échantillon afin que vous sachiez les limites Page de comptage sont raisonnables. Dans les grands projets, les acheteurs distribuent leurs directives concernant les propositions pour examen par les fournisseurs avant qu’ils distribuent la demande officielle de proposition. Cela donne vendeurs la possibilité de commenter sur le nombre de pages, les critères d’évaluation, et d’autres questions et contribue à améliorer la qualité de l’information de l’acheteur obtient en fin de compte dans le processus de proposition en général.

Choisir le gagnant

Si vous avez fait vos devoirs lorsque vous avez créé la demande de propositions, évaluation des propositions sera presque indolore. Créer une matrice de décision sur la base des critères d’évaluation décrits dans votre demande de proposition, et marquer chaque proposition en conséquence. Soyez prêt à leur poser des questions pour couvrir les réponses manquantes ou insuffisantes proposition.

Vous pourriez éliminer certains fournisseurs en raison des faibles scores global ou dans des catégories spécifiques. Par exemple, vous pourriez éliminer tout vendeur que les scores de moins de 10 des 15 points de la capacité de gestion de projet. Si Megamajor a marqué seulement sept points de la capacité de gestion de projet, il aurait été éliminé. En publiant des critères d’évaluation explicites et marquant des propositions fondées sur eux, Giga-Corp aurait pu savoir que Megamajor était faible critique dans la gestion de projet. Ainsi, dépassement de projet éventuel de Mega-major aurait été prévisible et évitableau moment de la proposition.

Selon le cas Giga-Corp illustre, la soumission la plus basse et le prix final du projet ne sont souvent pas liés. L’objectif de l’attribution d’un contrat est de ne pas choisir l’offre la plus basse, mais de choisir le fournisseur qui offrira le meilleur rapport qualitéfaire le meilleur travail pour le moins d’argent à en juger par des évaluations systématiques des propositions. Vous pouvez également utiliser les critères d’évaluation pour négocier des modifications à la proposition du vendeur gagnante. Par exemple, Giga-Corp aurait pu négocier des changements à la gestion des exigences et assurance de la qualité des approches si ce sont les points faibles de l’offre gagnante.

Cinquième étape: Rédiger le contrat

Vos sentiments chaleureux au sujet de votre choix de fournisseur seront s’évaporer rapidement si le projet commence à se désagréger. Assurez-vous que votre contrat précise les détails des exigences de gestion, les exigences techniques, les garanties, les brevets et les autres questions de propriété intellectuelle, la résiliation du contrat, de paiement et d’autres questions importantes. Ne pas essayer de rédiger le contrat même. Vous pouvez perdre devant les tribunaux si votre contrat ne signifie pas ce que vous pensez que cela signifie, donc dépenser de l’argent pour le faire réviser par un avocat avant de le signer.

Sixième étape: In-house de gestion et de surveillance

L’ampleur de dépassement de Mega-major suggère que Giga-Corp essentiellement n’a pas surveiller ou de contrôler le projet après l’attribution du contrat. Les gestionnaires de GigaCorp pourraient avoir volontairement accepté un dépassement de coûts de 100% ou 200%, mais ils devraient être en essayant de se mettre hors de l’entreprise à accepter sciemment un dépassement de 1 400%.

L’erreur la plus commune que je vois dans la gestion du développement externalisé de logiciels, c’est que personne sur le côté de l’acheteur gère le projet de développement sous-traitance du tout. Alors que l’externalisation peut en effet réduire la quantité de gestion nécessaires, il augmente le degré de sophistication de gestion nécessaire. Les problèmes liés à la gestion d’un projet dans le couloir sont amplifiés lorsque vous avez à gérer un projet à travers la ville ou à travers le monde.

Parce que vous ne pouvez pas suivre les progrès sur un projet externalisé tout en se promenant et en parlant à projeter membres de l’équipe, les indicateurs de suivi des projets doivent être plus formel. Dans votre demande de proposition, vous devez spécifier ce que les contrôles de gestion que vous souhaitez le vendeur à fournir afin que vous puissiez suivre la progression du projet. Ces contrôles peuvent inclure:

 

  •      Rapports hebdomadaires
  •      Mises à jour hebdomadaires de la liste des risques techniques
  •      Statistiques de défauts hebdomadaires
  •      Statistiques hebdomadaires sur la quantité de code ajoutée, modifiés et supprimés
  •      Des rapports hebdomadaires sur le nombre de modules prévus, numéro codé, et le nombre qui ont passé leurs examens de code
  •      Tout de nombreux autres indicateurs de la santé du projet.


Sur les petits projets, quelqu’un du côté de l’acheteur doit être mis en charge du suivi de la progression du fournisseur et une alarme sonore en cas de problème. Sur les grands projets, plusieurs personnes du côté de l’acheteur pourraient être nécessaires.

Smooth Sailing

Ces étapes peuvent sembler beaucoup de travail pour un projet externalisé. Comme l’étude de cas illustre, cependant, le prix de ne pas faire vos devoirs peut être dépassements budgétaires et de calendrier de 1000% ou plus. Le temps que vous passez à jeter les bases d’un projet réussi et le pilotage du projet à la conclusion souhaitée est du temps bien dépensé. Il suffit de demander un gestionnaire de projet qui a été élaboré par le chant de la sirène d’un logiciel facile aux rives rocheuses de fournisseurs fiables, des dépassements de coûts et de calendrier, les ruptures de fonctionnalités et projets qui ont échoué.

À propos de l’auteur

Steve McConnell est l’auteur du Code Complete (Microsoft Press, 1993); Développement rapide (Microsoft Press, 1996); et de nombreux articles techniques. Il travaille comme ingénieur logiciel en chef chez Construx logiciels constructeurs. Son dernier livre est un logiciel Guide de survie du projet (Microsoft Press, 1997). Vous pouvez le joindre à stevemcc@construx.com ou par le magazine Software Development.

Larry Constantine est l’éditeur Management Forum. Vous pouvez le joindre à LConstantine@compuserve.com ou par le magazine Software Development.

Écrivez-moi au stevemcc@construx.com.

Comments are closed.