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

73

Aquí está el problema al que me estoy enfrentando:

Cita del administrador del proyecto:

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

  • Debería poder detectar el grosor del pulgar o los dedos que se utilizan para manipular la interfaz de usuario.
  • Con esta información, todos los elementos de la interfaz de usuario deben organizarse & tamaño automáticamente .
  • Para un pulgar más grande, los elementos deben estar dispuestos 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. (Estamos asumiendo un adulto en este caso).
  • Para un pulgar más pequeño, todas las fuentes deben ser más grandes. (Estamos asumiendo una persona más joven en este caso).

Resumen:

Este marco es necesario para crear interfaces de usuario fáciles de usar programáticamente. El marco debe desarrollarse de tal manera que podamos utilizarlo para tantos proyectos como sea necesario, por lo que también debe ser muy fácil para el desarrollador.

Soy el desarrollador que tiene 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 el desarrollo de proyectos reales?
  • ¿Cómo puedo explicar que incluso si esto fuera posible, no recomendaría desarrollar tal cosa?
  • ¿Cómo puedo decir 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?
pregunta Sagar R. Kothari 21.11.2011 - 12:06

15 respuestas

102

Si obtiene un conjunto de requisitos físicamente imposibles de implementar ya que el dispositivo no es compatible con la funcionalidad deseada, debe explicárselo a la persona que crea los requisitos.

Debes ser respetuoso y explicar por qué no es posible implementar los requisitos (es decir, la pantalla táctil no puede distinguir entre un pulgar, un dedo o un lápiz. No tiene la resolución suficiente para detectar el ancho de un dedo). em> factual , apuntando a la documentación existente si hay alguna.

No entres en ningún tipo de argumento emocional y mantente fresco y profesional. Decirle a alguien 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 característica diferente y mejor que resolverá la necesidad. (gracias @spoike)

@ DarkStar33 sugiere en los comentarios que realicen la investigación y proporcionen una estimación real de cuánto costará el proyecto y cuánto tiempo tomará, con el supuesto de que el resultado será demasiado caro y largo como para que valga la pena. El hecho de 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.

    
respondido por el Oded 21.11.2011 - 12:22
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 localizar el objetivo, lo que a menudo no es comprendido por los pequeños dedos.

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íbalos así: Desafortunadamente, los dispositivos actualmente disponibles no admiten dicha funcionalidad

    
respondido por el Danubian Sailor 21.11.2011 - 15:06
16

Voy a jugar a Devil's Advocate un poco aquí y diré 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 que mida la distancia entre estos toques.

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

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

  • ¿Qué pasa si el dispositivo es compartido? ¿Cuándo ocurre la calibración?
  • ¿Cómo puede determinar dinámicamente la posición de los elementos de la interfaz de usuario arbitrariamente en todas las aplicaciones creadas con el marco? Obviamente, cada aplicación tendrá una interfaz de usuario diferente y un diseño diferente.
  • Una encuesta simple de las aplicaciones de iOS actuales muestra que las bien diseñadas utilizan todo el espacio horizontal disponible, y ya elementos espaciales, de modo que los botones importantes son lo más grandes posible y están ubicados cerca de los bordes. El ancho completo del dispositivo se usa 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 este sistema en comparación con los controles de UI estándar? ¿No sería más fácil tener un control de conmutación simple para el tamaño de fuente como muchas aplicaciones que ya utilizan?
respondido por el ghoppe 21.11.2011 - 23:08
12

Lo que haces es tratarlo seriamente y regresar con una estimación de cuánto tiempo tomaría hacer y asegurarte de que la estimación sea muy alta y muy detallada para que no puedan disputar los números altos. Una vez que hayas demostrado que no será económico hacerlo, te dejarán en paz. Asegúrese de indicar qué tareas específicas no son compatibles actualmente con el hardware y que pueden o no ser factibles de realizar. Olvídese de agregar costos para cualquier tipo de especialistas que necesite para un proyecto de esta magnitud.

    
respondido por el HLGEM 21.11.2011 - 15:46
11

La gente de Apple ya pensaba profundamente en todas estas cosas y no crearon una interfaz de tamaño variable en función del tamaño del pulgar / dedos.

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

    
respondido por el mouviciel 21.11.2011 - 12:40
10

Si está preocupado por tener problemas por los requisitos imposibles, la mejor opción es decirles de inmediato que es imposible. Cuanto más tiempo les permita crear un plan de negocios en un proyecto imposible, es más probable que lo culpen por el fracaso del proyecto.

Por encima de todo, trate de no preocuparse por las cosas que no son su culpa, todos tenemos lo suficiente para preocuparnos de que tenemos la capacidad de controlar. Si alguien fuera a responsabilizarlo por el fracaso de un proyecto de este tipo, es una injusticia contra usted. ¿Crees en el karma?

    
respondido por el maple_shaft 21.11.2011 - 13:57
8

Una forma de desviar la solicitud no razonable es ayudando 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 conocida coloquialmente como " haciendo estallar el por qué pila ", continúas preguntando " por qué "recursivamente (de una manera educada e inteligente, por supuesto):

  

Una herramienta importante para poner en marcha las comunicaciones y "cortar a la persecución" de problemas específicos es lo que Barrett denomina "la pila de por qué". Esto es simplemente para seguir preguntando "¿por qué se hace de esa manera?" sobre los requisitos del proyecto. Dio un ejemplo arquetípico de lo que puede desenterrar la técnica: "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 pregunté por qué", dijo. "La respuesta fue que el departamento que recibió los datos necesarios para ingresar los datos. Nunca se les había ocurrido que los datos podían transferirse a su aplicación automáticamente".

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

  • Proteger los ingresos
  • Aumentar los ingresos
  • Gestionar costes
  • Aumentar el valor de la marca
  • Haz que el producto sea extraordinario
  • Proporcione más valor a sus clientes

(Elementos de Cucumber wiki)

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 centrarse o, a través de este proceso de pensamiento, puede aconsejarle sobre cómo abordar el problema. Problema que están tratando de resolver de una manera más significativa. A menudo, el problema real se encuentra en un nivel de abstracción más alto que el problema que le pidieron que solucionara.

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

  

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

     

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 grandes manos como yo. Si pudieran calibrar la IU para el tamaño de sus dedos, 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 IU? Si se sabe que las personas que usan esto tienen manos grandes, ¿por qué no ajustar el diseño para ese caso de uso?

     

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

    
respondido por el Andrew Vit 22.11.2011 - 06:37
7

Descargo de responsabilidad: no sé si su solicitud es posible, y si es posible, entonces necesita determinar cuánto tiempo tomará y proporcionar sus comentarios a su gerente. Pero escribo esta respuesta asumiendo que no es factible, al menos usando el marco estándar, y extiendo mi respuesta al caso más general cuando realmente no puede o no debe hacer algo.

Sólo di NO.

Hay muchas respuestas "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 no es factible, que es demasiado complicado y que posiblemente no sea posible. Es mi responsabilidad decir que no.

Por supuesto que puedo & debe decir no gentilmente; Puedo "recomendar encarecidamente que no lo haga" y ofrecer "investigar si es posible" antes diciendo que no. Pero finalmente voy a decir que no, porque ese es mi trabajo.

Hay tantas analogías con esto

  • Mi contador, quiero que deje mi cena de Acción de Gracias como una deducción de impuestos
  • Sr. Chef, me gustaría que dejaran mi pollo en el mostrador toda la noche y que se sirva crudo, por favor.
  • Mi abogado, quiero demandar a mis hijos por no ordenar sus habitaciones
  • Señor mecánico, instale un turbocompresor en mi coche eléctrico

Puede pedir a todas estas personas que realicen tareas que sabrán que son tontas, inútiles, peligrosas o incorrectas. Y esperaría que todos ellos aconsejaran en contra de estas acciones y, en última instancia, rechacen (al menos eso espero). Si alguno de estos profesionales respondiera "Hmm, está bien, supongo que podemos hacerlo", sin darme una clara "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á.

    
respondido por el Kirk Broadhurst 21.11.2011 - 23:42
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 retroceda un paso y pregúntese, ¿cuál es la lógica detrás de estos requisitos más bien 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íalos hacia lo que se puede hacer y lo que no. Dígales que si desean una interfaz de usuario fácil, hay formas sencillas (y más baratas), como permitir que el usuario establezca el tamaño de la fuente / icono (supongo que es posible en el IoS). ¿Tal vez puede dejar 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 en el tamaño del pulgar! Lo último que su gerente querría es un código innecesario, inflado y difícil de mantener que logre lo mismo que ya proporciona el sistema operativo. Dígale a su cliente que los usuarios preferirían controlar la aplicación en lugar de que la aplicación los controle de manera que pueda enfurecerlos.

    
respondido por el DPD 21.11.2011 - 18:30
1

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

No creo que puedas distinguir el dedo pulgar de una persona por el de otra persona, pero puedes obtener suficientes dimensiones de los dedos para saber cuándo están usando el pulgar. El problema real es que debido al ángulo del pulgar, puede que no toque más espacio en la pantalla que otros. Nunca nadie usa un teléfono con el pulgar y lo coloca plano en la pantalla como si te hubieran tomado la impresión del pulgar.

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

    
respondido por el JeffO 21.11.2011 - 17:01
1

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

En caso de requisitos que podrían ser 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 el grosor del dedo del usuario después de que el primer toque en menos de 200 milisegundos para permitir una interacción inmediata?" (Reemplace primero por 2nd o ...; y 200 ms por 300 ms o lo que sea ...)

Tal vez incluso responder a esta pregunta toma un mes. Tal vez incluso si esto es más o menos factible, se necesita un algoritmo super complejo que solo funciona bien en el 80% de los casos.

¿Ves a dónde voy?

Las personas a menudo hacen suposiciones erróneas acerca de las posibilidades porque tienen poca experiencia y pericia en el campo en cuestión. Por lo tanto, no puede discutir con la intuición, pero necesita hechos.

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

    
respondido por el Philip 22.11.2011 - 00:14
1

Esto suena complejo pero no imposible en absoluto; el punto en 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.

    
respondido por el lurscher 22.11.2011 - 19:56
0

Consideraría tratar de 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 volver a calibrar todos los demás clics.

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

Puede que aún sea difícil: ubicar un área alrededor de los botones para detectar fallas, así que calcule más horas.

    
respondido por el Bill K 21.11.2011 - 22:01
0

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

Y una vez que se da cuenta de la impracticabilidad y el costo involucrados en tal empresa, sugiere 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 indique el problema y el requisito y no la solución y el diseño para proyectos futuros.

    
respondido por el jack 15.06.2015 - 11:31
-1

Lo que me gusta hacer es abordar el problema desde la perspectiva del equipo. En este caso, el director del proyecto y yo tenemos que encontrar una solución. También me gusta mostrar que vengo con una mente abierta. Si escucho lo que creo que son imposibilidades de audición, existe la posibilidad de que haya un malentendido entre el gerente del proyecto y yo. O quizás no hayamos llegado a ese momento aha.

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 qué se necesitaría hacer, muchas veces es la forma más fácil de decir "no" respetuosamente. Y esa sería la manera de despejar cualquier posible malentendido. Aunque, para ser sincero, no estamos diciendo del todo que no. Y, ¿cuál es el propósito de decir no de todos modos? Si el trabajo no vale la pena, no importa si queremos hacerlo o no.

    
respondido por el Arturo Hernandez 23.01.2013 - 05:22

Lea otras preguntas en las etiquetas