En primer lugar, realmente cuestionaría su noción de “97% completado”. Un proyecto de software rara vez se completa, a menos que estemos hablando de una aplicación con un período de uso muy limitado (como una aplicación de campaña de corta duración). Para el resto de la respuesta, supondré que ese no es el caso.
Según su pregunta, nadie tiene ningún control de calidad en ese proyecto. Esto ha causado una gran cantidad de errores. El hecho de que las aplicaciones tengan muchos errores de bloqueo hace que esto parezca aún peor porque los bloqueadores son los errores más fáciles de encontrar y resolver para los desarrolladores en el momento del desarrollo, antes de cualquier entrega de compilación al cliente. Si no pueden manejar esos errores, estoy casi seguro de que hay muchos errores de diferentes tipos en la aplicación.
Cuando tiene un proyecto de software lleno de errores, cualquier intento de estimación del esfuerzo restante se eliminará de la nada. Simplemente no puede estimar un proyecto en un estado donde tiene muchos problemas desconocidos. Pueden entregarle aplicaciones fijas en 2 semanas o en 6 meses. Nadie sabe.
- ¿Cuál es el mejor, iPad o MacBook, para desarrolladores?
- ¿Qué desarrolladores de software conozco para confiar en mi idea legalmente desprotegida?
- Tengo menos de 18 años y quiero una cuenta de desarrollador de Apple. ¿Mis padres tendrían que inscribirse en el programa para desarrolladores de Apple y luego publicar mis aplicaciones?
- ¿Cómo se convierten las personas en desarrolladores de software productivos?
- ¿Qué es el software y cómo se crea?
Mi primera preocupación en este momento no sería cuando el equipo arregle todos los errores restantes en las aplicaciones iOS / Android. Sería esto: ¿qué vas a hacer después de que te envíen las aplicaciones (y, supongo, el código fuente) ?
Como dije al principio, el proyecto de software rara vez se completa. Deberá desarrollar esta aplicación aún más, agregar nuevas funciones, admitir nuevas versiones del sistema operativo, optimizar los nuevos tamaños de pantalla del dispositivo, etc.
Recuerde, el código fuente siempre es una responsabilidad, no un activo. Si el código fuente que obtendrá de ese equipo es de mala calidad (que, según su descripción, sin duda lo será), hará que el desarrollo del proyecto sea extremadamente lento y costoso. Con un código lo suficientemente malo, la mejor decisión (tanto financiera como cronológica) podría ser desecharlo completamente y comenzar de nuevo con un nuevo equipo que se centre en la calidad.
Por mala calidad, no solo estoy hablando de errores en el producto final. Me refiero a cuestiones como cómo está organizada la base de código, si la arquitectura de la aplicación está bien diseñada, si las clases están aisladas, si las responsabilidades y dependencias están claramente definidas, si el código es comprobable, si hay bibliotecas de código externas y marcos elegidos con cuidado. se ha evaluado su calidad, todos los casos de error se manejan siempre de manera adecuada y sistemática, queda mucha deuda técnica en el código, etc. Si no se solucionan estos problemas, tendrá una pila muy costosa de archivos fuente con resultados negativos valor en tus manos.
En su situación, recomendaría el siguiente curso de acción:
- Si aún no lo ha hecho, obtenga acceso al código fuente y su historial de versiones completo (Github, BitBucket, etc.)
- Continúe exigiendo la entrega oportuna y sin errores de su equipo de desarrollo actual.
- Mientras tanto, encuentre dos o tres ingenieros de software senior independientes o compañías de software especializadas en el desarrollo de aplicaciones móviles. Firma un NDA con ellos si es necesario y pídeles que auditen la base de código. Querrá su opinión sobre la calidad interna del proyecto, cuáles son los principales puntos débiles y qué tan extensible y sostenible es el proyecto en su opinión. Obtenga 2-3 opiniones independientes y honestas. No sé qué tan grande es el proyecto, pero no esperaría que esto tome más de 2-3 días.
- Con estos nuevos datos en la mano, planifique sus próximos pasos. Si la base de código es un desastre, comience a buscar un nuevo equipo de inmediato. Tal vez pueda reutilizar algunas partes del código fuente, pero prepárese mentalmente para comenzar desde cero si es necesario. Si la base de código está bien (lo cual sospecho que no lo estará, pero de nuevo, los problemas podrían estar en otro lugar, como en componentes de terceros), querrá abordar la falla de administración de este proyecto ahora. Solicite un reembolso / amenaza de no pagar, y vea si puede reemplazar la administración.
Hagas lo que hagas, exige el siguiente proceso de tu equipo de desarrollo en el futuro:
- Entrega continua de nuevas compilaciones de aplicaciones desde el principio. Alguna “fase de configuración” es aceptable al comienzo del proyecto, pero rara vez debería tomar más de 1-2 semanas.
- Todo el proyecto debe mantenerse siempre en un estado liberable. Es posible que no se complete la función, pero los bloqueadores u otros errores que se introduzcan en el proyecto recibirán la prioridad expedita y se solucionarán en la próxima compilación como máximo. No permita que la mala calidad del producto se filtre en ningún momento. Para aislar el desarrollo en progreso y asegurarse de que no afecte la capacidad de liberación de la base de código, use métodos de desarrollo como ramas de características (por ejemplo, gitflow / hgflow) o alternar características.
- Centrarse en la calidad del código: programación de pares y / o revisiones de código. No permita que la mala calidad del código se arrastre en ningún momento. Asegúrese de que el equipo de desarrollo tenga suficiente experiencia para producir código de alta calidad y fácil de mantener.