Definición de un error de software. Blizzard Entertainment insiste en que mi "error" no es un error en absoluto. ¿Tienen razón? [cerrado]

18

De acuerdo con Wikipepdia,

Un error de software es el término común utilizado para describir un error, falla, error, falla o falla en un programa o sistema informático que produce un resultado incorrecto o inesperado, o hace que se comporte de manera no intencionada.

Recientemente encontré un "error" en StarCraft 2 que produce un resultado inesperado: http://eu.battle.net/sc2/en/forum/topic/2868627470

El problema es que si mantengo StarCraft 2 minimizado durante mucho tiempo, el juego no se desconecta ni genera ningún tipo de tiempo de espera. Sin embargo, se desconecta después de la primera batalla y a veces también pierde datos del juego (estadísticas del partido).

Desafortunadamente, según Blizzard:

El juego no está diseñado para mantenerse minimizado durante un período de tiempo tan largo. (Blizzard) no puede considerar que este comportamiento sea tan erróneo como StarCraft II no debe minimizarse durante horas.

Entonces, ¿mi "error" es realmente un error?

TeleShoTTgun
fuente
31
Claro, es un error, pero no lo van a solucionar, ya que no consideran que esta situación sea compatible (es decir, dado que no fue diseñada para funcionar de esta manera, si intenta usarla de esa manera, usted están solos). Y, por supuesto, hay una solución simple: no hagas eso.
Oded
17
Para el registro, el representante de Blizzard manejó la situación muy mal. Deberían haber dicho: "Gracias por informar de este error. Lo ingresaremos en nuestro sistema y lo arreglaremos tan pronto como nuestros desarrolladores lo consideren una prioridad". La suposición implícita sería que nunca se convertirá en una prioridad. Muy mal manejado en mi opinión.
Riwalk
29
@ Stargazer712 Blizzard manejó esto exactamente bien. No deben establecer la expectativa de que corregirán un error que no tienen intención de corregir.
MattBelanger
3
Para ser justos con TeleShoTTgun, creo que Blizzard debería haber definido al menos lo que cuenta como "un largo período de tiempo". Podría minimizar el juego para ir al baño por un par de minutos. No creo que sea mucho tiempo, pero ¿Blizzard lo hace? Consideraría> 30 minutos como un "largo período de tiempo" en este contexto, pero no sé si Blizzard estaría de acuerdo.
FrustratedWithFormsDesigner
3
Viejo acto de Vaudeville - "Doctor, Doctor, me duele cuando hago esto" - "¡No hagas eso!"
Cyclops

Respuestas:

58

Para un equipo de software, un error es un problema de software que debe corregirse. No todos los problemas de software deben corregirse.

La actualización del software es costosa. Blizzard te dice que tu problema es un caso marginal. En otras palabras, el problema del caso límite que descubrió no es necesariamente algo que probaron o de lo que deban preocuparse. Solucionar el problema lo ayudará, pero con toda probabilidad no ayudará a muchos otros. Sin embargo, el costo para corregir el error podría ser alto. En cambio, pueden invertir sus recursos en nuevas funciones o incluso terminar Diablo III.

P.Brian.Mackey
fuente
3
Creo que ha capturado la definición real, utilizada en la práctica. Iba a responder que un error es cualquier comportamiento que difiere de las especificaciones que tienen otros carteles. Pero la realidad es que si el comportamiento defectuoso estaba dentro de la definición de la especificación pero tuvo un impacto significativo en los negocios, una empresa lo solucionaría. Y como usted dijo, incluso si la especificación dice que debería funcionar y no funciona, si el ROI es bajo, la compañía en cuestión no lo solucionaría. Gran respuesta.
Matt Ryan
2
@MattRyan: Y en el mundo real (que he visto), si las especificaciones dan como resultado un comportamiento defectuoso que los usuarios comerciales llaman un "error", el equipo de desarrollo generalmente vuelve a clasificar formalmente la solución como una "solicitud de cambio", no como una "corrección de errores". ;)
FrustratedWithFormsDesigner
3
En otras palabras, un "error" o "defecto" representa un requisito que no se implementa correctamente. En este caso, dejar el juego minimizado no es un requisito.
Ray
22

Esto me recuerda al gato en el microondas , específicamente el caso de la Sra. Smith en 1983.

El punto es que espera que el producto funcione de esa manera. Principalmente porque varios productos similares funcionan así, es decir, si los minimiza durante horas y luego los abre, funcionan (aunque lo contrario no es tan raro como podría pensar).

La Sra. Smith sabía por su experiencia, que secar a sus gatos en el horno no los dañaría (suponiendo cierta precaución, por supuesto). Más precisamente por la experiencia que tuvo con todos los hornos que probó. Luego asumió que sería lo mismo para el horno de microondas que le dieron. Esta suposición estaba mal. Las microondas no están diseñadas para secar gatos. Tampoco los hornos convencionales. Simplemente no matan al gato en el proceso como efecto secundario de los procesos físicos que emplean para generar calor.

Ahora, como productor de microondas, puede colocar una bobina de calentamiento y una cantidad de sensores en el microondas. Este último determinaría si el contenido actual es un gato y usaría la bobina en lugar de las microondas.

De la misma manera, uno podría producir un microondas adecuado para gatos secos, Blizzard podría crear una versión de SC2 que sea adecuada para permanecer en estado minimizado durante períodos prolongados de tiempo.

Personalmente, estaría dispuesto a pagar más dinero por un microondas habilitado para secado de gatos solo por el gusto de hacerlo (suponiendo que haya un gran logotipo de idoneidad de secado de gatos en el frente que puedo señalar con orgullo). Pero no me interesaría un juego que pueda mantenerse minimizado durante horas.

SC2 fue diseñado para cumplir con ciertos requisitos. Tu expectativa no es parte de eso. Usted es libre de medir SC2 con respecto a sus expectativas. Pero si Blizzard los incluye o no a todos en el alcance de sus requisitos es, en última instancia, su elección.

Todo lo que realmente podría discutir es que es un fallo de diseño. El sentido común dicta que a menos que una fracción sustancial de los usuarios estén confundidos por el diseño o que no estén contentos con él, es lo suficientemente bueno. Estoy seguro de que si suficientes usuarios declaran que comparten sus expectativas, Blizzard cederá y lo incluirá en el diseño. Esto convertiría su problema en un error real y Blizzard lo solucionaría.

back2dos
fuente
Buena respuesta, horrible metáfora. ¡Estoy tan feliz de que alguien no fuera lo suficientemente tonto como para hacer eso!
Dibujó
11

Creo que este es un caso de software que no se utiliza según lo definido por las especificaciones. Ellos dicen

El juego no está diseñado para mantenerse minimizado durante un período de tiempo tan largo.

Lo que significa que tienen alguna definición en algún lugar de lo que cuenta como un "largo período de tiempo". Si minimiza el programa por más de un "largo período de tiempo", va más allá de sus especificaciones y más allá de lo que probaron (suponiendo que lo probaron formalmente) y no garantizan lo que sucederá. Por supuesto, hubiera sido bueno si el manual en alguna parte dijera "solo hemos probado que este programa se minimice por períodos de tiempo que no excedan los 10 minutos. ¡Minimice por más tiempo que esto bajo su propio riesgo!".

Entonces no, no creo que esto sea realmente un error. En mi oficina, esto se llamaría un "problema de capacitación del usuario" (lo que diría que es una forma de problema de comunicación , porque en este caso porque no se comunicó al usuario un período máximo para minimizar el tiempo) ya que el usuario está no usa el programa correctamente. No es que ayude mucho a Blizzard, a menos que lo pongan en el manual ...

FrustratedWithFormsDesigner
fuente
3
Para un sistema de misión crítica, tenemos un requisito que dice "este sistema debe permanecer operativo durante n horas" y probamos y documentamos externamente que el sistema funciona durante n horas. También podríamos documentar internamente que hicimos una prueba durante m> n horas y que el sistema aún funcionaba. Para un juego, que no es de misión crítica, no necesariamente necesitas esto formalmente capturado externamente, ya que la mayoría de las personas probablemente nunca se encontrarán con este problema.
Thomas Owens
8

No es un error Un error es un comportamiento que no cumple con la especificación. Si la especificación dice que el caso de uso no es un comportamiento compatible, entonces cualquier comportamiento, percibido como válido o no, en ese caso de uso es 'por diseño'.

En este escenario, el juego que funciona podría percibirse como un comportamiento indefinido.

Steven Evers
fuente
Esta es una evasión masiva. Lo desprecio cada vez que lo escucho. Porque solo sale cuando "la especificación" está incompleta.
Sean McMillan
2
@SeanMcMillan: Sin cosas como esta, la característica de arrastrarnos nos mataría a todos. De cualquier manera, no es una evasión, porque es un escenario que se señala específicamente como no compatible.
Steven Evers
1
@SnOrfus: Se ha señalado. Después del hecho. ¿Realmente cree que hay una especificación que establece explícitamente que "no se admite minimizar la aplicación durante más de x minutos"? Claramente, es un error.
ThomasX
El problema es que no hay una especificación que sea lo suficientemente completa como para describir una pieza real de software. Un objetivo de "coincide con las especificaciones" no produce un buen software, es solo una excusa de que "no es mi culpa" cuando algo en el software es malo. Tal vez no valga la pena arreglarlo, pero "la especificación" no es la razón.
Sean McMillan
@ThomasX Teniendo en cuenta que el proyecto en el que estoy, tiene una especificación de 200-400 páginas, y de hecho tiene límites definidos para el tiempo de ejecución. Sí.
Steven Evers
5

Si yo fuera un líder de equipo de desarrollo en ese proyecto, lo llamaría un error, pero uno menor, ya que está muy por fuera de las expectativas operativas normales del software. Si se iba a trabajar en algo, probablemente lo asignaría a un programador junior o un nuevo empleado más como un ejercicio de aprendizaje para ellos que cualquier otra cosa.

Es una buena idea hacer un seguimiento de estos errores menores, ya que pueden indicar problemas potencialmente de mayor alcance. Por ejemplo, el error de guardado de datos que encontró. Parece menor debido a cómo sucedió, pero puede haber otros casos en los que se pierden datos. Al utilizar un sistema de informe de errores, puede encontrar todos los casos en los que surgió un problema similar y ver si hay un elemento común. En un sistema complejo, tener este tipo de cosas documentadas puede ayudarlo a encontrar errores más serios y sutiles.

jfrankcarr
fuente
5

Voy a estar en desacuerdo con la mayoría de la gente aquí.

Como ex jugador de Starcraft (original), puedo dar fe de que este es (o fue, al menos) un comportamiento muy común. Los usuarios abandonan el juego las 24 horas del día, los 7 días de la semana para mantener su posición en las salas de chat y unirse a los juegos cuando vuelven. Estoy seguro de que Battle.net actualizado tiene algunas mejoras que pueden disminuir la necesidad de esto, pero aún sucede mucho.

Tendría mucho más sentido que no te permita unirte a un juego sin volver a conectarte si tu sesión ha expirado de alguna manera. El hecho de que te permita unirte a los juegos después de haber expirado tu sesión es un error para mí. Lo inquietante aquí, y algo que aún no se ha mencionado, es que los desarrolladores necesitan comprender a sus usuarios. Esto puede muy bien ser un caso límite, pero es un caso límite para los jugadores muy dedicados que deberían configurar para complacer.

Técnicamente, pueden argumentar que es por diseño, y no es algo que pretenden arreglar. Todavía es una falla en mis ojos, lo que en última instancia depende de ellos si lo clasifican o no como un error. Eso no significa que los jugadores estén de acuerdo.

De todos modos, pensé que plantearía una respuesta ligeramente diferente de lo que se ha publicado hasta ahora.

Adrian Schneider
fuente
1
De hecho, minimizaría la pantalla durante largos períodos de tiempo si realmente jugara Starcraft. Creo que la cuestión de si es un error es irrelevante, pero parece algo que debería manejar y realmente me molestaría si no lo hiciera.
PSR
De acuerdo: esto debería clasificarse como un error, ya sea de baja prioridad. Si bien pueden decir que "dejar el juego minimizado por largos períodos de tiempo no es compatible", ¿qué constituye exactamente un largo período de tiempo? ¿Cómo saben que el mismo problema no sucederá si se minimiza durante 10 minutos? Como mínimo, se debe diseñar e implementar un tiempo de espera del juego que desconecte al usuario si se deja minimizado durante más de x minutos si no tiene la intención de apoyar tales acciones.
Gavin Coates
4

Un error podría definirse razonablemente como "cualquier desviación del comportamiento previsto del software".

Claramente, ellos (y es su software para poder determinar cómo debería comportarse) nunca pretendieron que el software manejara este escenario, por lo que no cumple con esta definición de error.

Sin embargo, lo que diría es, al menos, subóptima es la forma en que maneja esta condición.

La basura que entra, la basura que sale (es decir, el usuario hace algo estúpido, malo o inesperado y, como resultado, algo malo sucede) se ha considerado un comportamiento deficiente. Por lo menos, diría que debería ser más elegante en la forma en que maneja esta condición.

Entonces, no es estrictamente un error, sino un mal manejo de un caso extremo.

Dicho esto, si yo fuera ellos, no es algo que probablemente considere que valga la pena arreglar (demasiado costoso por muy poco beneficio), aunque podría mencionarlo al equipo para referencia futura de que era algo que podrían haber manejado mejor.

Jon Hopkins
fuente
1

La definición de un error no tiene nada que ver con el comportamiento del software. Un error se define en función de si el comportamiento del software coincide con su intención. ¿Y quién puede decir cuál fue la intención? (Como estoy tratando con programadores aquí, aclararé la primera oración: no hay un posible comportamiento del software que, en sí mismo, constituya un error).

Tenga en cuenta que, en general, un error es algo que los desarrolladores de software deben solucionar. Entonces, la definición de un error se basa en lo que quieren arreglar. Por ejemplo, "trabajar correctamente más del 50% del tiempo es una característica que planeamos lanzar en futuras versiones". Cualquier cosa se puede definir como no ser un error al pretender que el software nunca tuvo la intención de abordar ese problema en particular. Entonces, en la práctica, lo que constituye un error es una consideración puramente política.

(Por otro lado, esto corta en ambos sentidos. Para un cliente que no tiene que pagar por las correcciones de errores, pero sí tiene que pagar por un nuevo desarrollo ", no tiene alguna característica que solo pensé pero que ahora tengo decidido está 100% implícito por las cosas que mencioné "es claramente un error).

psr
fuente
¿No es OpenBSD que declara que algo no documentado correctamente es un error, sin importar lo que sea?
Canageek
1

No consideraría no desconectar un error. Es solo un error si se suponía que se desconectaría (por diseño, intención) y no lo hace. Llamaría a lo que envió una solicitud de función.

Dicho esto, perder datos después de la batalla, ese podría ser el error. No sé mucho sobre Starcraft, pero sospecho que no es por diseño.

Gran maestro B
fuente