¿Software garantizado?

¿Puede la industria del software comercial ofrecer una verdadera calidad en sus productos igual que la NASA o la ESA exige a sus proveedores? ¿Será éste el nacimiento de una auténtica ingeniería informática?

http://www.enriquedans.com/2009/05/los-fallos-del-software-y-la-responsabilidad-de-quien-lo-creo.html

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de fsancho

Lo veo muy complicado

Responsabilizarte de los problemas que causen tus programas creo que es algo prácticamente imposible de ofrecer. Es mas, creo que en el modelo "software como servicio" lo que debe ofrecerse es soporte no garantía de estar libre de errores.

Obligar a una empresa desarrolladora a hacerse responsable de los problemas que su software pudiera ocasionar obligaría a la empresa a contratar un seguro que sería mas caro cuanto mas crítico sea el sistema a implantar, llegando a casos (una central nuclear, un sistema militar) de ser completamente prohibitivo. Esto podría ocasionar que solo grandísimas firmas de todos conocidas copasen el mercado de aplicaciones críticas dejando fuera toda competencia.

Quizá el software siga siendo igual de bueno o malo, pero alguien se estaría forrando con ello.

Imagen de david.villa

¿A qué grandes firmas te

¿A qué grandes firmas te refieres? Yo no conozco ninguna gran empresa que se haya acercado remotamente a la entrega de software sin fallos. Realmente no sé de la existencia de ningún software que pueda demostrar que tiene cero fallos o al menos esté en disposición de compensar las pérdidas que provoquen dichos fallos. Yo creo que las empresas de SO (esas sí que son conocidas por todos) tendrían miles de millones de demandas al año, por pérdidas poco importantes a lo mejor, pero son «muchos pocos»...

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.

Imagen de fsancho

Es bastante sintomático que

Es bastante sintomático que ni siquiera las grandes empresas desarrolladoras como Oracle o IBM, etc. se atrevan ni por lo mas remoto a ofrecer ninguna garantía. Si no se ofrece es porque no se exige y como la ley no obliga pues ni se plantea. De ahí que creo que sería prácticamente imposible garantizar que un software está al 100% libre de fallos y mucho menos que la empresa sea responsable de los problemas que esos fallos pudieran ocasionar.

Si al final la U.E. obligase a que las empresas de software se responsabilizasen de los fallos de sus programas estaríamos ante un abuso sin precedentes ya que solo las mega-empresas podrían hacer frente a las pólizas de responsabilidad que habría que contratar. Eso es lo que trataba de explicar.

Imagen de david.villa

Realmente es una cuestión de

Realmente es una cuestión de escala y nicho de mercado. Si te dedicas a hacer programas educativos, aunque vendas millones de licencias, es complicado que puedas tener grandes demandas por fallos o responsabilidad por pérdidas. Pero si tu empresa desarrolla el control de una central nuclear, con que montes un «pequeño lio» como el de Ascó vas a la ruina tú y toda tu estirpe.

La solución tampoco es tan difícil. Si el fabricante debe dar por ley ese nivel de calidad y responder económicamente a los fallos, lo «único» que va a ocurrir es que los tiempos de desarrollo serán más largos, harán falta más y mejores ingenieros y el precio del «producto» será mucho mucho más alto, cosa muy lógica por otra parte. Yo creo que sería bueno para la informática como «ciencia».

No creo que los procesos de ingeniería de software sean o deban ser tan distintos de los de otras disciplinas. Cualquier coche de hoy en día es una pieza de ingeniería nada trivial, te cuesta 20.000€, pero si tienes un accidente por culpa de un defecto te tendrán que indemnizar por millones (dependiendo del abogado que tengas, claro).

Saludos

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.

Imagen de fsancho

No me parece que solucionar

No me parece que solucionar los problemas de calidad del software sea tan sencillo como gastar mas en equipos, controles y medios. Es algo mas complejo, al menos lo entiendo así. Hace meses, cuando se discutía el tema de la regulación de la profesión, pude leer mucho acerca del tema y llegue a un informe de la ACM en el que se posiciona en contra de regular la profesión de informática argumentando que eso no sería la solución a los problemas de calidad del software. El documento completo puede descargarse aquí. En un post de Ricardo Galli [1] sobre el tema hace un extracto traducido.

¿Se opone la ACM a la regulación? (licencia en el original)

Sí. La ACM se opone a la regulación de la ingeniería del software porque la ACM considera que no será efectiva para ofrecer la seguridad de que los ingenieros de software son capaces de producir sistemas de software predecibles, confiables y usables. Cuando el cuerpo de conocimiento madure y tengamos experiencia probada en la certificación de las habilidades de los ingenieros de software, la ACM podría reconsiderar su posición.

Por otro lado, el propio Edsger Dijkstra en un artículo [2] escrito ya hace 20 años cargaba contra la ingenieria del software acusándola de dar nada mas que una ilusión de seguridad. Creo que en 20 años no ha cambiado mucho el panorama como para contradecirlo.

[1]: http://gallir.wordpress.com/2008/11/10/la-regulacion-no-sera-efectiva-pa...

[2]: http://www.smaldone.com.ar/documentos/ewd/sobre_la_crueldad.html

Imagen de david.villa

La regulación no es la

La regulación no es la solución para asegurar la calidad del software. La regulación no es la solución para nada, eso ya lo sabíamos todos. Tampoco digo que sea tan sencillo, estaba siendo un poco irónico, por eso puse “lo único” entre comillas. Obviamente, «tener más y mejores ingenieros, tiempos de desarrollo y precios muy muy superiores» no es «fácil» precisamente. Si la informática es un proceso de ingeniería (yo creo que debe serlo) debe ser factible. Tan “sólo” hay que plantearlo seriamente.

Lejos de contradecir a Dijkstra, estoy totalmente de acuerdo. Él mismo dijo:

Un programador debe ser capaz de demostrar que su programa tiene las propiedades requeridas. Si esto se deja para más adelante, es seguro que no será capaz de cumplir con su obligación: sólo si permite que esta obligación influencie su diseño, existe la esperanza de que pueda cumplirla. Solamente verificar a posteriori le deniega esa sana influencia y por lo tanto es poner el carro delante del caballo, pero es exactamente lo que ocurre en las casas de software donde “programación” y “aseguramiento de la calidad” son hechos por grupos distintos. (No hace falta decirlo, esas casas entregan productos sin garantía). Edsger Dijkstra

Es decir, que el problema no es la informática, sino la disciplina de la “ingeniería del software” tal como se entiende (o se entendía entonces). Para este hombre, la computación debía ser una ciencia tan seria como cualquier otra y la ingeniería del software le parecía más un proceso burocrático que científico. Hay una palabra clave en esa cita: «demostrar» y ese es el verdadero problema. Hace falta un cambio en la informática para hacer frente a este reto, eso es evidente, pero no es imposible.

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.

Imagen de fsancho

Estamos de acuerdo. Es algo

Estamos de acuerdo. Es algo evidente, no imposible, pero yo añadiría, muy chungo de llevar a cabo. A nivel científico es abordable, pero llevar eso al Mundo Real (TM) se me hace tan complicado que lo veo imposible en un plazo muy largo.

Y volviendo al tema de la noticia, obligar a aceptar la responsabilidad de un programa no va a hacer que el mercado se vuelque en encontrar esos métodos de desarrollo que aseguren y demuestren la calidad de un software, sino que el mercado tirará por el método "sencillo" que es la contratación de pólizas de seguros y eso tan solo tendrá como consecuencia el encarecimiento del software no su mejora de la calidad, al menos en el corto y medio plazo. Lo malo de ese encarecimiento es que ese dinero no va a ir a parar a la industria, lo que permitiría un mayor avance, sino que iría a parar a las casas aseguradoras, con lo cual no revertiría en una mayor inversión en investigación.

Mi conclusión es que las ciencias de la computación aun no están lo suficientemente maduras como para ofrecer un proceso de aseguramiento de calidad confiable en porcentaje alto. Quizá en estos 20 años se haya avanzado algo, pero dudo mucho que se haya avanzado lo suficiente.

Imagen de nacho

¿Y el sw libre?

El caso del sw libre lo veo un poco peliagudo, y precisamente por la distinción entre libre y gratis. Una cosa es software libre, en el que participa mucha gente de forma altruista y desinteresada, y que no tiene por qué estar relacionada.

Sin embargo, ese mismo software se puede vender. Y en el momento que alguien gana dinero, ese mismo alguien debería responsabilizarse de su producto. Quizá la responsabilidad debería caer en quien lo comercializa, más que en quien lo desarrolla.

Nacho

Imagen de int-0

NO WARRANTY

Eso dicen bien clarito en la licencia... si tú lo quieres usar... es cosa tuya... no?

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------

Imagen de nacho

NO WARRANTY (until now)

NO WARRANTY es lo que pone ahora, pero esta ley pretende que eso deje de ser así y no se pueda distribuir software sin garantías. Aunque supongo que se referirá a distribuirlo cobrando, es decir, venderlo.

Nacho

Imagen de david.villa

Supongo que para exigir una

Supongo que para exigir una garantía debe haber un compromiso por ambas partes, es decir, un contrato. Si yo no obtengo ningún beneficio previo ni futuro, no tengo porqué darte ninguna garantía de nada; sobre todo si además te aviso antes de que si lo usas es bajo tu responsabilidad. El software libre siempre ha insistido en ese tema en sus licencias. El software propietario no está dando más garantías que el SL, lo único es que no lo dicen por todos sitios, se lo callan y lo ponen en mitad de una EULA de miles de páginas.

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.