¿Cómo debe un desarrollador rechazar requisitos imposibles? [cerrado]


74

Aquí está el problema que estoy enfrentando:


Cita del gerente del proyecto:

Hola Spark, te estoy asignando la tarea de desarrollar un marco que pueda usarse para muchas aplicaciones iOS diferentes. Aquí están los requisitos:

  • Debe poder detectar el grosor del pulgar o los dedos que se utilizan para manipular la IU.
  • Con esta información, todos los elementos de la interfaz de usuario deben organizarse y dimensionarse automáticamente .
  • Para un pulgar más grande, los elementos deben estar dispuestos más cerca del centro de la pantalla.
  • Para un pulgar más pequeño, los elementos deben estar dispuestos más cerca de las esquinas de la pantalla.
  • Para un pulgar más grande, todas las fuentes deben ser más pequeñas. (Asumimos un adulto en este caso).
  • Para un pulgar más pequeño, todas las fuentes deben ser más grandes. (Asumimos una persona más joven en este caso).

Resumen:

Este marco es necesario para crear interfaces de usuario fáciles de usar mediante programación. El marco debe desarrollarse de tal manera que podamos usarlo para tantos proyectos como sea necesario, por lo que también debe ser muy amigable para el desarrollador.


Soy el desarrollador encargado de esta tarea, por lo que mis preguntas son las siguientes:

  • ¿Cómo puedo explicar que estos requisitos son un poco ridículos?
  • ¿Cómo puedo explicar que sería mejor concentrarse en desarrollar proyectos reales?
  • ¿Cómo puedo explicar que incluso si esto fuera posible, no recomendaría desarrollar tal cosa?
  • ¿Cómo le digo NO a este proyecto de manera cortés, amable y respetuosa?
  • ¿Cómo puedo explicar que incluso para un desarrollador con 3 años de experiencia, esto podría no ser posible?

77
Obtendrá muchos puntos de brownie por no todos estos requisitos "tontos" y evitará el peor "no". Explique que los dispositivos iOS no son compatibles con este tipo de funcionalidad.
Ramhound

26
How do I say politely, gently & respectfully NO to this? Otro consejo que debo darte, para tener un poco de control con tus jefes, siempre debes dejar que lleguen a sus propias conclusiones. Si le ordenan, nunca diga que no, solo explique los hechos y discuta los problemas. Intenta hacer que se den cuenta de lo estúpidas que son sus solicitudes, porque es posible que no conozcan los detalles. Probablemente verán que es una idea tonta y le darán una tarea diferente, y NUNCA tuvo que decir NO. Nunca digo NO y recibo requisitos tontos todo el tiempo que nunca suceden.
maple_shaft

151
Pensé que la parte del requisito del que se quejaba era que se referían a usted como Sugar . Entonces vi tu nombre de usuario :)
Goran Jovic

66
No importa el hecho de que el tamaño del dedo 'observado' cambiaría dependiendo de la forma en que sostienen el dispositivo. ¿Y prestarlo a la gente? Mover botones es terrible, y no solo desde el punto de vista del cliente: ¿cómo se supone que debe proporcionar un soporte razonable para esto (los botones no están en ubicaciones estandarizadas)? ¿Y cómo define un pulgar 'más grande' / 'más pequeño' y la correlación con la edad? Las mujeres tienden a ser más pequeñas (y tienen manos más pequeñas) que los hombres: ¿necesitaría su aplicación conocer el género? Y los problemas ópticos tienden a empeorar con la edad, no mejoran.
Clockwork-Muse

13
Intentemos detectar la relación de arrugas del dedo para ayudar a adivinar la edad. Luego, cuando tienes un dedo grande con una alta relación de arrugas, tienes una persona mayor que necesita fuentes más grandes. Y cuando tienes un dedo pequeño con una alta relación de arrugas, tienes un niño que acaba de salir del baño y publicas un error diciéndoles que es hora de dormir, no hora de iPhone.
music2myear

Respuestas:


102

Si obtiene un conjunto de requisitos que son físicamente imposibles de implementar ya que el dispositivo no admite y no puede admitir la funcionalidad deseada, debe explicar esto a la persona que crea los requisitos.

Usted debe ser respetuoso y explicar por qué los requisitos no son posibles de implementar (es decir, la pantalla táctil no puede distinguir entre un dedo pulgar, dedo o el lápiz No tiene suficiente resolución para detectar ancho de un dedo..) - mantener las cosas de hecho , señalando documentación existente si hay alguna.

No entre en ningún tipo de argumento emocional y manténgase fresco y profesional. Decirle a cualquiera que sus requisitos son tontos nunca es una estrategia ganadora.

Vea si puede comprender los objetivos reales de la función, por qué se considera un requisito. Esto podría llevarlo a una función diferente y mejor que resolverá la necesidad. (gracias @spoike)

@ DarkStar33 sugiere en los comentarios hacer la investigación y proporcionar una estimación real de cuánto costará el proyecto y cuánto tiempo llevará, con el supuesto de que el resultado será demasiado costoso y largo para que valga la pena. Estar armado con números y los datos para respaldarlos sin duda puede ayudar a su caso, aunque todavía miraría los objetivos comerciales para ver si se pueden cumplir (incluso parcialmente) de otra manera.


31
+1 manténgalo en la realidad, también haga que el líder del proyecto explique los objetivos comerciales reales que tiene esta característica para que pueda salvarse con otra característica y solución mucho mejor.
Spoike

8
@Spoike "have the project lead explain the actual business goals"es una gran idea, dales lo que quieren, incluso si no saben cómo pedirlo.
StuperUser

2
En este caso, suponiendo que el objetivo es hacer que la aplicación sea accesible para personas con deficiencias visuales, entonces podría resolverse mucho más fácilmente de otras maneras. Por ejemplo, dejar que el usuario seleccione si quiere texto más grande / más pequeño la primera vez que inicia la aplicación (y luego a través de las preferencias de la aplicación). Determinar la edad y la discapacidad visual con el tamaño de su dedo es bastante exagerado, y podría ser problemático incluso con respecto a UX (por ejemplo, personas mayores y pequeñas frente a personas jóvenes y grandes).
Spoike

2
@Tom No creo que sea posible ... mi abuela creció en la época en que golpear el televisor era una forma válida de arreglarlo ...
Izkata

55
Como gerente de producto, puedo afirmar que 1) mantenerlo factual es importante, pero 2) hacer preguntas sobre lo que realmente están tratando de hacer será de gran ayuda. Si creen que usted comprende sus necesidades, estarán más abiertos a lo que tenga que decirles.
Taj Moore

30

Estos requisitos no son tontos, estúpidos o ridículos. De hecho, este es un problema muy importante para los usuarios de pantallas táctiles, ya que a las personas con dedos más grandes les resulta muy difícil determinar el objetivo, lo que a menudo los pequeños dedos no entienden.

Sin embargo, si encuentra que estos requisitos son imposibles de implementar debido a que los sensores del dispositivo no pueden medir el tamaño de los dedos, simplemente escríbalo así: Desafortunadamente, los dispositivos actualmente disponibles no son compatibles con dicha funcionalidad.


Estoy de acuerdo en que las necesidades o deseos del cliente nunca son estúpidos, no estamos discutiendo ese punto. Estamos argumentando que es estúpido establecer requisitos, un plan de proyecto y dedicar recursos a un proyecto que no ha sido prototipo.
maple_shaft

11
Bueno, lo siento, lechlukasz, pero esta vez creo que son realmente tontos sin fin. Incluso si la plataforma expuso el óvalo presionado en la pantalla táctil para poder calcular el centroide, la idea de una interfaz de usuario dinámica basada en el grosor del dedo es un poco "exótica". Como usuario, no me gustaría limitarme a una política de un solo dedo por sesión, y me gustaría poder presionar la pantalla con un dedo a la vez, con un lápiz capacitivo o incluso con otras partes de el cuerpo si me siento tan XD.
Señor Smith

@maple_shaft: parece que esta lista de características de viñetas solo es suficiente para crear un prototipo.
JeffO

1
Estoy de acuerdo en que este sería un marco útil y, si no es útil, extremadamente genial, lo que probablemente cuenta para más en el mundo de Apple. Solo necesita un widget de "calibrar el tamaño del dedo" y el resto debe encajar.
James Anderson el

1
Creo que puedes hacer esto con la tecnología actual. Necesitaría una aplicación específica para calibrar el tamaño del dedo y almacenarlo de forma estática, en lugar de la medición completamente dinámica prevista, pero por lo demás es factible. Windows ha adaptado sus ventanas e íconos al tamaño de la pantalla durante años, por lo que ese lado es bien conocido.
James Anderson el

16

Voy a jugar Devil's Advocate aquí un poco y decir que creo que en realidad es técnicamente factible medir el tamaño del pulgar de una persona. El iPhone es un dispositivo multitáctil. Para la calibración, puede indicar al usuario que coloque sus pulgares o dos dedos en la pantalla uno al lado del otro y mida la distancia entre estos toques.

Por supuesto, esto requeriría pruebas y experimentación para ver qué tan factible es mi intuición. Quizás los pulgares tendrían que arrastrarse por la pantalla para obtener una mejor lectura.

Dicho esto, hay serios problemas de usabilidad e implementación.

  • ¿Qué pasa si se comparte el dispositivo? ¿Cuándo ocurre la calibración?
  • ¿Cómo puede determinar dinámicamente la posición de los elementos de la interfaz de usuario de forma arbitraria en todas las aplicaciones creadas con el marco? Obviamente, cada aplicación tendrá una interfaz de usuario diferente y un diseño diferente.
  • Una simple encuesta de las aplicaciones actuales de iOS muestra que las bien diseñadas utilizan todo el espacio horizontal disponible, y ya elementos espaciales tales que los botones importantes son lo más grandes posible y se colocan cerca de los bordes. El ancho completo del dispositivo se utiliza para listas y diseño, obviamente.
  • Incluso si fuera posible, ¿cuál es el análisis de costo / beneficio? ¿Cuánto se ganaría con un sistema de este tipo en comparación con los controles de interfaz de usuario estándar? ¿No sería más fácil tener un control de alternancia simple para el tamaño de fuente como muchas aplicaciones ya usan?

12

Lo que debe hacer es tratarlo seriamente y regresar con una estimación de cuánto tiempo tomaría hacer y asegurarse de que la estimación sea muy alta y muy detallada para que no puedan disputar los números altos. Una vez que haya demostrado que no será económico, lo dejarán solo. Asegúrese de señalar qué tareas específicas no son compatibles actualmente con el hardware y que pueden o no ser factibles de hacer. Olvídese de agregar costos para cualquier tipo de especialistas, personas adicionales que pueda necesitar para un proyecto de esta magnitud.


2
Sí, este es el enfoque correcto. Nunca digas no". Simplemente analice el problema y proponga una solución que funcione, junto con las estimaciones de tiempo. Entonces, ¿cuál es el tiempo estimado para alterar las iOs para calcular dinámicamente el ancho del dedo? Tal vez 2 años para unos 10 desarrolladores de sistemas operativos. Ahí está tu estimación! :)
Stephen Gross el

En este caso, tendrías que estar de acuerdo con Apple, lo que significa referirlo a legal y todo tipo de cosas fuera del ámbito del desarrollo de software. En este caso, diría que puedes decir "Es imposible, dadas las limitaciones del hardware, que no controlamos. Tendremos que entablar negociaciones con Apple".
deworde

1
@deworde - Odio la palabra "imposible" que hace 20 años la gente pensaba que era genial "imposible". ¿Qué tal si dijéramos "actualmente no es posible con el hardware provisto"?
Ramhound

@Ramhound Son tus planificadores de negocios, no tus hijos. No los cubra con azúcar para proteger sus esperanzas y sueños, OBTENGA LOS REQUISITOS DE LA ESPECIFICACIÓN .
deworde

1
Agregue 2 años más, 100 ingenieros de hardware y un laboratorio de I + D de 50 millones de dólares para inventar el hardware que se venderá a Apple según su estimación de que, sí, esto podría hacerse.
hotpaw2

11

La gente de Apple ya pensaba profundamente en todas estas cosas y no se les ocurrió una interfaz redimensionable dependiendo del tamaño de los pulgares / dedos.

Como usuario, odiaría mover objetivos bajo mis dedos.


2
Usé este argumento cuando me pidieron que escribiera una metaconsulta universal para una base de datos de Access mal diseñada. (Es decir, un sistema en el que cualquier usuario puede consultar nada arbitrariamente sin tener que utilizar el generador de consultas) me dijo: "Si esto fuera posible, Microsoft habría hecho, y que estaría publicidad en todas partes.
Chris Cudmore

@chris: eso es exactamente lo que digo cada vez que alguien quiere un asistente de informes de todo. Si fuera posible, Access lo habría recuperado a principios de los 90
Neil N

44
-1, "porque Apple no lo hizo" no es una buena razón para no probar algo nuevo. Se puede ser que su una idea increíblemente estúpida y / o físicamente imposible. O no. Pero no veo dónde está el daño al intentarlo si sus jefes están dispuestos a gastar los recursos.
GrandmasterB

2
@GrandmasterB: supongo que Apple lo hizo y luego lo rechazó. De todos modos, un poco de sentido común dice que, desde el punto de vista de la usabilidad, esto está lejos de ser cómodo. No necesito un jefe con tales ideas.
Mouviciel

10

Si le preocupa meterse en problemas por tener requisitos imposibles, entonces la mejor opción es decirles de inmediato que es imposible. Cuanto más tiempo les permita construir un plan de negocios en un proyecto imposible, más probabilidades tendrán de culparlo por el fracaso del proyecto.

Sobre todo, trate de no preocuparse por cosas que no son su culpa, todos tenemos lo suficiente como para preocuparnos de que sí tenemos la capacidad de controlar. Si alguien fuera a responsabilizarte por el fracaso de un proyecto así, sería una injusticia en tu contra. ¿Usted cree en el karma?


Sí, creo en KARMA ? :)
Sagar R. Kothari

1
@ azúcar también lo hago! Si no te escuchan, fracasarán.
maple_shaft

No digas que es imposible decir que el sistema operativo no proporciona esta información. Dado que en el caso de una aplicación iOS solo puede usar métodos públicos, está limitado a lo que el sistema operativo admite oficialmente. Si esto fuera posible, lo habrían proporcionado al marco y, por lo tanto, el usuario ni siquiera cuestionaría este requisito.
Ramhound

8

Una forma de desviar la solicitud irrazonable es ayudar al cliente a comprender la naturaleza del problema que está tratando de resolver. A través de una técnica de entrevista de planificación coloquialmente conocida como " reventar la pila de por qué ", continúa preguntando "por qué" de forma recursiva (de una manera educada e inteligente, por supuesto):

Una herramienta importante para poner en marcha las comunicaciones y "ir al grano" de problemas específicos es lo que Barrett llama reventar la pila de "por qué". Esto es simplemente para seguir haciendo la pregunta "¿por qué se hace de esa manera?" sobre los requisitos del proyecto. Dio un ejemplo arquetípico de lo que la técnica puede descubrir: "Una vez trabajé con un cliente donde había un requisito de que los datos se imprimieran en una etapa particular del proceso, así que le pregunté por qué", dijo. "La respuesta fue que el departamento que recibió los datos necesitaba ingresarlos. Nunca se les había ocurrido que los datos pudieran transferirse automáticamente a su aplicación".

El objetivo es llegar al valor comercial central de la función:

  • Proteger los ingresos
  • Aumentar los ingresos
  • Administrar costos
  • Aumentar el valor de la marca
  • Haz que el producto sea notable
  • Brinde más valor a sus clientes.

(Artículos del wiki de Pepino )

Si la función no se ajusta a una de estas categorías, puede ayudar al cliente a ver que hay cosas más importantes en las que enfocarse, o a través de este proceso de pensamiento puede asesorarlos sobre cómo abordar el problema que ' intenta resolver de una manera más significativa. A menudo, el verdadero problema radica en un nivel de abstracción más alto que el problema que le han solicitado que solucione.

Para usar su ejemplo de escaneo de tamaños de pulgar:

Cliente: Queremos detectar el grosor del pulgar o los dedos que se utilizan para manipular la IU.

Dev: ¿Por qué quieres hacer eso?

Cliente: Porque cuando trato de tocar estos botones pequeños, a menudo presiono algo incorrecto, y nuestro software es utilizado por muchos trabajadores de la construcción con manos grandes como yo. Si pudieran calibrar la interfaz de usuario para el tamaño de su dedo, sería más fácil de usar.

Dev: La facilidad de uso sin duda sería valiosa para el cliente, pero ¿por qué querrían calibrar la interfaz de usuario? Si se sabe que las personas que usan esto tienen grandes manos, ¿por qué no ajustar el diseño para ese caso de uso?

Cliente: Nunca lo pensé de esa manera, ¡supongo que un diseño más limpio funcionaría igual de bien para personas con manos pequeñas también!


44
+1 Para mostrar el por qué apilar y citar:Often the real problem lies at a higher level of abstraction than the problem they've requested you to fix.
Spoike

7

Descargo de responsabilidad: no sé si su solicitud es posible, y si es posible, entonces debe determinar cuánto tiempo tomará y proporcionarle sus comentarios a su gerente. Pero estoy escribiendo esta respuesta asumiendo que no es factible, al menos utilizando el marco estándar, y estoy extendiendo mi respuesta al caso más general cuando realmente no puedes o no debes hacer algo.

Solo di no.

Hay muchas respuestas de 'nunca digas no' en este hilo, que creo que es una actitud suave y sumisa. Piénselo de esta manera: soy el experto técnico en este equipo, y los otros miembros de mi equipo están tratando de hacer algo que creo que es inviable, demasiado complicado y potencialmente imposible. Es mi responsabilidad decir que no.

Por supuesto que puedo y debo decir que no suavemente; Puedo "recomendar encarecidamente contra esto" al tiempo que me ofrezco a "investigar si es posible" antes de decir que no. Pero finalmente voy a decir que no porque ese es mi trabajo.

Hay tantas analogías a esto

  • Mi contable, quiero que ponga mi cena de Acción de Gracias como una deducción de impuestos
  • Sr. Chef, me gustaría que me dejaran el pollo en el mostrador durante la noche y lo sirvieran crudo, por favor.
  • Mi abogado, quiero demandar a mis hijos por no ordenar sus habitaciones
  • Sr. Mecánico, instale un turbocompresor en mi automóvil eléctrico.

Puede pedirle a todas estas personas que realicen tareas que sabrán que son tontas, derrochadoras, peligrosas o incorrectas. Y es de esperar que todos ellos desaconsejen estas acciones y finalmente se nieguen (al menos eso espero). Si alguno de estos profesionales respondiera 'Hmm, está bien, supongo que podemos hacer eso', sin darme una "Esta es una mala idea", entonces, francamente, no me gustaría contratarlos de todos modos.

Sus colegas valorarán y respetarán su honestidad, y le ahorrará a todos mucho tiempo y dinero si proporciona comentarios útiles en lugar de aceptar algo que sabe que no funcionará.


2
nota: estoy abordando la pregunta "¿Cómo debe un desarrollador rechazar requisitos imposibles" ?
Kirk Broadhurst el

Más poder para ti.
ThomasX

2

No debería ser demasiado difícil decirle a su cliente que no puede implementar algo que su plataforma de destino no le permite. Pero dé un paso atrás y pregúntese, ¿cuál es la lógica detrás de estos requisitos bastante ridículos? Por lo que puedo leer, están muy preocupados por la facilidad de uso. Luego pregúntales, profundiza un poco más hasta que te digan lo mismo: "queremos una interfaz fácil de usar". Luego guíelos hacia lo que es factible y lo que no. Dígales que si desean una interfaz de usuario sencilla, existen formas fáciles (y más económicas), como permitir que el usuario establezca el tamaño de fuente / icono (supongo que es posible en IoS). ¿Quizás pueda permitir que el usuario controle el tamaño de fuente / tamaño de icono y la disposición de la aplicación a través de una pestaña de configuración? ¡Eso debería ser más fácil (y más preciso!) Que tratar de adivinar la edad de una persona del tamaño del pulgar! Lo último que desearía su gerente es un código innecesario, hinchado y difícil de mantener que logre lo mismo que el sistema operativo ya proporciona. Dígale a su cliente que los usuarios preferirían controlar la aplicación en lugar de que la aplicación los controle de formas que puedan enfurecerlos.


1

Mi respuesta sería que comenzaría a investigar algunas de estas tecnologías no probadas y les haría saber si es posible. En base a esos descubrimientos, se puede iniciar un plan de desarrollo potencial.

No creo que pueda distinguir el pulgar de una persona de otra persona, pero es posible que pueda obtener suficientes dimensiones de los dedos para saber cuándo están usando el pulgar. El verdadero problema es que, debido al ángulo del pulgar, es posible que no toque más espacio en la pantalla que otros. Nadie usa un teléfono con el pulgar y lo coloca plano en la pantalla como si le estuvieran tomando la huella del pulgar.

Deja la compañia. Averigua cómo hacerlo. Véndelo por mucho más dinero del que estás ganando ahora.


1

Cuando se trata de requisitos, generalmente lo hago así: trato de estimar cuánto tiempo tomaría realizar un requisito específico.

En caso de que los requisitos sean imposibles, solicite algunos días o el tiempo que sea necesario para averiguar si es posible. En su caso, la pregunta es: "¿Es posible determinar qué tan grueso es el dedo del usuario?"

De hecho, esta pregunta es incluso un poco más compleja: "¿Es posible determinar qué tan grueso es el dedo del usuario después del primer toque en menos de 200 milisegundos para permitir una interacción inmediata?" (reemplazar primero por 2do o ...; y 200 ms por 300 ms o lo que sea ...)

Quizás incluso responder esta pregunta lleve un mes. Quizás incluso si esto es más o menos factible, se necesita un algoritmo súper complejo que solo funciona bien en el 80% de los casos.

¿Ves a dónde voy?

Las personas a menudo hacen suposiciones erróneas sobre las posibilidades porque tienen poca experiencia y experiencia con respecto al campo en cuestión. Por lo tanto, no puedes discutir con la intuición, pero necesitas hechos.

Si las otras partes interesadas se dan cuenta de que esta característica tomaría 2 años-hombre y requiere que el iPhone 10 llegue antes de 2014, rápidamente reducirá sus requisitos.


1

Esto suena complejo pero no imposible en absoluto; el punto de que la pantalla táctil no puede distinguir entre un pulgar, un dedo medio o un lápiz es discutible; se le pide al usuario en la inicialización (inicio de sesión, lo que sea) que coloque un pulgar, luego un dedo medio, etc. para calibrar los tamaños (hacer algunos promedios estadísticos) usando varios movimientos, etc.


0

Consideraría intentar resolver el problema raíz de otra manera antes de decir que no se puede hacer.

Por ejemplo, si el usuario a menudo intenta hacer clic en un botón pequeño y falla, puede observar el área alrededor del botón y usarlo para recalibrar todos los demás clics.

Presentar una solución creativa como esta es probablemente lo que buscan después de pedirle que descubra mágicamente el ancho de un dedo (que puede informarles que no está en la API).

Todavía puede ser difícil: colocar un área alrededor de los botones para detectar errores, así que calcule más horas.


0

No digas que no, ya que eso lastimaría sus sentimientos. Simplemente deje en claro que, debido a limitaciones tecnológicas, el 60% del tiempo funcionará siempre.

Y una vez que se dé cuenta de la impracticabilidad y el costo involucrado en tal empresa, sugiera un enfoque más práctico dentro de su presupuesto, como tener una configuración que le permita cambiar el tamaño del texto. Y los rusos llevaron un lápiz al espacio.

Trate de hacer que exprese el problema y los requisitos y no la solución y el diseño para futuros proyectos.


-1

Lo que me gusta hacer es abordar el problema desde una perspectiva de equipo. En este caso, el gerente del proyecto y yo necesitamos encontrar una solución. También me gusta mostrar que vengo con una mente abierta. Si escucho lo que creo que están escuchando imposibilidades, existe la posibilidad de que haya un malentendido entre mí y el gerente del proyecto. O tal vez no hemos llegado a ese momento ajá.

Una vez que decidimos dar un salto y tener una conversación abierta, me resulta más fácil tratar el problema como económico. En tecnología, casi todo es posible dada una cantidad infinita de recursos. Discutir lo que se necesitaría hacer, muchas veces es la forma más fácil de "decir no" respetuosamente. Y esa sería la manera de aclarar cualquier posible malentendido. Aunque, para ser sincero, no estamos diciendo que no. Y, cuál es el propósito de decir no de todos modos. Si no vale la pena hacer el trabajo, no importa si queremos hacerlo o no.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.