web-dev-qa-db-fra.com

Comment faire des décisions techniques importantes données très peu de temps

J'ai 2 jours pour avoir pris une décision très sérieuse sur les outils et les plates-formes que mon entreprise utilisera pour porter son application WPF à Linux/Android/iOS.

De toute évidence, je peux indiquer mes aînés que 2 jours suffisent à lire sur toutes les options possibles et qu'en est-il d'essayer, de faire des prototypes, etc. Je peux le dire, cela ne m'aidera pas un peu, j'ai 2 jours et Après 2 jours, la décision serait prise. Période.

D'un côté, je suis frustré, de l'autre côté, je pense qu'il y a un grain de vérité dans cette approche, sinon je peux me retrouver facilement enterré sous des dizaines de SDK, cadres, API, articles de blogs, etc., etc., etc. Faire des bancs, des échantillons d'exécution et oublier dans le processus ce que tout était pour.

Je crains toujours qu'une mauvaise décision coûterait beaucoup à la société. Alors, que pensez-vous est un processus "idéal" pour faire de telles décisions?

36
Flot2011

Si tout ce que vous avez est 2 jours et pas de temps pour prototyper ou même lire toutes les alternatives, il n'y a vraiment que 2 options:

  1. demandez à quelqu'un qui sait et suivez leurs conseils. Cela ne signifie peut-être pas nécessairement demander à une personne, mais consacrer les 2 jours à rechercher à travers des blogs et des articles pour glaner suffisamment d'informations pour prendre une décision légèrement améliorée que non informée.

  2. Faites une petite recherche sur toutes les options grand public, puis en choisir un. Parfois, le leadership signifie avoir peur de prendre la mauvaise décision, il est souvent plus important de prendre une décision ferme que de vacillaire.

Vous pouvez vous couvrir en proposant des architectures plus découplés et donc plus faciles à changer - par exemple, un modèle client/serveur vous permettra de remplacer votre technologie d'interface utilisateur avec une autre avec une perturbation minimale.

48
gbjbaanb

gBJBAANB fait de très bons points. Je pensais juste que j'ajouterais un peu.

Il est évident que vous n'avez pas assez de temps pour prendre une décision parfaitement éclairée. Votre seule option est d'essayer de prendre une décision qui minimisera la douleur future. Je suggérerais:

  1. Documenter clairement la nature de la situation: envoyer un courrier électronique à votre responsable (s) et cc leurs gestionnaires et les parties prenantes. Expliquez que le problème que vous avez été assigné est un délicat, mais que vous êtes prêt à vous donner votre tout. Mais notez que, compte tenu des contraintes de temps strictes, vous ne pouvez pas garantir votre constatation d'être optimale.

  2. Trouvez un cadre/une plate-forme avec une grande communauté en ligne active. La dernière chose que vous voulez, c'est être bloquée du débogage d'un cadre obscur.

  3. Comme mentionné précédemment par GBJBAANB, atténuer vos douleurs de portage et vos risques en utilisant une architecture couplée lâche. Si tout se passe en forme de poire avec l'un de vos choix de technologie, cela facilitera l'échange.

J'ai déjà été dans votre situation et cela s'est finalement transformé en cauchemar politique. Lorsque le système ne travaillait pas comme par magie, les gens ont commencé à pointer des doigts et que les choses se sont moquées. C'est pourquoi la recommandation n ° 1 est de documenter clairement cela vous avez fait de votre mieux contre les chances impossibles.

Bonne chance :)

10
MetaFight

Comme ils vous ont effectivement donné de temps à faire plus que de choisir des candidats à partir d'un chapeau, j'adopterais l'approche suivante.

Sélectionnez Technologies qui:

  • Avoir une grande base d'utilisateurs
  • Avoir un soutien actif (via les canaux)
  • Sont activement développés

Par définition, cela exclurait toute technologie de bord de saignement, aussi bonne chose que cela peut être.

Aussi, résister à l'envie d'aller avec la technologie X Sans autre analyse simplement parce que Fred Le développeur l'utilise dans le passé. Il est peu probable qu'il soit un ajustement parfait et si Fred passe à des pâturages plus verts, votre expert de domaine passe à votre domaine.

5
Robbie Dee

2 jours est une très courte période pour faire ce type de décision, mais puisque vous devez le faire dans 2 jours après la suite,

  1. Quelles sont les plates-formes cible
  2. Quels sont les composants personnalisés/tiers utilisés dans l'application actuelle où cela pourrait nécessiter des efforts considérables pour le port. Par exemple: Composants de graphique, composants de grille, composants de rapport, etc.
  3. Comment l'application actuelle est-elle connectée au monde et comment la sécurité est traitée (connexions de base de données/services Web/etc ...)
  4. Comment il est distribué et comment les mises à jour fournies

Maintenant, vous avez besoin de rechercher des alternatives que vous pouvez utiliser pour tous les environnements cible.

Pour chaque alternative, vous trouverez la prise en charge de chacune d'utiliser la connectivité/la sécurité que l'application actuelle utilise.

ensuite, pour chaque composant personnalisé/tiers découvre s'il existe des alternatives faciles à utiliser pour chacun.

Et puis pensez à la manière dont la distribution peut être effectuée pour chaque alternative que vous avez trouvée.

Je pense que pendant 2 jours, cela devrait être la portée que vous devriez être capable de couvrir et basé sur les résultats que vous pouvez fournir une solution.

4
Low Flying Pelican

Autant que j'aime apprendre et expérimenter de nouvelles choses, sous contrainte de temps, la meilleure option est toujours d'aller pour tout ce qui est ou se sent plus confortable pour travailler. coller à ce que vous savez.

Même si, à long terme, il devient clair que vous n'avez pas choisi la meilleure option, tout ce que vous avez développé entre-temps continue d'être précieux et enveloppe une sorte de connaissances sur le terrain qui est toujours complètement utilisable et portable. Et c'est exactement parce que le contexte confortable, les outils, la plate-forme que vous avez choisis d'utiliser rester à l'écart et vous faire voir ce qui compte vraiment.

4
Ando

Faites une liste des facteurs qui devraient entrer dans le choix, des choses comme: la sécurité de la sécurité des performances Facilité d'utilisation Capacité à faire X Possibilité de faire une connaissance de la familiarité des développeurs Y au marché, etc.

Cela devrait prendre moins d'une heure (il devrait en fait prendre moins de 15 minutes), puis s'asseoir avec la direction et leur donner la priorité à ces facteurs. (Les chances de leurs priorités et de vos priorités sont identiques à distance, bien que vous puissiez guider quelque peu à des suggestions quant aux priorités.) Vous savez maintenant quoi évaluer la technologie.

Choisissez trois ou quatre solutions communes à votre problème sur la base d'une recherche sur Internet.

Ensuite, lisez assez pour faire une bonne idée de la façon dont chacun des choix correspond à leurs 3-4 priorités. Attribuez une valeur numérique à chaque choix. Faites les mathématiques en multipliant la note de chaque fois de priorité comme valeur définie sur cette priorité (10 pour le numéro 1, 8 pour le numéro 2, 6 pour le numéro 3 4 pour le numéro 4 ou le plus numérique que vous aimez). Vous avez maintenant un score numérique pour chaque possibilité. En général, il sera évident qui répond le mieux aux priorités assignées. Encore mieux, vous avez maintenant quelque chose d'analytique pour leur emmener pour prouver votre choix. Ils vont généralement acheter sur votre choix car vous avez les chiffres pour le soutenir. Si les chiffres ne le prennent pas en charge, vous devez vous demander pourquoi vous préférez l'autre et d'aller avec le meilleur numériquement ou revisitez les numéros attribués.

En vous concentrant sur ce que les vrais priroites du choix sont vous pouvez couper beaucoup de temps de recherche. Vous pouvez probablement avoir une estimation dans la journée et ensuite avoir une journée à prendre pour prendre les 2 meilleures possibilités et télécharger des versions d'essai si nécessaire et jouer un peu avec eux.

2
HLGEM