Tengo 2 días para tomar una decisión muy seria sobre las herramientas y plataformas que utilizará mi empresa para portar su aplicación WPF a Linux / Android / iOS.
Obviamente puedo señalar a mis mayores que 2 días no son suficientes para leer sobre todas las opciones posibles, y qué hay de intentar, hacer prototipos, etc. Puedo decirlo, no me ayudará un poco, tengo 2 días, y después de 2 días se tomaría la decisión. Período.
Por un lado, estoy frustrado, por el otro lado, creo que hay una gran verdad en este enfoque, de lo contrario, puedo encontrarme fácilmente enterrado bajo docenas de SDK descargados, marcos, API, artículos de blog, etc., haciendo trabajos de banco, ejecutando muestras y olvidando en el proceso para qué fue todo.
Sin embargo, me temo que una decisión equivocada le costará caro a la compañía. Entonces, ¿cuál crees que es un proceso "ideal" para tomar tales decisiones?
Respuestas:
Si todo lo que tiene son 2 días y no hay tiempo para crear prototipos o incluso leer todas las alternativas, entonces solo hay 2 opciones:
Pregúntale a alguien que sepa y sigue sus consejos. Esto puede no necesariamente significar preguntarle a un individuo, sino pasar los 2 días buscando en blogs y artículos para obtener suficiente información para tomar una decisión un poco mejor que desinformada.
Investigue un poco sobre todas las opciones principales y luego elija una. A veces, el liderazgo significa no tener miedo de tomar una decisión equivocada, a menudo es más importante tomar una decisión firme que vacilar.
Puede cubrirse creando arquitecturas que estén más desacopladas y, por lo tanto, más fáciles de cambiar, por ejemplo, un modelo cliente / servidor le permitirá reemplazar su tecnología de interfaz de usuario por otra con una interrupción mínima.
fuente
Puede parecer que voy en contra de la corriente, pero recientemente leí el libro Creativity, Inc. de Ed Catmull y había un párrafo realmente bueno que abordaba esta situación:
Estoy seguro de que también se puede aplicar a su situación. Tal vez pueda tomar la decisión hoy eligiendo una y comenzar a trabajar en ella. Si funciona, entonces tendrás algo listo en esos dos días y dirás: "Elegí esto, y puedo mostrarte lo que podemos hacer con él porque realicé algunas pruebas ...". Si nota en un día que la solución elegida no vale la pena, puede elegir una diferente y trabajar con eso al día siguiente. El peor de los casos es que usará ambos días para probar dos plataformas, descubriendo que ninguna de ellas funciona, pero esa es la respuesta correcta, ¿no? Elimine la hierba, deshágase de las posibles elecciones incorrectas, por lo que cualquier próxima decisión será mucho mejor que la anterior. El mejor de los casos es que usted '
Obviamente no dominará ninguna plataforma en dos días, pero elegir una ASAP definitivamente le dará una mejor perspectiva sobre cómo funciona (mucho más que solo leer sobre ella) y lo llevará a una mejor respuesta.
fuente
gbjbaanb hace algunos muy buenos puntos. Solo pensé que agregaría un poco.
Es obvio que no tiene tiempo suficiente para tomar una decisión perfectamente informada. Su única opción es intentar tomar una decisión que minimice el dolor futuro. Sugeriría:
Documente claramente la naturaleza de la situación: envíe un correo electrónico a sus gerentes y CC a sus gerentes y partes interesadas. Explique que el problema que le han asignado es complicado, pero que está dispuesto a darlo todo. Pero tenga en cuenta que, dadas las estrictas limitaciones de tiempo, no puede garantizar que sus resultados sean óptimos.
Encuentre un marco / plataforma con una comunidad en línea grande y activa. Lo último que desea es quedarse atascado depurando un marco oscuro solo.
Como mencionó anteriormente gbjbaanb, mitigue sus dolores y riesgos de portabilidad utilizando una arquitectura débilmente acoplada. Si todo tiene forma de pera con una de sus opciones tecnológicas, esto hará que sea más fácil cambiarlo.
He estado en tu situación antes y eventualmente se convirtió en una pesadilla política. Cuando el sistema no funcionaba mágicamente, la gente comenzó a señalar con el dedo y las cosas se pusieron feas. Es por eso que mi recomendación número 1 es documentar claramente que hiciste tu mejor esfuerzo contra probabilidades imposibles .
Buena suerte :)
fuente
Dado que efectivamente le han dado poco tiempo para hacer más que elegir candidatos de un sombrero, adoptaría el siguiente enfoque.
Seleccione tecnologías que:
Por definición, esto descartaría cualquier tecnología de punta, por muy buena que sea.
Además, resista el impulso de seguir con la tecnología X sin más análisis simplemente porque el desarrollador Fred la ha usado en el pasado. Es poco probable que se ajuste perfectamente, y si Fred se pasa a pastos más verdes, ahí va su experto en dominios.
fuente
2 días es un período muy corto para tomar ese tipo de decisión, pero dado que debe hacerlo en la siguiente lista de 2 días,
Ahora necesita encontrar alternativas que pueda usar para todos los entornos de destino
Para cada alternativa, encuentre el soporte para que cada una use la conectividad / seguridad que usa la aplicación actual.
luego, para cada componente personalizado / de terceros, averigüe si hay alternativas fáciles de usar para cada uno.
Y luego piense en cómo se puede hacer la distribución para cada alternativa que encontró.
Creo que durante 2 días este debería ser el alcance que debería poder cubrir y, en función de los resultados, puede proporcionar una solución.
fuente
Por mucho que me guste aprender y experimentar cosas nuevas, bajo restricciones de tiempo, la mejor opción es siempre buscar lo que sea o se sienta más cómodo para trabajar. Quédate con lo que sabes.
Incluso si a la larga queda claro que no eligió la mejor opción, todo lo que desarrolló mientras tanto continúa siendo valioso y envuelve un tipo de conocimiento de campo que todavía es completamente utilizable y portátil. Y eso es exactamente porque el contexto cómodo, las herramientas y la plataforma que elegiste usar se mantienen fuera del camino y te hacen ver lo que realmente importa.
fuente
Haga una lista de los factores que deberían entrar en la elección, cosas como: Costo de seguridad de rendimiento facilidad de uso capacidad de hacer X capacidad de hacer Y familiaridad del desarrollador tiempo de comercialización, etc.
Esto debería tomar menos de una hora (en realidad debería tomar menos de 15 minutos), luego siéntese con la gerencia y pídales que prioricen esos factores. (Las posibilidades de que sus prioridades y las suyas sean las mismas son remotas, aunque puede orientar su elección de alguna manera con sugerencias sobre prioridades). Ahora ya sabe qué evaluar sobre la tecnología.
Elija tres o cuatro soluciones comunes a su problema basándose en una búsqueda en Internet.
Luego, lea lo suficiente como para adivinar qué tan bien cada una de las opciones se ajusta a sus prioridades 3-4 principales. Asigne un valor numérico a cada opción. Haga los cálculos multiplicando la calificación de cada prioridad por el valor establecido en esa prioridad (10 para el número 1, 8 para el número 2, 6 para el número 3 4 para el número 4 o lo que quiera). Ahora tiene una puntuación numérica para cada posibilidad. En general, será obvio cuál cumple mejor las prioridades asignadas. Mejor aún, ahora tienes algo analítico que llevarles para probar tu elección. Por lo general, comprarán su elección porque tiene los números para respaldarla. Si los números no lo admiten, debe preguntarse por qué prefiere el otro y elegir el mejor numérico o volver a visitar los números asignados.
Al concentrarse en cuáles son las verdaderas opciones preferidas, puede reducir mucho tiempo de investigación. Probablemente puedas adivinar en un día y luego te quede un día para aprovechar las 2 principales posibilidades y descargar versiones de prueba si es necesario y jugar un poco con ellas.
fuente