Al programar software y aplicaciones web, ¿cómo determina la etapa en la que se encuentra realmente? (es decir, beta, alfa, estable, etc.)

He llegado a comprender las diferentes etapas como:

  • Pre-alfa: al software todavía le faltan algunas características clave.
  • Alfa: existen todas las características clave, pero pueden faltar algunas menores. Por lo tanto, la arquitectura general está ahí y posiblemente pueda usar el software para el propósito previsto. Bugs-a-much es de esperar.
  • Beta: todas las funciones se han implementado, pero en términos de calidad, el software no tiene un nivel aceptable (según lo definido por el desarrollador).
  • Estable: característica completa y de un nivel de calidad aceptable.

Tenga en cuenta que se pueden agregar nuevas funciones en cualquier momento. Estas etapas ya no son en ese sentido completamente válidas. En el proceso de software moderno, podría describirlos más en estas líneas:

  • Pre-alfa: “No deberías probarlo”.
  • Alpha: “Puedes probarlo para ver cómo se verá cuando termines, pero no hacemos promesas”.
  • Beta: “¿Entiendes que se bloqueará y de lo contrario hará un desastre de lo que estás haciendo?”
  • Estable: “Adelante, úsalo. Seguiremos mejorando pero ya debería funcionar correctamente”.

Me gusta la respuesta de Danny.

Llego a las mismas conclusiones, pero tiendo a pensar un poco diferente al respecto. Me gusta comenzar a pensar en 1.0 y trabajar hacia atrás …

  • 1.0 – MVP (producto mínimo viable).
  • El beta – MVP con errores y algunas características que necesitan pulirse
  • El alfa: un prototipo, MVP no 100% explorado. Características que aún se agregan / eliminan
  • pre-alpha – prueba de concepto. Para usar en presentaciones y para que todos estén en la misma página.

En mi opinión, así es como deben usarse las diferentes etapas. (Rara vez sucede este tipo de cosas en mi experiencia)

  • pre-alpha: decida el flujo de usuarios y UX. Alcance su funcionalidad.
  • alpha: crea funciones básicas y UX básico. Incorpore nuevos cambios, pero trate de apegarse a las decisiones de pre-alfa.
  • beta: prueba y finaliza UX y funcionalidad. El flujo de usuarios y la experiencia de usuario deben establecerse en piedra. El 99.999% de los nuevos cambios deben dejarse para v1.5.
  • 1.0 – Centrarse en MVP. Los nuevos cambios no son aceptables.
  • 1.5 – Todas esas ideas encantadoras que el cliente tuvo mientras trabajabas.

Por supuesto, un hombre vestido con un buen traje puede aplastar cualquiera de esos ideales encantadores. Entonces, si puede lograr que sus clientes se sumen a un plan como este (y hacer que se apeguen a él), los proyectos serán mucho más fáciles.

Un par de notas:

  • Cuando los clientes intenten agregar UX o funciones durante la alfa / beta, recuérdeles que la fecha límite está en juego. Si no entienden completamente cómo sus cambios pueden afectar el proyecto, y le hacen perder el plazo, el cliente lo culpará.
  • A veces tienes que hacer cambios al final del juego o el cliente verá el proyecto como no exitoso. Asegúrese de que entiendan los costos de tiempo y el hecho de que está ampliando su proceso para acomodarlos. Si todo va bien, te amarán. Si el proyecto se incendia, al menos saben que fue parcialmente culpa suya.

Espero que esto ayude 🙂

La mayoría de las veces, una etapa pre alfa significa que ni siquiera consideraría la etapa actual como una semejanza de la final.

Alpha es cuando el producto ha tomado su forma general, pero aún puede transformarse y cambiar, y no será compatible entre versiones. Esto es especialmente importante con API, bibliotecas o cualquier otro software extensible donde el trabajo de otras personas depende del mío.

Se garantiza que el software Alpha no será compatible con la versión beta.

Otra cosa que me describe la etapa alfa es cuando todavía se agregan características.

Beta es cuando congelo el conjunto de características, las firmas de funciones y la estructura de mi proyecto. En este punto, se considera seguro usar el proyecto y construir sobre él; sin embargo, ciertos errores importantes aún pueden estar en general.

Normalmente mantendría el proyecto en etapa beta hasta que se pase un cierto umbral de estabilidad.

Una vez que se logra eso, el proyecto se gradúa hasta la versión final.

More Interesting

Pruebas de software: ¿cómo se mide la efectividad de una prueba? ¿Y cómo se compara eso con su costo?

Cómo desarrollar una aplicación científica compleja de código abierto solo

¿Qué software (exactamente) debo estudiar para convertirme en ingeniero de diseño civil con el escenario laboral actual?

¿Cómo aprendió Brad Friedman las habilidades de ingeniería en ingeniería de software?

¿Cuál es el propósito de un analista de software? ¿Y en qué temas debemos concentrarnos para este trabajo?

¿Qué metodología de prueba se usa más ampliamente en la industria de desarrollo de software, BDD o TDD?

¿Por qué los gerentes de ingeniería en las compañías de software son tan particulares sobre la cantidad de años de experiencia durante la contratación?

Estoy sobrecargado por los cursos y puedo reprobar algunas clases, pero ya acepté el puesto de SE en Microsoft. ¿Debo desertar a un Comp Science Minor?

¿Qué lugar es peor en verano entre Mumbai y Kolkata?

¿Cuáles son las mejores prácticas en la implementación continua?

¿Cuánto combustible para aviones (y, por lo tanto, cuánto dinero y / o emisiones) se podría ahorrar con una optimización de las decenas de miles de pantallas que están incrustadas en los asientos de los aviones y permanecen encendidas, incluso sin tocarlas?

¿Por qué no hay una plataforma de código abierto para desarrollar productos de software?

¿Qué es un algoritmo eficiente para encontrar el número de submatrices con el mismo número de 0s y 1s?

¿Cómo ha ajustado sus prácticas de desarrollo de software ágil para equipos remotos?

¿Vale la pena cambiar al desarrollo de software desde las pruebas de automatización en esta etapa de mi carrera, si tengo conocimiento del núcleo de Java, los conceptos básicos de Spring y JDBC?