Pregunta

Es fácil para los gerentes y los clientes apreciar lo que pueden ver.

He visto a muchos desarrolladores de GUI que son programadores promedio con un conocimiento mínimo de principios de diseño u otros modismos de programación. Sin embargo, estas deficiencias a menudo pasan desapercibidas, especialmente por la administración y los clientes, si el programador puede crear una interfaz de usuario de aspecto impresionante. Tanto es así que muchos desarrolladores de la GUI que conozco pasan horas embelleciendo la GUI a expensas de escribir código malo e indescriptible.

Por otro lado, los programadores de nivel medio que desarrollan API o funcionalidad comercial o código de base de datos (SQLS, etc.) están en desventaja, ya que no hay nada tangible que exhibir. Quizás un revisor de código o un arquitecto pueden apreciar la elegancia, el buen diseño, la escalabilidad, etc. del código, pero no significa nada para el mundo exterior. Su código puede funcionar durante años sin romperse, puede ser muy fácil de mantener y tener un buen rendimiento, sin embargo, nunca provoca el 'wow' que una gui de aspecto resbaladizo.

En mi opinión, un corolario de esto es (y voy a tener un gran voto para esto, lo sé) que hay menos motivación para que un programador de GUI escriba un buen código limpio.

EDITAR: Debo explicar aquí que por programador de GUI, no me refiero a un diseñador web/GUI completo, sino un programador front-end, por ejemplo, un programador Java-Swing.

¿Está de acuerdo el resto de la comunidad?

¿Fue útil?

Solución

Creo que veo tu punto, pero sospecho que también hay un tema opuesto a tener en cuenta.

Esencialmente, creo que está sugiriendo que, debido a que la interfaz de usuario es el elemento de la aplicación 'en la cara' de los usuarios finales, los desarrolladores de la UI disfrutan de una visibilidad más alta que los miembros del equipo que trabajan en capas más profundas de la aplicación.

Ciertamente estoy de acuerdo en que puede haber una mayor visibilidad. Por ejemplo, los desarrolladores que trabajan en los elementos de la UI pueden interactuar con los usuarios finales con más frecuencia (posiblemente, por buenas razones, ya que se centran en el aspecto de interacción humana/informática).

Sin embargo, creo que la mayor visibilidad se juega incluso en los casos en que hay un problema. Por ejemplo, es muy probable que los usuarios finales informen problemas como 'problemas de GUI' incluso cuando no lo son.

Todo puede reducir a la percepción, y una organización madura debería ser capaz de reconocer valores, virtudes y debilidades de los diversos miembros del equipo independientemente de la capa de la aplicación en la que trabajan. Una organización madura también puede haber ido más allá de las distinciones como 'desarrollador de UI' y 'desarrollador de capa de negocios', reconociendo que todos son miembros del equipo de todos modos, con diferentes experiencia tal vez, pero siempre tratando de educarse mutuamente sobre esas áreas de experiencia.

Otros consejos

Para una persona que no trata con programadores, puedo decir con confianza que creería este tipo de cosas. No saben la cantidad de trabajo que va en segundo plano, todo lo que ven es un montón de botones/cuadros de texto/menús/[insertar elemento GUI] y la velocidad que se necesita para lograr lo que comenzó el botón. Entonces, inicialmente, a la gente de la GUI se les gusta más.

Si la persona lo hace Tratar con programadores, entonces es un poco diferente. Como usted dijo que notarían si lo hiciera escalable, más fácil de mantener, reescribió un algoritmo para que tuviera más sentido o cualquier otra tarea de tipo de mantenimiento. Este tipo de persona miraría a todos los programadores por igual.

En el medio depende de lo que estés haciendo. La velocidad se convierte en el factor importante aquí. Si puede mostrar las grabaciones antes y después de cuánto tiempo tarda en procesarse y almacenarse un formulario y hay una mejora, usted es igual. Si puede mostrar la aplicación bajo carga de 100 clientes y mostrarles la fusión del servidor, y luego mostrarles su versión donde todo está bien, su igual. Etc.


En resumen, depende de la persona y de lo que estés haciendo.

Como el "experto en la interfaz de usuario" en mi empresa (el tipo a cargo de todo el desarrollo de la interfaz de usuario, no solo del diseño), creo que podría perderse parte de la historia. Si bien soy el tipo a cargo de la interfaz de usuario, también trabajo el back-end, en las bases de datos, etc. Lo hago todo (somos un equipo pequeño). [C# y ASP.NET WebForms Development

En primer lugar, sí, es mucho más fácil para las personas no técnicas apreciar el trabajo de un desarrollador de GUI porque eso es lo que está frente a las personas. A personas no técnicas, La GUI es la aplicación. El inconveniente es que la GUI también es la primera en culpar cuando algo sale mal.

En segundo lugar, desarrollar el front-end ha sido mucho más desafiante para mí que el back-end (algoritmos oscuros/complejos a un lado). Hay mucho más para protegerse, es apátrido (nuestras aplicaciones están en la web), los navegadores no se comportan de manera consistente (las bibliotecas de JavaScript fueron un regalo del cielo), etc. Espero que la mayor parte de esta complejidad se deba al marco que tengo Para trabajar con (ASP.NET WebForms) y que todas las cosas difíciles no serán un problema en el futuro.

En general, he tenido muchas más dificultades para resolver problemas de IU que los problemas de back-end.

Odio el desarrollo de la GUI por dos razones,

  1. Soy más lógico que gráfico artístico y mi interfaz de usuario siempre sufre como resultado.
  2. Como la interfaz de usuario no se basa en la lógica, las pruebas unitarias son casi imposibles de escribir con cualquier significado

Al final del día, sin embargo, creo que mi código será mejor apreciado por el usuario final (en lugar de un patrocinador del proyecto), que el de un desarrollador mediocre que es un genio en la interfaz de usuario, ya que generalmente funciona .

Para (tal vez) expandirse un poco en la respuesta de @Thelq, creo que también depende del "espectador".

He tenido algo de experiencia con algunos gerentes/supervisores de nivel superior que no tienen experiencia en programación. Algunos aprecian que no programen, pero entienden que Chrome y HubCaps son tan importantes como el motor y el chasis.

Y he tenido experiencia con algunos gerentes/supervisores de nivel superior que no les importan ninguna métrica que no sea el chisporroteo de la interfaz de usuario. Incluso afirmar que más desarrolladores orientados a la interfaz de usuario son importantes.

En mi humilde opinión, todos sabemos que no puedes pulir un turd y una aplicación rápida y confiable pero fea será mucho peor que una aplicación que se ve bien y funciona bien. Todo está en el ojo del espectador y, hasta cierto punto, tienes el poder (independientemente de lo que hagas) para ser visto a la luz que quieras, trabajando para aquellos que aprecian las mismas cualidades que tú.

Editar: podría agregar, ser alguien que se sienta más cómodo trabajando en artículos de nivel inferior, me han cansado cuando trabajas por igual como el equipo de UI y es el esmalte el elogiado en la demostración y no el hecho de que el sistema " solo funcionó ". Pero como dije, sé que mi supervisor sabe que el trabajo es necesario en todas las áreas.

Creo que existe una presunción general de que los desarrolladores de la UI son los desarrolladores "junior". Solo puedo pensar en un caso con el que me encontré donde un chico de UI fue considerado senior.

Dicho esto, creo que la interfaz de usuario es mucho más difícil que cualquier otra parte de nuestras aplicaciones. Y no estoy hablando del diseño de UX, estoy hablando de la codificación. ¿Cuántas otras áreas codificamos donde tenemos que dar cuenta de docenas, si no cientos o posibles escenarios? Simplemente cambiar el tamaño de una pantalla a veces puede convertirse en un dolor real cuando necesita descubrir qué debe suceder con un par de docenas de elementos. Esto surge principalmente cuando tiene pautas que dicen "Necesitamos admitir 800x600" y luego diseñadores de UX que nunca usan nada más que resoluciones HD.

Entonces, si obtienen más bondad debido a más exposición, probablemente se lo merecen. Por lo general, están en el extremo de recibir más a menudo que el buen extremo receptor.

A menudo parece haber la idea de que un programador de GUI está en la parte inferior de la cadena de programadores. ¿Qué tan difícil puede ser arrastrar y soltar un botón en VS a un formulario? ¿Qué, te llevará una semana programar eso? Está dibujando algunas barras. Así que no me sorprende ver la idea de que los programadores de GUI, siendo los dragings de botones tal como son, también deben escribir un código horrible.

La programación GUI tiene algunos desafíos únicos. Múltiple lectura para mantener la GUI activa mientras se carga los datos. Esto conduce a un código seguro y adecuado. El rendimiento es muy importante. A nadie le gusta esperar dos minutos hasta que vuelvan a obtener el control de la aplicación. La reutilización también se convierte en un gran problema. Si tiene que escribir diez pantallas similares, será mejor que estructure bien su código. Esto lleva a un mejor código. Y, por supuesto, crear una buena GUI es un desafío en sí mismo.

Pero para algunas personas solo arrastrará un botón a su aplicación. Al igual que para algunas personas, la lógica comercial no es más que "analizar un mensaje y ponerlo en el DB".

Creo que es obvio que lo hacen. Quizás las casas de desarrollo de primer nivel están exentas, pero la mayoría de las otras no.

Cuando su gerente le pregunta qué ha hecho durante el último mes, es fácil mostrar una GUI genial. Es difícil mostrar una API genial. Muy duro. La frescura de la API solo es evidente a través del uso real: no se puede apreciar de un vistazo.

Puede salirse con la suya con todo tipo de piratas informáticos y atajos en los sistemas internos. Al tratar con la GUI no tienes esa libertad. Su API interna puede tener una inconsistencia y solo espera que los codificadores lo enfrenten porque es demasiado difícil de arreglar. No puede intentar y hacer que sus clientes hagan lo mismo. Entonces, en cierto sentido, las personas que tienen que lidiar con los componentes visibles del usuario tienen que seguir un estándar más alto.

Voy a decir que sí, por una simple razón: el iPhone. Todos los que he hablado piensan que es fantástico debido a la interfaz resada, pero solo puedo imaginar el trabajo debajo para hacer que todo sea posible.

Depende de la audiencia. Trabajo con muchos analistas financieros y su idea de un buen diseño de GUI es uno que tiene tantos campos como sea posible en una forma. En serio, estoy hablando de 75 - 100. Son adictos a los datos que siempre quieren más. Recientemente mejoré el rendimiento en algunos procedimientos almacenados que podrían tardar 45 segundos en cargarse (calcule los promedios ponderados desde el principio del tiempo). Lo obtuve hasta 30 segundos; Estoy pensando wow, corte un tercio del tiempo; Debería ser una línea de pedido en mi currículum. Nadie se dio cuenta. Seguí trabajando en ello y lo consiguió a 15-20. Cambio notable. Todos estaban muy felices. Todavía creo que la GUI es una abominación y si sacamos esta basura inútil, se cargaría en 2 segundos, pero cuando hay 15 cuadros de texto de múltiples líneas diferentes (usted sabe los que tienen toda la capacidad de formación con la configuración de caracteres máximos .), es desesperado.

Entonces, si desea que los usuarios realmente lo amen, recuerde que la mejor interfaz de usuario no es ninguna interfaz (desearía recordar quién dijo eso). Después de querer ver todos estos datos, mis analistas se han dado cuenta de que son los que hacen toda la entrada de datos: el horror.

Probar partes de la UI de la aplicación es una pesadilla.

Todas las personas que se sienten competentes para dar un consejo o establecer una demanda de cómo debe hacerlo.

Después de que el sistema funciona bien, más tarde, incluso si alguien quizás recuerde accidentalmente quién es la virtud en él, nadie recordará quién hizo qué.

Pero si se verá algún error (alguno Siempre sucede), el primer hombre en ser condenado será el programador GUI, ¡el usuario simplemente nunca había visto a los demás!

Licenciado bajo: CC-BY-SA con atribución
scroll top