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?
project-management
iphone
frameworks
ios
requirements
Sagar R. Kothari
fuente
fuente
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.Respuestas:
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.
fuente
"have the project lead explain the actual business goals"
es una gran idea, dales lo que quieren, incluso si no saben cómo pedirlo.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.
fuente
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.
fuente
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.
fuente
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.
fuente
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?
fuente
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):
El objetivo es llegar al valor comercial central de la función:
(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:
fuente
Often the real problem lies at a higher level of abstraction than the problem they've requested you to fix.
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
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á.
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente