Tenemos un personal de TI de 5 personas:
Todos los seniors trabajan en la empresa desde hace 4 años y están totalmente comprometidos.
Además de nuestra aplicación para compartir fotos en línea, tenemos una aplicación de escritorio de Windows que permite grabar DVD de video con las presentaciones de diapositivas realizadas con la aplicación en línea. Está escrito con Zinc, una alternativa a Adobe AIR, con algo de código Imapi y FFMpeg.
Actualmente, esta aplicación es un dolor para todo el equipo porque tiene errores debido a las limitaciones técnicas de Zinc. Así que queremos rehacerlo desde cero en C#, lo que nos permitirá obtener un software mucho mejor.
Y aquí viene el verdadero problema: no podemos darnos el lujo de contratar a otro ingeniero senior, y actualmente no tenemos las habilidades internas de C#.
Aquí hay algunas ideas de solución:
Tengo que confesar que ninguno de estos realmente me hace feliz. ¿Qué piensas? ¿Alguna idea innovadora?
Esto suena como una decisión clásica entre construir y comprar. Recomendaría reunir al equipo para redactar una especificación funcional de cómo debería ser su software, qué debería hacer, cómo se instalará y cómo se mantendrá. Incluya una declaración de "Desarrollo preferido en C# para flexibilidad futura. Se aceptan/no se aceptan propuestas para usar lenguajes alternativos" (su elección).
Luego envíe una RFP a las tiendas de desarrollo personalizado y descubra cuál podría ser el precio para simplemente "comprarlo". Después de tener ese precio , puede decidir entre construir o comprar. Si la construcción sigue siendo más barata, la especificación funcional probablemente seguirá siendo útil.
Además, asegúrese de comprar el código fuente y los derechos de autor. Los abogados son útiles para contratos como este.
¿Podría aprovechar las habilidades de Actionscript y Flex y hacerlo en AIR?
Como cuestión de gestión de proyectos, recomendaría contratar a un experto con un contrato a corto plazo. Le brinda control, flexibilidad, la oportunidad de volver a contratar en el futuro y la posible transferencia de conocimiento de tener a esa persona en la empresa (especialmente si las personas de su equipo pueden acompañarlos/acompañarlos).
Un par de tiros salvajes:
¿Estarán los pasantes en casa el tiempo suficiente para que, si consigues un mentor, recuperes tu valor?
El mentor tendría que ser un experto en C#, por supuesto, tal vez un contratista independiente a tiempo parcial (dependiendo de la cantidad de tutoría que se requiera).
¿Los desarrolladores senior están comprometidos con las tareas correctas? ¿Le vendría bien a su C# senior un poco de tutoría para refrescar sus conocimientos y ayudar a unirse con los pasantes?
Si necesita hacerse en .NET framework, puede alternar a otro lenguaje de programación.
Consulte la tabla de idiomas compatibles con .NET Framework .
De acuerdo con esta tabla, .NET es compatible con el lenguaje Java y tiene un experto en Java en su equipo.
No estoy seguro de si es factible programar Java en .NET framework. Tal vez debería preguntar esto en los programadores SE o en stackoverflow .
Si la decisión de cambiar el lenguaje de programación no es posible y necesitas solucionar la falta de habilidad de tu equipo, te recomendaría lo siguiente:
A corto plazo:
A largo plazo:
Después de un tiempo, el senior podrá trabajar con el freelancer haciendo que la transición sea más fluida.
Encuentra un pasante de verano en una universidad
En lugar de contratar a un experto en C#, podría valer la pena buscar una alternativa de contratar a otro pasante o contratar a un estudiante a tiempo parcial. Si lo necesita para un proyecto temporal, creo que un estudiante motivado y hábil podría hacer un trabajo tan bueno como un profesional. También podría ofrecer un incentivo para contratarlo a tiempo completo después de completar los estudios. Los acuerdos contractuales pueden ser diferentes de un país a otro, pero debería ser más fácil rescindir el contrato de estudiante.
Lo que realmente hicimos: mi colega con capacitación previa en C# se está poniendo al día en sus habilidades de C# y comenzó a desarrollar la nueva versión del software.
Programamos el proyecto con el fin de reemplazar gradualmente los diferentes elementos escritos con Zinc por código C#. Primero, la parte para incrustar la interfaz de usuario de Flash, luego la parte que se usa para capturar imágenes de la presentación de diapositivas y, finalmente, la parte que pega las diferentes partes del sistema, incluido el codificador de video FFMpeg incorporado con un gran efecto de túnel.
De esa forma podemos mantener un software funcionando en todo momento, y al mismo tiempo mejorarlo gradualmente. Y mi colega tiene más tiempo para ponerse al día, sin involucrarse en un proyecto monolítico.
Actualmente, el proyecto va por buen camino y avanza a buen ritmo. Las primeras mejoras son realmente prometedoras.
johnny
Alexis Dufrenoy
Marcia
jmort253
Alexis Dufrenoy
jmort253
technical management
@Traroth : parece que esto podría ser unasoftware management
pregunta. Pero también puedo ver cómo podría ser una pregunta de PM y entiendo su punto.Keeno
mvark
cris