¿Por qué algunos programadores odian la parte UI del desarrollo? [cerrado]


54

Muchos programadores que he conocido siempre dicen que "Él no es un tipo de interfaz de usuario". El hecho es que el desarrollo hoy en día, ya sea web, Windows, Linux, OSX o cualquier otro tipo de desarrollo, ahora comprende software con una interfaz de usuario atractiva. ¿Por qué a tantos desarrolladores parece no gustarles el trabajo de IU?


54
porque no son diseñadores :)
Mahmoud Hossam

17
El desarrollo no comprende tener una interfaz de usuario atractiva, se trata de tener un producto vendible . Cualquiera puede hacer que algo se vea bien, pocos pueden hacerlo funcionar.
Josh K

58
@JoshK: su punto principal es perfecto, pero no estoy de acuerdo con que "cualquiera puede hacer que algo se vea bien". Los desarrolladores nos irritamos con las personas que subestiman nuestra profesión ("es solo escribir, ¿qué tan difícil puede ser?"), Así que no hagamos lo mismo con otras disciplinas.
Steve S

20
No olvidemos que verse bien no es lo más importante de una interfaz de usuario. Ha habido numerosas IU atractivas que fueron realmente difíciles de usar. Prefiero que un diseñador gráfico no diseñe una interfaz de usuario, a menos que el diseñador tenga algunos antecedentes de factores humanos.
David Thornley

17
@ Josh K: Habiendo leído "El diseño de las cosas cotidianas", creo que es al revés. Hacer que algo funcione es la parte fácil. Hacer que funcione tan bien, los usuarios lo entenderán intuitivamente, les gustará y querrán usarlo nuevamente, es mucho más difícil.
nikie

Respuestas:


102

Tampoco soy una persona de UI. Bueno, hago IU en mis propios proyectos, pero en el trabajo no tengo nada que ver con eso: mi trabajo está en las entrañas de la aplicación, no en el front-end.

Más allá de eso, creo que es más aburrimiento que odio. Diseñar la interfaz de usuario es la parte difícil y desafiante. La implementación es principalmente un trabajo duro. Hay muy poco desafío o innovación en cómo se puede implementar una interfaz de usuario, y solo hay tantas veces que se puede poner una casilla de verificación en la pantalla antes de volverse un poco mental. Y eso ni siquiera toca tocar pasar horas alineando píxeles "solo así".


63
+1 por "alinear pixeles 'solo así'", odio eso. Es 99.99999% perfecto, pero el usuario quiere que el borde alrededor de la caja, que no debería estar allí en primer lugar, tenga 2 píxeles de ancho, no 1, y un tono de azul "más claro", pero no el tono claro que usted Tuve 2 revisiones hace más oscuro que eso. Y así sucesivamente ... Y eso es lo que estoy pasando ahora. La aplicación funciona al 100%, pero recibo solicitudes tediosas para cambiar la carcasa de esta información sobre herramientas y eliminar el período ... esto es en lo que se centran mis "probadores" ... en absoluto en la funcionalidad.
CaffGeek

3
@Robert Harvey, es una lucha diaria. Ojalá tuviéramos una o dos personas dedicadas a la interfaz de usuario aquí ... también ayudaría a resolver nuestra incapacidad para estandarizar nuestra interfaz de usuario en nuestras aplicaciones principales.
CaffGeek

23
+1 por notar que es mucho más interesante diseñar una GUI que construirla.
jprete

55
La implementación nunca debe ser un trabajo duro. Si es así, tienes una arquitectura mal factorizada o un proceso ineficiente. Somos programadores, si estamos haciendo algo que una máquina podría hacer, deberíamos automatizarlo .
munificente

10
@munificent Creo que la automatización es un gran objetivo, pero aún no he visto un diseño de interfaz de usuario automatizado que no necesitara ajustes para adaptarse a la visión del diseñador o la preferencia del cliente. Y luego hay limitaciones técnicas: si está utilizando WinForms, por ejemplo, sus opciones de diseño automático serán limitadas. Creo que las aplicaciones web funcionan mejor que las aplicaciones de escritorio, pero a menos que podamos crear telepáticamente un diseño de interfaz de usuario y conectarlo, creo que todavía habrá una gran cantidad de trabajo pesado involucrado. Espero que se demuestre que estoy equivocado en este punto en el futuro. :)
Adam Lear

55

Hacer una buena interfaz de usuario implica muchas habilidades diferentes que escribir un código de back-end.

Los requisitos de back-end generalmente se pueden especificar como un cuadro negro, x entra y se espera que y salga. Hacer que funcione implica implementar la lógica y puede probar mediante programación si funciona o no.

Para hacer una buena interfaz de usuario, debe tener en cuenta la usabilidad, el diseño visual, el diseño y cosas como los esquemas de color. Tener un poco de creatividad artística es una ventaja aquí, y muchos programadores no sienten que lo tengan. Para un cerebro lógico, la solución a un problema de IU puede parecer subjetiva, ya que no hay una respuesta correcta o no hay una manera fácil de validar que se hace 'correctamente'.

Creo que muchos programadores que no tienen mucha experiencia en la interfaz de usuario o no han investigado mucho al respecto no se dan cuenta de que hay reglas y ciencia detrás del buen diseño de la interfaz de usuario tanto desde una perspectiva de usabilidad como de diseño (por ejemplo, color teoría).

Por supuesto, algunos programadores no tienen un problema con este aspecto, pero lo odian porque muchas IU simplemente son aburridas para el código. Pueden consistir en una gran cantidad de trabajo repetitivo, como páginas de formularios para páginas de administración donde solo necesitan ser funcionales y no existe un desafío de diseño.


3
Escribir código de back-end también implica muchas habilidades diferentes (a diferencia de lo que parece implicar su primer comentario), es solo un conjunto diferente de habilidades.
Matthieu M.

2
@Matthieu lo hace, y nunca dije que no. Lo que quise decir es que la codificación de la interfaz de usuario implica muchas habilidades diferentes que la codificación de fondo. Por favor, no piensen que estaba menospreciando la codificación de back-end, es lo que más hago para vivir :)
Alb

+1: Esto es difícil, y el enfoque normal para el diseño de software simplemente no funciona para los gráficos. Si es feo, se queda feo.

18

Las personas simplemente tienen intereses diferentes. Algunos programadores están más interesados ​​en estructuras de datos y algoritmos, algunos en arquitectura, algunos en usabilidad y diseño de UI, o cualquier combinación de esos y otros nichos. Cada uno requiere diferentes habilidades y diferentes formas de pensar sobre un problema. Si le gustan los detalles básicos de la programación, tal vez no le importe tanto cómo piensa el usuario, o viceversa.

Personalmente, caigo en el último campo: prefiero diseñar una interfaz de usuario que un algoritmo complejo. Es justo el tipo de cosas que me parecen interesantes.


15

Si un diseño de interfaz de usuario dado es bueno o malo es bastante subjetivo , lo que creo que los programadores en general consideran poco atractivo. Unas décadas de esfuerzo para cuantificar y calificar buenas técnicas de interfaz de usuario han ayudado a crear algunas reglas amplias que uno puede aplicar, pero la mayoría de las veces para determinar realmente si una interfaz de usuario es buena requiere muchas pruebas A / B y otra observación del usuario técnicas

Si bien ciertamente hay subjetividad en la programación, comúnmente puede señalar alguna forma de razones objetivas de por qué una opción es mejor que otra: velocidad de ejecución, requisitos de memoria, flexibilidad para satisfacer las posibles necesidades futuras, prácticas que han demostrado ser más efectivas. el pasado, etc. Defender una elección de UI dada, y por lo tanto, incluso hacer la elección en sí misma, generalmente se degrada a "Me gusta", que es un argumento completamente diferente para apoyar.


2
En el acto, lo "subjetivo" es molesto. Lleva a dos personas y tienen opiniones muy diferentes de lo que es una buena interfaz de usuario. No puede probar un aspecto de GUI (no realmente). etc ...
Matthieu M.

13

Personalmente, no disfruto el desarrollo de UI porque no soy bueno en eso. Hay un ENORME elemento de la psicología del usuario que simplemente no soy bueno para entender. Creo que mi mayor problema es que no puedo ponerme en el lugar del usuario. No sé cómo hacer diseños intuitivos en gran medida porque no sé qué es intuitivo para el usuario, ni sé cómo hacer que las cosas se vean bonitas.

No creo necesariamente que algún programador odie diseñar interfaces de usuario tanto como odian hacer cosas en las que no son buenos. Simplemente sucede que hay muchos desarrolladores que no son buenos en el desarrollo de UI.


+1 - "Los programadores odian hacer cosas en las que no son buenos". Tan verdadero. Cuando lo haces en un proyecto personal, es práctica y puede ser divertido, pero cuando lo haces por tu trabajo, es desempeño, y si no tienes las habilidades, es estresante.
lunchmeat317

11

El problema con el diseño de la interfaz de usuario es que todos tienen una opinión ... Y no hay una respuesta correcta o incorrecta. Los desarrolladores, por otro lado, aman el blanco y negro y la lógica. En empresas de cualquier tamaño, todos estarán de acuerdo 1+1=2, pero pregunte qué fuente hace que sea más fácil de leer (Comic Sans Obviously)... prepárese para la inundación. Diez mil respuestas diferentes y todos tienen razón, porque todos son diferentes.


66
Oh Dios, Comic Sans ...
Maxpm

+1 para lógica en blanco y negro. Realmente odio tomar decisiones sobre cosas que no tienen respuestas correctas o incorrectas (diseñar la interfaz de usuario, decidir dónde vivir, qué comer para cenar, etc. jajaja).
Dan

7

Como desarrollador que realmente disfruta trabajando en la interfaz de usuario (específicamente, he hecho mi parte del diseño web), aprecio cuando alguien que no tiene el conjunto de habilidades se mantiene al margen.

El desarrollo requiere la capacidad de retener una gran cantidad de datos en su mente, y manejar muchos de una vez. El diseño de la interfaz de usuario requiere la capacidad de reducirlo al mínimo posible, sin sacrificar su integridad. Me encanta el desafío de eso; y me estremezco cuando veo que alguien crea una interfaz de usuario que es un wall-o-data inmanejable en la pantalla. (También soy un geek total cuando se trata de diseño, teoría del color, etc.)

Por otro lado, odio las cosas de bajo nivel. Nunca tocaré el código de los controladores, los núcleos o cualquier otra cosa como esa: estremecimiento: se lo dejaré a los "chicos sin interfaz de usuario", y estoy feliz de que alguien más disfrute hacerlo, o de lo contrario nunca se haría.


6

Creo que depende de que la mayoría de los programadores usen la parte izquierda de su cerebro.

Una buena fuente para leer más sobre este tema.

ingrese la descripción de la imagen aquí


66
Puede disfrutar el libro, Pragmatic Thinking and Learning: Refactor Your Wetware , que ofrece una nueva forma de pensar sobre las diferencias cerebrales izquierda / derecha. De hecho, los renombra en modo lineal y en modo enriquecido, y es una lectura realmente genial.
CaffGeek

@ Chad Gracias Chad! ¡Lo consideraré!
Amir Rezaei

+1 por mencionar esto. El desarrollo de aplicaciones backend es altamente analítico, mientras que el trabajo frontend está mucho más creativo. A algunas personas les gustan ambos, pero a muchos les gusta apegarse a sus respectivos nichos.
bunglestink

Solo una pequeña información adicional para aquellos que puedan estar interesados: en realidad no está 100% claro qué hemisferio juega el papel más importante en la determinación de la habilidad matemática .
Dan Tao

No estoy de acuerdo con que la "música" caiga bajo las funciones del cerebro derecho, especialmente porque está agrupada con el "arte". La música es extremadamente matemática y lógica, mientras que el arte es todo lo contrario (quizás con la excepción del pixel art, donde las limitaciones técnicas reintroducen la lógica en el "arte").
Dan

6

El desarrollo de la interfaz de usuario se vuelve complejo porque recibe demasiada información de las personas equivocadas. Todos son expertos en diseño gráfico. No hay dónde encontrarlos cuando quieres saber la fórmula de algo.

No saben lo que quieren, pero lo saben cuando lo ven, no tienen gusto, y aquellos con el poder de decisión no usarán la aplicación de todos modos, pero están seguros de que debería ser verde. Sigue pautas para una buena interfaz de usuario, como limitar la cantidad de campos en un formulario y recibe una solicitud para agregar 50 campos más porque 'los necesitan' a todos y tenerlos en pestañas separadas es demasiado esfuerzo. Ya sabes, lo mismo que Excel. Campesinos!

No puedes inventar esto. Me senté en una reunión donde las dos personas principales en el departamento de contabilidad (aproximadamente 500,000 / año de salario) para un gran bufete de abogados pasaron media hora discutiendo sobre una etiqueta en una página web de facturación utilizada por los abogados. Se suponía que esto facilitaría la comprensión de los abogados. ¿Por qué no solo preguntar a los abogados? Demasiado fácil. Por lo tanto, el departamento de TI recibe 50 llamadas telefónicas de abogados que desean saber el "monto de facturación neto residual" de WTF y por qué está en su formulario de ingreso de tiempo.


5

A algunas personas les gusta el brócoli, a otras no. Es posible que tengamos que comerlo, pero no tenemos que gustarnos y no lo disfrutaremos cuando lo comamos. No solo eso, vamos a evitar tener que comerlo tanto como podamos.

Hay MUCHAS otras cosas para codificar además de la interfaz de usuario. Servicios web, servicios de Windows, integrados (no una gran interfaz de usuario en un microondas), solo por nombrar algunos ejemplos.


99
La interfaz de usuario generalmente se acorta en un microondas, por lo que la mayoría de ellos apestan.
Robert Harvey

44
Lo que sucede con un microondas es que, cuando tienes uno bueno, con una buena interfaz de usuario, donde no necesitas un orden muy específico de los botones para realizar una tarea, ni siquiera piensas en ello. Pero cuando compra ese horno de microondas barato para el sótano, o lo que sea, se da cuenta de inmediato de lo horrible que es la interfaz de usuario. Tienes que memorizar órdenes precisas de presionar botones. ¿Elijo el nivel de potencia antes de tiempo? ¿O después? ¿Tengo que alcanzar el tiempo de cocción primero? etc, etc ... ¿Y cuándo necesitas leer las instrucciones ocultas dentro? UGH! Una buena interfaz de usuario debe ser "invisible" para el usuario.
CaffGeek

Terrible metáfora. Me encanta el brócoli pero odio diseñar la interfaz de usuario. ;)
Dan

4

Eso podría deberse a que, en algunos casos, las herramientas que están expresamente concebidas para ayudarlo a dibujar la interfaz de usuario chupan monos bebés muertos a través de una pajita.


4

Hay ciertas cosas en el desarrollo de UI que son difíciles de corregir.

El diseño es uno de ellos. He estado creando interfaces de usuario durante más de 15 años y todavía no tengo una solución decente para la gestión del diseño.

Otro es el enrutamiento de eventos: incluso con las arquitecturas MVP y las cosas ordenadas por los marcos, diría que las UI más complejas tienen problemas de enrutamiento de eventos, lo que podría descubrirse si alguno de los marcos de prueba podría abordarlos bien.


3

Sé que para mí solía odiar el desarrollo de la interfaz de usuario porque me pareció muy tedioso y lento, especialmente escribir código de diseño para posicionar las cosas de una forma o winow. Ahora, con herramientas de diseño de UI como Forms Designer en Visual Studio, casi lo disfruto . Otras razones para odiarlo que he escuchado de otros incluyen "es estúpido", "siempre cambia demasiado", "no es lo suficientemente desafiante", "es tedioso / aburrido".


44
¿Cómo responde al cuadrado con su nombre de usuario? :)
Robert Harvey

@Robert Harvey: ¡Bastante justo! El Diseñador de formularios es bueno, pero cuando comienza a ser elegante con los contenedores genéricos de la interfaz de usuario, comienza a ahogarse. O al menos VS2008 lo hizo. ¿Todavía no probé 2010, pero sospecho que puede tener problemas similares? De cualquier manera, el problema finalmente se resolvió (consulte mi primera publicación sobre SO). Hay otras cosas que también lo ahogan, pero elimina suficiente tedio que generalmente ahora disfruto del diseño / desarrollo de la interfaz de usuario.
FrustratedWithFormsDesigner

3

¿Por qué a todos los jugadores de ajedrez no les gusta diseñar tableros de ajedrez y las piezas con las que juegan?

No es extraño que a algunas personas no les guste eso ... es raro que esperes que debamos.


1
los jugadores de ajedrez no diseñan tableros y piezas de ajedrez porque esos diseños han sido estandarizados por más de un siglo por la Federación Internacional de Ajedrez (FIDE) y esos estándares han sido adoptados universalmente.
Jwenting

2

Me gusta trabajar en la interfaz de usuario. Eso no siempre fue cierto para mí, pero mi disfrute del trabajo de UI ha aumentado a medida que he mejorado en los últimos años. Sé que a algunos desarrolladores no se les debe permitir cerca de una hoja de estilo o una paleta de colores. Definitivamente es un conjunto de habilidades diferente, y no todos lo tienen.


2

No odio tanto el trabajo de interfaz de usuario como odio algunos marcos de interfaz de usuario. Por ejemplo, he estado programando .NET por más de 10 años. Los marcos para crear aplicaciones web son excelentes (ASP.NET WebForms y ASP.NET MVC). Pero los marcos para escribir aplicaciones de escritorio, bueno, no me gustan (WinForms y WPF).

Entonces, a este respecto, escribir aplicaciones GUI es más un aspecto del uso de frameworks que no me gustan.

Hay otro aspecto A menudo trabajo con aplicaciones de estilo "empresarial", es decir, aplicaciones donde una aplicación de escritorio necesita recibir datos de un servidor. En este caso, hay tantas capas de conversión de datos de un formato a otro que se vuelve realmente aburrido.

Por ejemplo, la aplicación recibe información a través de una serie de objetos DTO. La aplicación crea su propio modelo de representación de los datos (no reutiliza las mismas clases de dominio que se crearon en el servidor). Las clases de modelo son consumidas por un modelo de vista (en un patrón MVPM de WPF), que expone las propiedades en el modelo.

Esas son muchas veces que los mismos datos están representados por diferentes clases. Y eso se vuelve aburrido. Pero este es un problema específico de este tipo de aplicación de escritorio.

También hay desafíos interesantes en este tipo de aplicación, como cómo obtenemos cambios de un cliente para actualizarlos inmediatamente en otro cliente.


++ Sé a qué te refieres. Para el último punto sobre la propagación de actualizaciones entre clientes, utilizo el sondeo (generalmente 1 segundo), pero eso probablemente solo funciona para una base de datos bastante pequeña y un pequeño número de clientes.
Mike Dunlavey

2

No soy un gran admirador del desarrollo de UI por estos motivos:

  1. Como desarrollador, tiene menos libertad para crear: el cliente puede ver y opinar sobre cada pequeña faceta de la interfaz de usuario, a la que debe reaccionar. Recibirá solicitudes como: cambiar el color de esto; mueve ese botón allí; no importa, muévelo hacia atrás. El código de fondo rara vez es tan visible.

  2. La interfaz de usuario es más desordenada, mientras que el back-end es más "platónico". Si bien he visto feos desorden de código de fondo, creo que es más común que esté limpio (desde la perspectiva del código) que el código de la interfaz de usuario. Una interfaz de usuario puede tener un aspecto realmente limpio y estar bien diseñada para el usuario, pero como soy desarrollador y paso más tiempo en el código que en usarlo, me gusta mucho limpiar el código.

  3. Siento que la interfaz de usuario es más una "plomería" que el back-end, es decir, hay menos oportunidades para algoritmos inteligentes y realmente llevar tu cerebro al límite.


1

Hago tanto la interfaz de usuario (escritorio, no web) como las tripas internas.

La cantidad que me gusta o no me gusta depende de cuánto puedo hacer usando algo como un lenguaje específico de dominio (DSL).

En el dominio de UI, lo que estoy presentando a los usuarios y la complejidad de la información que obtengo de ellos es tal que me volvería loco si tuviera que usar herramientas típicas, como diseñadores de formularios, muchos controladores de eventos, MVC , todas esas cosas de "estado del arte". Afortunadamente, hace décadas descubrí que creo que es una mejor manera, que es hacer un DSL para ello, y trabajar en eso. Actualmente lo llamo cuadros de diálogo dinámicos, y se basa en una estructura de control que llamo ejecución diferencial . La buena noticia es que, para una funcionalidad dada, el código fuente es aproximadamente un orden de magnitud menor, lo que me permite poner mucha más funcionalidad en la interfaz de usuario. La mala noticia es que, por mucho que he tratado de enseñarlo, no he tenido mucha suerte transfiriendo la tecnología.

En el dominio sin interfaz de usuario, tomé una lección de una serie de productos que comenzaron como DSL utilizables desde la línea de comandos, en la que luego se injertó una interfaz de usuario. Eso le da al usuario experto algo donde puede pasar por alto la interfaz de usuario, al tiempo que le da al usuario ocasional algo que puede usar de manera informal. (Ejemplos: R, SPlus, Matlab, SAS, WinBugs). Por lo tanto, nuestro producto tiene un lenguaje de línea de comandos para expertos. Me encanta desarrollar tales cosas, con un analizador, generador de código, precompilador y motor de modelado en tiempo de ejecución. El esfuerzo gastado en eso es al menos una potencia de 10 menos que el esfuerzo gastado en la interfaz de usuario.

Una razón por la cual el esfuerzo de la interfaz de usuario es tan grande es que todavía hay mucho "pegamento" que no se puede hacer con un DSL: administrar cuadrículas de datos, todo tipo de formas de clasificar datos, todo lo que cae en la "grieta" bostezante entre la IU pura y el lenguaje subyacente.

Entonces su pregunta fue "¿Por qué algunos programadores odian la parte de desarrollo de la interfaz de usuario?". Solo lo odio por ese "pegamento" para el que no tengo un DSL.


1

Honestamente, encuentro que encontrar el mejor kit de herramientas de la GUI y luego aprender los entresijos de eso es un poco PITA ... sin mencionar que no aprendes mucho sobre la interfaz de usuario en la universidad y soy un novato, así que ... ya ..


1

Más allá de lo que ya se ha dicho (es un trabajo tedioso, aburrido y frustrante codificarlo y el diseño generalmente lo hace alguien que no tiene idea de qué problemas causan sus ideas para quienes intentan implementarlas), un factor importante es que usted tienes que trabajar con personas cuyas ideas sobre lo que deberías hacer cambian constantemente, mucho más de lo que lo hacen para el backend. Como resultado, estás disparando contra una especificación en movimiento aún más, y estas personas también tienden a ser quisquillosas. Literalmente, hice que las interfaces de usuario fallaran las pruebas porque un componente estaba a 1 píxel de la ubicación que la persona que lo probaba pensó que debería haber sido. ¿Funcionó? Si. ¿Se veía bien? Si. Pero comenzó a contar píxeles y algo estaba un solo píxel fuera de línea con el resto, por lo que lo envió de nuevo para su revisión.


1

Algunos puntos más:

1) El diseño de la interfaz de usuario puede ser más difícil de probar, asegúrese de que puede verificar si ese botón hace lo que debería, pero probar si es fácil de usar es más difícil. ¿Qué hay de probar si será utilizable con alguien con discapacidad?

2) Muchos programadores no están capacitados en ello y no saben mucho al respecto.


1

El hecho es que muchas herramientas UI / framework / API son malas, complejas, muy lejanas para ser intuitivas. Desarrollé con Win32 API en C / C ++, con javax.swing, CSS, etc. Desde entonces, odio tener que lidiar con el desarrollo de UI ... ¡Hasta el marco Qt!


1
¿Quieres decir que te quemaste en herramientas que ya no son de uso común (la mayoría de las personas no usarían Win32 para la programación de UI en estos días)? Lo siento, simplemente no considero que este sea un punto válido.
user16764

1

Como estudiante de CS, se le enseñará la estructura de datos, la base de datos, C ++ ... excepto la interfaz de usuario. Entonces no serás bueno desde el principio . Si no eres bueno en eso, lo odiarás.


Muchas universidades y colegios ofrecen cursos de diseño UX. A menudo como parte de su plan de estudios CS.
user16764

1

Después de haber trabajado en ambos lados de la moneda, es decir, el diseño de la interfaz de usuario y el código de back-end, descubrí que ambos lados de la moneda son básicamente lo mismo.

Los requisitos que difieren de lo que haces día a día no llegan todo el tiempo y ahora en la era donde todos los servicios giran en torno a CRUD, se vuelve aburrido.

De todos modos, la codificación de la interfaz permite una mejor interacción y dinamismos locos que básicamente atornillan una mano inexperta en el diseño de la interfaz. Personalmente aprendí el camino difícil en frontend y puedo decir cómodamente que diseñar frontend es mucho más interesante y desafiante.

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.