¿Es culpa del software la responsabilidad de un desarrollador? ¿Por qué?

Casi nunca.

Porque hay procesos de ingeniería de software y procesos de gestión de productos y programas. En lo que respecta a los procesos de SE, se supone que debe realizar pruebas y control de calidad (idealmente por personas que no sean los ingenieros que crearon las características) antes de que salga el lanzamiento del software. En lo que respecta a la gestión de productos y programas, el equipo debe establecer estándares de calidad para el equipo en función de las expectativas del cliente, comunicar horarios razonables para cumplir con los estándares de calidad y también comunicar estos estándares a los clientes.

Cuando ocurre una falla de software, eso significa que una falla manejada por deslizamiento a través de todos estos procesos (y gerentes).

Si bien sí, obviamente es responsabilidad de los ingenieros solucionar los problemas, pero si estos gerentes culpan a los ingenieros, deberían ser despedidos porque no están haciendo su trabajo.

Solo muy raramente. Por lo general, las fallas de software se deben a fallas de comunicación dentro del equipo de desarrollo, o entre los “propietarios” del producto (usuarios o gerentes de producto) y el equipo de desarrollo. Y las fallas de comunicación son generalmente el resultado de procesos perdidos o rotos, ya sea formales o informales.

Un ejercicio que vale la pena cuando se trata con errores de software es un análisis de causa raíz. Toyota popularizó el enfoque de “Cinco porqués”, donde después de que se identifica un problema, usted pregunta “¿por qué ocurrió eso?” Cuando encuentra la causa de eso, luego pregunta de nuevo, “¿por qué ocurrió eso?”, Y así sucesivamente, por un total de cinco porqués. La causa raíz generalmente se encuentra dentro de un proceso sobre el cual los desarrolladores no tienen influencia y ni siquiera pueden estar involucrados.

  1. El programa de inventario mostró un total incorrecto de viales de vacunas contra la gripe en existencia. ¿Por qué? Porque…
  2. La gente del almacén ingresó el número incorrecto disponible cuando hicieron un inventario físico en el almacén. ¿Por qué? Porque…
  3. Tres drogas diferentes tienen los mismos primeros 32 caracteres en el nombre, y la IU solo muestra los primeros 24 caracteres. ¿Por qué? Porque…
  4. El equipo de diseño de la interfaz de usuario solo asignó 24 caracteres para el nombre. ¿Por qué? Porque…
  5. Necesitaban más espacio en el formulario de inventario, y el farmacéutico al que preguntaron estaba seguro de que 24 caracteres eran suficientes para desambiguar cualquier nombre de medicamento.

… y así.

Por supuesto, es posible que un desarrollador solo tenga un pedo cerebral y, por ejemplo, invierta la condición de una prueba de uso poco frecuente, pero incluso eso es generalmente el resultado de un proceso roto (¿Prueba de cobertura de código? ¿Revisión de código? ¿Revisión de pelusa?)

Generalmente no. Oh, supongo que algunos errores ortográficos intrascendentes o algo trivial supongo que podrías rastrear a un desarrollador y culparlos. Para cosas realmente serias es más complicado.

Una vez que rastrea una causa raíz, su trabajo acaba de comenzar. ¿Qué contribuyó al problema? Si el desarrollador dejó un error crítico en el código, ¿cómo pasó a todos en la revisión del código? ¿Cómo no falló en las pruebas? ¿Se probaron las cosas correctas? ¿Es esto un problema cultural? ¿Nos hemos preocupado tanto por primero en el mercado, que no podemos obtener la calidad por la puerta? ¿Qué pasa con todos los cambios en el alcance que el cliente? ¿el cliente? o ventas? o ejecutivos? exigido ¿Contribuyeron a este problema?

¿Qué pasa con tener que cumplir una fecha determinada debido al contrato? Recuerde, el desarrollador que cometió el error trabajó 70 horas la semana pasada. ¿Recuerdas que llegamos tres semanas tarde para cumplir con todos los requisitos? Entonces, ¿tal vez este es un problema de análisis?

Tienes que tener cuidado con estos dedos señaladores y asignar el negocio de la culpa. Hay muchas historias sobre personas a las que se les negaron aumentos, o fueron despedidos sumariamente, que iniciaron negocios competitivos. Había un tipo que era redactor en Esquire. Se le negó un aumento de $ 5. Entonces se fue, sacó una hipoteca y comenzó esta pequeña revista llamada Playboy.

La mayoría de las fallas de software se remontan a una sola línea de código. Quien escribió esta línea, quien la verificó y quien probó este código son igualmente responsables de este error. La mayor parte de la responsabilidad debe ser asumida por la persona que escribió esta línea de código en particular que está creando la falla del software porque él / ella es la primera persona que podría haber evitado ese error.

Hay momentos en que la falla del software podría deberse a datos incorrectos. En este caso, si el desarrollador había codificado de acuerdo con la especificación que se le dio, no se puede culpar al desarrollador por el error. El propietario de los datos o el propietario de la base de datos o incluso el administrador de la base de datos es el culpable.

A veces, pueden ocurrir fallas de software debido a un mal diseño o especificación. En este caso, la persona responsable del error es el diseñador o quien escribió esa especificación de programa / código en particular.

Todos los involucrados comparten la responsabilidad. En un equipo que se extiende desde las ventas hasta el desarrollo y todo lo demás, cada persona aportó algo a la mezcla. A menudo, el culpable son las comunicaciones. La calidad suele ser proporcional a la comunicación. A veces, el éxito ocurre a pesar de la falta de claridad y el fracaso puede ocurrir incluso cuando la comunicación es sólida. En términos más generales, todo se reduce a los pensamientos correctos intercambiados de la manera correcta transformada en acción de manera más efectiva.

Raramente. Los errores que llegan a los clientes suelen ser efectos secundarios de un mal proceso de software, que es un problema de gestión.

Si el software fue creado por una sola persona, entonces sí. Si el software fue creado por más de una persona, entonces todo el equipo es responsable.

More Interesting

Puedo obtener Ingeniería de Software en SRM Kattankulathur (Campus Principal) y CSE en SRM NCR campus. Soy residente de Delhi. ¿Que debería tomar yo?

¿Eres ingeniero de sistemas? Si es así, ¿dónde trabaja y qué hace?

¿La cantidad de código fuente producido por la humanidad convergerá alguna vez?

¿Cómo describirías la "forma Linux" de diseñar software?

¿Cuáles son las tres primeras cosas que harías para hacer la transición de un equipo de desarrollo a la práctica de scrum?

¿Cómo entiendo profundamente un sistema enorme (flujo de datos, procedimientos comerciales, restricciones entre funciones, etc.) cuando solo tengo documentos relevantes como la especificación de software, la guía del usuario, etc. y sin la capacitación de un experto?

¿Cómo debo administrar mi tiempo para ser productivo?

¿Puede una pasantía de gestión de patrimonio en Morgan Stanley ayudarme en mi futura carrera de ingeniería de software? ¿Aprenderé cosas sobre negocios que podrían ayudarme más tarde?

¿Cuáles son algunos algoritmos que deben saber para un ingeniero de software típico?

¿Qué se necesita para convertirse en un desarrollador de juegos?

Después de estar en la profesión académica durante 2 años, ¿es posible pasar a la industria del software?

¿Cuál es la mejor manera de comenzar a aprender el diseño de algoritmos si no has tomado un curso de informática en la escuela?

Cómo comenzar a crear software

¿Cómo son posibles las habilidades de ingeniería de software de pulido a través del desarrollo web?

¿Es una empresa de consultoría un buen lugar para comenzar una carrera de ingeniero de software para un recién graduado, si quiero hacer la transición a Google, Apple, Blizzard, etc., después de dominar la programación?