web-dev-qa-db-fra.com

Comment pouvons-nous gérer efficacement les projets logiciels sans tuer la créativité?

Je suis convaincu que le développement de logiciels est essentiellement un processus de création. Je crois aussi que c'est le cas pour tous les niveaux, de l'architecture au codage.

Qu'est-ce qui me fait penser? Pour la mettre très brièvement, car un développeur de logiciel est censé créer quelque chose de nouveau, pas seulement copier des trucs existants. Il s'agit plus que de saisir votre boîte à outils et de sortir le bon outil d'emploi, bien que cela aide définitivement à avoir une bonne boîte à outils.

D'autre part, lorsque nous considérons le développement de logiciels du côté de la gestion de projet, il est souhaitable de diviser un projet de développement en petites tâches et d'attribuer à chaque tâche un certain temps dans lequel elle devrait être complétée. (Je sais qu'il y a le concept de points d'histoire, mais je ne pense pas que cela rend une si grande différence dans la pratique. À la fin de la journée, un développeur devrait livrer après un certain temps.)

D'une perspective de gestion de projet, il est clair que ces tâches devraient être petites. En fonction de qui vous demandez, une tâche idéale devrait être quelque chose entre 30 minutes et une journée.

Maintenant, voici mon problème: j'ai du mal à être créatif lorsqu'il est confronté à une limite de temps pour un emploi, même s'il s'agit d'une limite molle basée sur des estimations ou des points d'histoire. Plus la limite de temps est plus courte, le pire qu'il obtient. Souvent, je sens que je suis beaucoup plus productif (parce que j'ai la liberté d'être créatif) lorsque je fais juste ce que je pense avoir besoin d'être fait sans trop penser à la période prévue pour chaque tâche. Certaines tâches pourraient prendre beaucoup plus de temps que prévu, mais la qualité sera plus élevée et dans l'ensemble, le projet sera probablement terminé plus tôt.

Est-ce juste ma perception personnelle ou s'agit-il d'un problème général? Si ce dernier, que peut-on faire à ce sujet?

éditer
[.____] après avoir lu les premiers commentaires et réponses, je me suis souvenu (encore une fois) que le terme créativité n'a pas la meilleure réputation en ingénierie. En étant créatif, je ne veux pas faire de choses non coolées qui ne fournissent aucune valeur commerciale. Ce que je veux dire, c'est résoudre les problèmes de manière nouvelle ou non standard.

5
Frank Puffer

Je vous conseillerais de penser à votre développement de logiciels dans le contexte de l'entreprise. L'objectif de l'entreprise est de faire un profit. Pour faire un profit, l'entreprise doit produire aussi vite que possible tout en maintenant un niveau de qualité.

Lorsque nous sommes profondément dans les conceptions et le code, il est parfois facile d'oublier que souvent la méthode la plus simple, simple et la plus rapide est la meilleure pour l'entreprise, mais ce n'est pas toujours le cas. Parfois, il faut beaucoup de considération et de créativité pour compléter une fonctionnalité.

Ma suggestion est que vous prenez tout cela en compte lors de l'estimation. S'il s'agit d'une caractéristique importante qui dépendra de plus de temps à améliorer considérablement la qualité ou améliorera l'agilité du reste du projet, puis estimer plus haut. Si vous avez toujours du mal à produire un résultat décent au moment où vous avez estimé, alors estimer plus haut. Proposer des compromis de qualité au chef de projet et obtenir leur opinion. Si tôt le travail de travail sur la tâche, vous pensez que plus de temps pourrait produire un meilleur résultat, consulter votre chef de projet pour obtenir son opinion sur le point de savoir si un meilleur résultat vaut le feuillet d'estimation. De cette façon, vous partagez la responsabilité de l'horaire et de la qualité avec le reste de votre équipe.

Dans un monde parfait, nous n'avions pas besoin de mettre des estimations sur quoi que ce soit et que nous aurions un peu de temps illimité pour créer des logiciels magnifiques et élégants, mais surtout ce n'est pas le cas, et nous devons accepter que les besoins de l'entreprise doivent être placés avant tout.

2
Samuel

Les estimations ne sont pas des échéances.

Une estimation spécifie combien de temps une telle tâche prend en moyenne, mais des détails de cette tâche peuvent le faire plus facilement ou plus difficile que prévu.

Si vous traitez des estimations comme étant des échéances, les délais seront souvent manqués, soit des estimations seront rembourrées à quelque chose comme le 90e centile. Cela fait des estimations inutiles pour estimer les efforts restants totaux (vous pouvez vous rappeler des statistiques que la moyenne de la somme est la somme des moyennes, mais le 90e centile de la somme est inférieur à la somme des 90e centiles. En fait, pour suffisamment de Tâches La forte loi de grands nombres implique que le centile de 90% de la somme se rapproche de la somme des moyennes, de sorte que si vous souhaitez ajouter des estimations, vous avez besoin de moyennes de moyennes, non de garanties).

La gestion de projet étant préoccupée par la gestion du projet, ayant une bonne estimation pour l'effort de projet est plus importante que les bonnes estimations de la tâche, un bon gestionnaire de projet devrait donc permettre une variation considérable pour les temps d'achèvement des tâches. Au cours des semaines ou des mois, les moyennes devraient se rapprocher de l'estimation.

2
meriton

Maintenant, voici mon problème: j'ai du mal à être créatif lorsqu'il est confronté à une limite de temps pour un emploi, même s'il s'agit d'une limite molle basée sur des estimations ou des points d'histoire.

En fait, je trouve le contraire, d'une certaine manière. Dans mon expérience, une limite de temps peut être une contrainte créative qui vous oblige à remettre en question l'utilité de chaque exigence initiale. Lorsque vous êtes court à temps, vous devez également développer des solutions de contournement et trouver des moyens nouveaux, moins chers ou plus intelligents d'aborder un problème.

À la fin de la journée, vous auriez peut-être échangé de la qualité, de l'extensibilité ou de la portée du temps, mais pouvez-vous vraiment dire que vous étiez moins créatif?

En d'autres termes, la créativité signifie-t-elle nécessairement Créer beaucoup de choses?

Modifier sur la créativité technique: cela ne devrait pas être quelque chose que vous improvisez-vous totalement par vous-même au dernier moment

Dans mon équipe, une grande partie de la "créativité" dans la conception de code se produit car les Devs décomposent collectivement une histoire d'utilisateur dans des tâches et les estimer. C'est à ce moment-là que nous aurons des discussions techniques sur les détails de la conception de Nitty Gritty, faites notre dessin de brainstorming et de schéma de la carte blanche. L'idée est que vous ne trouvez pas une estimation de tâche au hasard. C'est quelque chose que tout le monde pensait et accepté.

Une autre grande partie de la créativité arrive dans Spikes, tâches de recherche technique et d'exploration qui ont également une limite de temps. Encore une fois, la contrainte créative du temps joue un rôle important ici. Cela vous oblige à vous concentrer sur la mise en place de quelques solutions pragmatiques et de la paralysie d'analyse atténucique.

Tout cela réduit la quantité de liberté créative un seul développeur besoins lorsque vous faites une tâche. Bien sûr, ils ont toujours la liberté de nommer des choses comme elles veulent les nommer, concevant leurs tests unitaires tels qu'ils voient en forme, etc. mais la large image aurait dû être définie collectivement auparavant.

0
guillaume31

Si vous êtes préoccupé par des contraintes de temps, j'explique généralement la situation globale aux gestionnaires de projet sur le type suivant.

Je travaille toujours aussi vite que possible, mais pas plus vite. Trop vite mène à des erreurs/bugs supplémentaires qui prennent plus de temps à résoudre que tout simplement travailler plus attentivement en premier lieu. Alors, travaillant à mon maximum >> efficace << La vitesse est ce qui obtiendra le travail effectué dans le temps de calendrier le plus court. Et si cela n'est pas assez rapide pour votre emploi du temps, alors l'horaire est irréaliste ou vous avez le mauvais homme (moi) pour le travail.

Veuillez noter que (comme vous pouvez l'imaginer), je suis toujours un mot que la dernière phrase lève plus "doucement". Je ne fais que télégraphier l'idée à vous ici. Néanmoins, vous avez d'une certaine manière à avoir cette idée.

Modifier (être votre édition met en valeur "valeur commerciale"
[.____ Et dans ce genre de cas, la "créativité" peut signifier trouver un moyen de faire un long travail plus court. Voici deux exemples de ma propre expérience (voir mon CV, URL de la page d'accueil du profil, pour plus de détails, y compris les échantillons de code et de documentation).

Retour (retour) en 1986, j'ai eu un contrat avec CBS en tant que programmeur principal pour aider à développer leur "système d'affichage électronique" pour les élections à mi-parcours cette année-là. Donc, la date limite était le 4 novembre, période!

De plus, en 1989, j'ai eu un contrat avec Chase Bank pour développer un système de négociation à prix fixe pour les obligations gouvernementales (et ultérieures d'entreprise). Bien qu'il y ait un peu plus de salle à rouler dans ce calendrier que CBS, le système a également incorporé divers changements réglementaires de la SEC et la poursuite aurait potentiellement supporté certaines sanctions importantes si la planification n'a pas été remplie.

Plusieurs projets plus récents avaient une rigidité similaire à la planification (mais je ne discute pas de clients après Y2K Online). En tout état de cause, tous ces types de situations nécessitent une créativité substantielle dirigée vers l'obtention du travail correctement et à la planification. Il existe toutes sortes de "créativité" et votre boîte à outils devrait également inclure ce type.

0
John Forkosh