¿Qué términos técnicos debo saber para hablar con un desarrollador?

Debe conocer bien el ciclo de vida de desarrollo de software (SDLC) para hablar con un desarrollador. Las etapas básicas del SDLC (ciclo de vida de desarrollo de sistemas) son:


1. Análisis / definición de requisitos: aquí es donde el usuario final / cliente (USTED) define lo que el software debe hacer desde la perspectiva del usuario final. Crear un prototipo de la interfaz de usuario aquí es un buen comienzo, pero también debe crear un documento formal que también describa lo que espera que haga cada botón y elemento de la interfaz de usuario. Sea lo más detallado y claro posible. ¡Cuanta menos ambigüedad, mejor!

1a. Estimación del cronograma / costo: una vez que entregue al desarrollador su prototipo de interfaz de usuario y el documento de requisitos, puede crear una estimación aproximada del cronograma / costo. Antes de dar una estimación detallada, es posible que quieran dedicar un tiempo a elaborar un diseño que usted revise / apruebe.

2. Diseño de software / creación de prototipos: un desarrollador creará modelos (es decir, modelos UML) del software que implementará. Esto podría incluir modelos arquitectónicos si se trata de una arquitectura de varios niveles. Si hay grandes incógnitas (es decir, visualizaciones / algoritmos complejos), el desarrollador puede querer hacer un prototipo rápido y sucio de algunas de las funciones.

2a. Programa detallado / Estimación de costos: después del diseño del software, el desarrollador puede proporcionarle una Estructura de desglose de trabajo (WBS) de todas las tareas y una estimación detallada de costos / programa para cada tarea. Debe administrar la programación / WBS con reuniones semanales y actualizaciones de estado.

3. Implementación de software (Desarrollo / Codificación): aquí es donde el desarrollador construye el software creando código fuente en un lenguaje de programación particular. Como no está desarrollando este código usted mismo, debe seleccionar el idioma dominante para su plataforma particular en la que planea implementar la aplicación.

4. Prueba de software: aquí es donde vuelve a aparecer en la imagen al comprobar que el software ha proporcionado la funcionalidad que especificó en el documento de requisitos.

4a. Pruebas funcionales: debe tener una lista de verificación escrita (también conocido como un Plan de prueba derivado de su documento de requisitos) donde cada botón / elemento en la interfaz de usuario se prueba con varios valores (incluidos los valores inesperados también conocidos como “casos de esquina”). Idealmente, tiene un hardware separado para hacer las pruebas. Esto puede ser en un entorno de nube.

4b. Pruebas automatizadas: además de las pruebas funcionales manuales, el software debería haberse desarrollado utilizando pruebas de módulos automatizadas para todas las funciones clave (usando algo como JUnit). Estas pruebas automatizadas también deben ejecutarse y aprobarse antes de cualquier cambio importante en el sistema.

5. Implementación de software: aquí es donde el software se traslada de la prueba al entorno de desarrollo. Idealmente, tiene un hardware separado para el sistema de producción. Esto puede ser en un entorno de nube.

6. Mantenimiento de software / Corrección de errores: una vez que el software esté en producción y en manos de usuarios reales, se descubrirán errores. La fase de mantenimiento es donde se corrigen los errores y se implementan nuevas versiones.

¡Los mejores deseos!

Probablemente ninguno. Si tiene ideas muy específicas sobre cómo deben hacerse las cosas, debe tener el lenguaje necesario para transmitirlo. Sin embargo, voy a sugerir que aprender esos términos puede ser una pérdida de tiempo: es muy posible que te equivoques con los detalles técnicos. Un buen desarrollador puede entender lo que quiere y pensar que no es una buena manera de hacerlo. Sin embargo, si planea participar en el desarrollo a largo plazo, continúe y aprenda la mayor cantidad de conceptos y jerga que pueda. Ciertamente no hará daño, y significa que puede hacer sugerencias más adelante. (De nuevo, sin embargo, el desarrollador puede tener razones por las cuales estas sugerencias no coinciden bien con los requisitos actuales, etc.)

Los desarrolladores tienen diferentes niveles de habilidades de comunicación. Si desea poder hablar con su desarrollador sobre detalles técnicos, es menos importante que hable desarrollador y más importante que su desarrollador hable inglés.

O, para decirlo de otra manera, creo que la respuesta es similar a la respuesta para “Estoy realmente enfermo. ¿Qué términos técnicos debo saber para hablar con el médico para obtener un diagnóstico?”

Le agradezco sinceramente su tiempo y su respuesta, me ha brindado mucha ayuda.
Gracias a su recomendación sobre el énfasis del entorno de la nube, he encontrado el motor de aplicaciones de Google / AWS / etc., si no le molesta y sabe, ¿tiene una recomendación específica para una aplicación de comunicaciones (si se compara , similar a whatsapp / telegram / etc.).

¡Feliz año nuevo y que tengan un maravilloso 2015!
¡Gracias de nuevo!

More Interesting

En tu opinión, ¿cuál es más fácil de usar: Torch o Theano?

¿Por qué patrocina Microsoft Apache Software Foundation (desarrollador de OpenOffice)?

¿Qué tan difícil es pasar de un ingeniero de software a un actuario?

Si alguna vez creó un banco en línea, ¿qué necesita hacer diferente en comparación con un sitio web comercial simple?

¿Cómo se mide realmente los números de Jeff Dean?

¿Es difícil la ingeniería de software?

¿Qué escenarios requieren que un desarrollador implemente múltiples idiomas en el lado del servidor de una base de código?

¿Cuáles son buenas referencias para las tasas globales de desarrolladores de software?

¿Existen soluciones de hardware / software para evitar el uso de cámaras de teléfonos inteligentes en eventos o ubicaciones sensibles?

¿Cuáles son las aplicaciones de aprendizaje profundo que funcionan en este momento y se usan a diario?

¿Cuál es el beneficio de desarrollar software de sistemas utilizando el marco de trabajo MFC (C ++) en lugar del marco .NET (VB, C #)?

Si disfruto la creación de software y la programación de sistemas más que la programación competitiva, ¿cómo puedo construir mi carrera sin un perfil de codificación, como estudiante de CSE?

¿Qué decisiones acertadas de arquitectura de software tomó Facebook? ¿Qué elecciones y decisiones que se tomaron en los primeros días realmente valieron la pena a largo plazo?

¿Qué computadora portátil (disponible en India) es la más adecuada para un ingeniero de software con un presupuesto de 50 mil rupias?

¿Cuáles son algunas bibliotecas Java de código abierto para construir un software de captura de datos faciales de biometría y cámara web?