¿Con qué se encuentran los ingenieros de software después de otra publicación estresante? Bueno, lo primero que encontramos en nuestro grupo son los errores que hemos lanzado al aire libre. El mayor problema que nosotros, como ingenieros de software, encontramos después de una publicación estresante es el código espagueti, también llamado big ball of mud.¿Cómo demostrar mi interés y administrador mi software funciona?
El tiempo y el dinero para perseguir la perfección rara vez están disponibles, ni deberían estarlo. Para sobrevivir, debemos hacer lo que sea necesario para que nuestro software funcione y salir por la puerta a tiempo. De hecho, si un equipo completa un proyecto con tiempo de sobra, es probable que los gerentes de hoy lo tomen como una señal para proporcionar menos tiempo y dinero o menos personas la próxima vez.
que necesita para ofrecer software de calidad a tiempo y dentro del presupuesto
Costo: La arquitectura es una inversión a largo plazo. Para las personas que están pagando las facturas es fácil descartarlo, a menos que exista algún beneficio inmediato tangible, como una cancelación de impuestos, o a menos que haya dinero excedente y tiempo disponible. Tal es raramente el caso. Más a menudo, el cliente necesita algo que funcione para mañana. A menudo, las personas que controlan y gestionan el proceso de desarrollo simplemente no consideran la arquitectura como una preocupación apremiante. Si los programadores saben que la mano de obra es invisible, y los gerentes no quieren pagarla de todos modos, nace un círculo vicioso.
Pero si este fuera realmente el caso, cada proyecto de software a largo plazo siempre llevaría a una gran bola de barro.
Sabemos que eso no siempre sucede. ¿Cómo? Porque la afirmación de que los gerentes no consideran a la arquitectura como una preocupación urgente es falsa. Al menos hoy en día. Los gerentes en el campo de TI saben muy bien que la mantenibilidad es clave para el negocio.
negocio depende de los datos que lo conducen. Las empresas se han vuelto críticamente dependientes de su software y sus infraestructuras informáticas. Existen numerosos sistemas de misión crítica que deben estar en el aire las veinticuatro horas del día, los siete días de la semana. Si estos sistemas disminuyen, no se pueden verificar los inventarios, no se puede pagar a los empleados, no se pueden enrutar los aviones, y así sucesivamente. [..]
Por lo tanto, es en el corazón del negocio buscar maneras de mantener sistemas lejos de la gran bola de barro. Que el sistema todavía es mantenible. Que el sistema realmente funciona y que tú, como programador, puedes probar que sí funciona. ¿Su gerente le pregunta si ha terminado su codificación hoy, le pregunta si la versión que tiene las correcciones A, B y C se puede hacer hoy o si ella pregunta si el software que se lanzará realmente funciona? ¿Y has demostrado que funciona? ¿Con que?
Ahora mi pregunta: ¿
¿De qué manera tenemos que demostrar nuestros gerentes y/o grupos de interés que nuestras obras de software? ¿Son esas luces verdes de nuestras pruebas de unidad de software lo suficientemente buenas? Si es así, ¿no será eso solo una prueba de que nuestra gran bola de barro sigue haciendo lo que esperamos que haga? Que el software es mantenible? ¿Cómo puedes demostrar que tu diseño es el correcto?
[añadida más adelante]
Chris Pebble su respuesta a continuación es poner a mi equipo en el camino correcto. La garantía de calidad es definitivamente lo que estamos buscando. Gracias Chris.Tener una política de control de calidad acordada con las partes interesadas es más que el resultado lógico de lo que mi equipo está buscando.
La siguiente pregunta es ¿qué debería ser todo en esa política de control de calidad?
- Tener que buildserver corriendo visibles para mis actores
- Tener la buildserver no sólo 'sólo construir' pero la adición de pruebas que fueron parte de la política de control de calidad
- Tener un acuerdo de mis partes interesadas en el proceso de desarrollo (donde los desarrolladores revisan los demás código es parte de)
- más ..
Algunos más información: El equipo que estoy llevando es la construcción de servicios web que son consumidos por otro software equipos. Es por eso que un servicio web de última generación está costando dinero inmediatamente. Cuando los desarrolladores del equipo de capa de presentación, o los probadores reales no pueden avanzar estamos en el estrés inmediata y tienen que corregir los errores lo antes posible, lo que a su vez conducen a los cortes rápidos ..
[añade más adelante]
Gracias por todas las respuestas. De hecho se trata de 'confianza'. No podemos hacer un lanzamiento si las partes interesadas no confían en el software, que están probando activamente nuestro software utilizando el sitio web que está consumiendo nuestro servicio web. Cuando surgen problemas, la primera pregunta de nuestros evaluadores es: ¿se trata de un problema de capa de servicio o un problema de capa de presentación? Lo que me dirige a tener una política de control de calidad que garantice que nuestro software está bien para las pruebas que están haciendo.
Por lo tanto, la única forma en que puedo (ahora) visualizar habilitar la confianza con los evaluadores es: - Hable con el equipo de prueba actual, repase las pruebas que pueden ejecutar manualmente (desde su script de prueba y escenario) y asegúrese de que nuestro equipo tenga esas pruebas como pruebas unitarias ya contrastadas con nuestro servicio web. Eso sería un buen punto de partida para un 'sign-off' antes de que hagamos un comunicado que el presentationlayerteam tiene que integrar. Se necesitará un poco de esfuerzo para aclarar que la creación de pruebas automáticas para todos los escenarios llevará algún tiempo. Pero definitivamente será útil para garantizar que lo que construimos esté realmente funcionando.
¿Cómo pueden los usuarios saber si usted tiene una bola de barro que se comporta bien pero que aún no se puede mantener? Creo que la pregunta es sobre la calidad del software, no la usabilidad. –
He actualizado: usé usabilidad cuando la palabra que estaba buscando es útil. –
El punto que estaba tratando de hacer es que UAT no prueba nada sobre la calidad del código como usted ha afirmado. UAT simplemente proporciona evidencia anecdótica de que el software es "lo suficientemente bueno" a los ojos de un usuario. –