miércoles, 9 de marzo de 2011

¿Que está pasando con la calidad en la programación?

La calidad en la programación es muchas veces intangible para el cliente, este último suele preocuparse de que funcione en su monitor, con su navegador y muchas veces por desconocimiento sólo atenderá a la capa de presentación, la mas visible, ni sabe como va una conexión a la base de datos, si existe seguridad en el código y en la manera en la que entran los datos en la BBDD o si dentro de un año querrá ampliar algun aspecto a añadir alguna funcionalidad como incide directamente en el código. Si nos ponemos a analizarlo hay muchas maneras de desarrollar un proyecto, con sus baremos y su trabajo traducido en tiempo.

este trabajo se puede hacer de muchas maneras, como todos los trabajos, rápido y mal (a menos que se tenga un equipo de trabajo lo suficientemente amplio y coordinado como para desarrollarlo en condiciones, lo que se traduce en la necesidad de mas capital para tener a esa gente trabajando en exclusiva para ti), o lento y seguro.

Hay muchas cuestiones que se pueden pasar por alto para agilizar el trabajo, como evitarte realizar los validadores pertinentes en javascript para el cliente y sus análogos en php para la seguridad en servidor, saltarte los protocolos adecuados para evitar el SQLinjection o ataques de fuerza bruta en areas reservadas, haciendo golosinas para el que usa sus conocimientos para "el lado oscuro de la fuerza", realizar maquetaciones que practicamente sólo se vean bien en el monitor del cliente y con su navegador, codificar diseños rapidamente llenos de fallos y que no siguen el estándar W3C para tardar lo mínimo en hacerlos o programar de tal manera que el mantenimiento sea infernal y la posibilidad de añadir nuevas funcionalidades sin tener que retocar todo el código una utopía. El cliente, hasta la hora de la verdad no se enterará de nada y por otro lado muchas veces no quiere saber nada del asunto, tan sólo busca lo mas económico en el menor tiempo posible y con el mínimo esfuerzo por su parte.

La cuestión es que un programador, ya sea por falta de ética o de conocimientos, comienza realizando los presupuestos sin tener en cuenta estas cuestiones, mientras antes acabe antes cobrará y podrá hacer mas trabajos y por otro lado ganará en cualquier competición de precios con un proyecto medio decente. Cuando uno se quiere dar cuenta todo el mercado está igual y se le acaban uniendo el resto, hartos de que les echen para atras presupuestos por encontrar uno mas barato, poco a poco el hambre va haciendo que la ética y las buenas prácticas se vayan perdiendo en favor de esta voragine de ganar dinero en poco tiempo haciendo el trabajo de cualquier manera. Total el cliente no puede ni quiere apreciar la calidad de un trabajo bien hecho. No nos engañemos todos tenemos la culpa, pero habrá que poner una solucion o convertiremos internet en un sitio feo e inseguro. Quizás sea el momento de bajarnos del carro, enseñar que la calidad tiene un precio y a los clientes "desanalfabetizarse" y poner mas atención, no vaya a ser que lo barato salga caro al final...

jueves, 27 de enero de 2011

¿Qué tiene que tener una web para triunfar?

Es quizás la pregunta del millon que todos se hacen. Comentándolo con un amigo periodista me hablaba de redes sociales, web 2.0, conectividad, publicidad viral... en resumidas cuentas comunicación y no va desencaminado, aunque eso para mí no es "todo el pastel", sólo una parte.

Algunos clientes te piden tecnologías en concreto como Ruby On Rails, Flash o Ajax, normalmente si se ve que lo que necesita no se corresponde con la tecnología en la que quiere que se haga sigue una pregunta por mi parte:  "¿para qué necesita esa tecnología con los requerimientos que ha pedido?", normalmente ante la imposibilidad de justificarlo suelen confesar que hablando con amigos u otros contactos de su profesión, estos le han comentado lo buena que era su página porque estaba hecha con tal tecnología o cual... Estos si van un poco desencaminados pues la tecnología es un medio para alcanzar un fin, no todas son aconsejables en todos los casos y por supuesto el uso de una tecnología u otra no asegura visitas en una web, es algo que es invisible para el usuario. Está claro que la página debe funcionar de la mejor manera posible pero meter una tecnología con calzador que quizás no necesiten no ayuda a este fin.

Entonces, ¿qué tiene que tener una web para triunfar?

En mi opinión cuatro cosas:

-Un buen posicionamiento en los motores de busqueda: sin esto por muy buena que sea tu página pasará inadvertida ante tanta información en internet, además si tienes capital para invertir podrías probar alguna de las campañas de publicidad en internet, como Adwords, Facebook.... La primera parte es conseguir que el usuario se entere de que tu página existe.

-Un aspecto gráfico atractivo pero sin descuidar la funcionalidad. Una vez que el usuario ha clickeado en el enlace a tu página "gráficamente atractiva", pueden ocurrir tres cosas: que no funcione a la primera (con lo cual probará otro enlace en el buscador y tu página pasará inadvertida), que cargue muy lento,(la carga puede arruinar la posibilidad de que el usuario vea la página web por muy atractiva que sea), y finalmente que funcione, ¿de qué te vale tener una obra de arte en forma de web si nadie la ve? Y sobre todo ¿De que te vale invertir todo en el aspecto gráfico si despues no dedicas un mínimo al hosting o la programación? A mi me gusta comparar esta dualidad con tarjetas de visita. La máquina que las hace (el hosting) debe ser capaz de proveer en todo momento las tarjetas necesarias para que puedas darle a todos tus clientes potenciales una, cada vez que esta falle estarás perdiendo clientes, no tiene sentido ahorrar en la máquina pues por muy atractiva que resulte tu tarjeta si no tienes la posibilidad de que el cliente la vea no te vale para nada, además si contratas una máquina muy barata probablemente sea porque es muy vieja, y estará limitada. Sobre todo no escatimes en el sueldo de los operarios de las máquinas, no contrates a cualquiera para que se encargue de velar por el funcionamiento de tu máquina o hacerle esos rápidos cambios que necesitas en tu tarjeta de manera efectiva, pues de qué te sirve ahorrar un poco en costes si esto significa ingresar menos de lo que se espera con esta iniciativa.

La tarjeta en si, debe ser atractiva esta claro, pero ¿imaginan una tarjeta en 3D hecha en cartón piedra con muchos colores?. Muy bonita si señor, pero ¿le cabe al cliente en la cartera? y sobre todo, ¿entre tanto detalle esta claro el mensaje que quieres trasmitir al cliente? Si no cumple su función, no vale por muy bonita que sea, en este campo el arte es un medio, no un fin y sino se utiliza con la medida adecuada no producirá resultados...

-Contenidos interesantes, dinámicos que hagan que el usuario quiera volver a entrar: en el caso de un negocio web esto se puede traducir a productos atractivos a precios competitivos. Hay que darle motivos al usuario para volver una y otra vez.

-Presencia en redes sociales: por un lado facilitan al usuario el recordar tu página, tienes una manera de comunicarte directamente con el para ofrecerle tus servicios, por otro lado usadas de manera inteligente pueden llevar a tu empresa a exitosas campañas de publicidad viral con coste nulo o mínimo.

Se podrían añadir mas cosas o matizar lo existente, no obstante es sólo mi opinión,escrita con el objetivo de poder aclarar un poco a todos esos potenciales clientes que pretenden ahorrar costes en cosas que no comprenden bien y por la tanto ven "innecesarias".  No se engañen, todo es importante y juega su papel en la fórmula del exito de una web...

¿Necesito un gestor de contenidos?

Cada vez está mas de moda utilizar gestores de contenidos. Te ahorran tiempo de trabajo, hablando mal y pronto los realizas a base de insertar los módulos que necesitas y el código en una interfaz gráfica relativamente sencilla, le pones una plantilla y listo. Otra página web y otro cliente satisfecho. Para colmo antes debías saber php, mysql,  html, javascript y css para hacer una cosa así, ahora con un cursillo de gestor de contenidos y otro básico de html, lo tienes hecho y ya si encima sabes algo de css estas "hecho un máquina". Mucha gente empieza a vender desarrollos en gestores de contenidos por poco dinero, llegando a competir incluso con desarrollos hechos a medida a la hora de pedir una empresa un presupuesto para llevar su actividad a internet.

¿Realmente son la solución final en todos los casos? No, habría que estudiar el caso concreto. Si hablamos de páginas de relativa sencillez con contenidos estáticos,  que con un menú moderno y potente en ajax y un diseño en condiciones lo hacen, seguramente no necesitaremos tanta parafernalia alrededor, hay una máxima que me enseñaron mientras estudiaba la carrera y que se me quedó grabada a fuego en el cerebro: "Mientras mas complejo es un sistema mas posibilidades de fallo tiene". Así aunque desde el punto de vista del desarrollador (y mas si no tiene los conocimientos necesarios para hacerlo con similar calidad pero por su cuenta) es cómodo, al cliente le estas vendiendo algo mucho mas complejo de lo que el requiere.

Otro aspecto interesante de los gestores de contenidos son los módulos, con estos se pueden añadir funcionalidades, y son terriblemente útiles siempre y cuando se encuentre uno que haga lo que queremos exactamente. Para el cliente no exigente le pueden ir bien, es él el que se "adapta" al módulo existente, pero el cliente exigente  puede no encontrar lo que quiere exactamente. Aquí es donde empieza a jugar un papel importante el desarrollador, pues si no es capaz de diseñar e integrar un módulo acorde a las especificaciones del cliente de nada le sirve tener un gestor de contenidos. Por otro lado habría que ver lo que quiere el cliente, si me cuesta menos integrarlo en código hecho por mi  o en un gestor de contenidos de proposito general, seguramente la respuesta sea lo primero, es más fácil tocar código que uno ha realizado y sabe como va, que interpretar el código de terceros.

Si nos centramos en el aspecto gráfico los gestores tienen plantillas, escoges una la instalas y tienes un buen punto de partida para el aspecto gráfico. Pero si no se realiza un trabajo posterior, le estas vendiendo al cliente un trabajo gráfico que no es tal, y que tiene sus consecuencias en que la página que haces sea igual o muy parecida a otras realizadas con la misma plantilla.

¿Para quién valen entonces los gestores? Para muchos casos pero no para todos. Por ejemplo, son terriblemente útiles cuando el cliente tiene necesidad de actualizar los contenidos constantemente,  no necesita un desarrollo que se salga mucho de "lo normal" y sus necesidades funcionales encuentran solución en los módulos existentes. En estas condiciones un gestor de contenidos puede agilizar el tiempo que se tarda en hacer una web y ahorrar dinero al cliente.

¿A quién no recomiendo que los use? A clientes con necesidades pequeñas que van a utilizar un 10% o menos de las funcionalidades que les ofrece el gestor y sobre todo a grandes empresas, que quieren basar una parte importante de su actividad comercial en Internet, que tienen necesidades muy particulares o quieren colocar ideas innovadoras que se salen de los standares. Necesitan un mantenimiento "fuerte" (24-7), que el encargado de este mantenimiento esté en condiciones de arreglar los fallos rapidamente y conozca perfectamente todos los detalles del código, pues tan fundamental como estar bien posicionado es que tu web funcione cuando la visite el cliente. No digo que quien está detrás de un gestor de contenidos no sea capaz de ofrecer esto a una gran empresa, pero ya estaríamos hablando de un desarrollo "híbrido" en el que el gestor de contenidos solo es el principio de mucho trabajo de programación y mucho tiempo de estudio para dominar "las tripas" del gestor, no se engañen, ese perfil no corresponde a un chaval con un curso de Joomla y otro de html que te cobra 4 duros por hacerte la web, y si va a basar su actividad comercial en internet lo barato le puede salir caro o peor, inútil...

lunes, 24 de enero de 2011

Subcontratas, becarios, especulación y mitos sobre algunas empresas

El cliente tiende a pensar que encargar su web a una empresa es sinónimo de calidad, que todo el dinero que invierta en la página  va a ir destinado al trabajo que supone la elaboración de la misma. Pues bien, yo pienso que no se puede tener seguridad de ello, me explico:

La primera pregunta que uno debe hacerse es, ¿realmente la empresa a la que estoy contratando tiene sus propios trabajadores o simplemente van a basar su porcentaje de ganancias sobre un presupuesto que a su vez le piden a alguien?. Si le están pidiendo el presupuesto a un tercero, que quizas a su vez subcontrate a uno que a quizás subcontrate...¿quién hace su trabajo?.

Y sobre todo, ¿la empresa con la que estamos tratando velará por nuestros intereses o simplemente buscará el precio más barato para obtener el mayor beneficio?. Seguramente no vele por sus intereses, al que especula lo que le interesa es el rédito de su negocio, sabrá lo justo del negocio para parecer que sabe, poder vender la moto y estará interesado en obtener el máximo beneficio con el mínimo trabajo. Sin la cualificación para saber si un trabajo tiene calidad y con ese afan de lucro como único motor, (dado que el resto de aspectos del entorno le son ajenos) no se consigue un producto de calidad para el cliente.

Supongamos que no, que realmente tiene sus trabajadores, ¿realmente los trabajadores estarán cualificados?
Pues no necesariamente. Puede que su plantilla esté formada casi toda por becarios, chavales recien salidos del horno con muchos conocimientos teóricos y poca práctica, un maravilloso fetiche del empresario vil en estos tiempos. La formula buena para mi es: agregue uno o dos becarios a su grupo de trabajo, asigneles tutor y vaya dándoles responsabilidades cada vez mayores, en unos meses tendrá un trabajador que sabe de que va su trabajo antes de firmar el contrato, del que ya sabe si encaja bien en su grupo de trabajo, conoce si nivel de adaptación al entorno de su empresa, que ha crecido con usted y encima en el proceso le ha quitado pequeñas tareas de encima por un coste mínimo.

Pero la avaricia rompe el saco, resolver tareas con coste mínimo? El "autoengaño" al que llega el empresario es que si sustituye a su plantilla por becarios maximizará beneficio, ¡cómo si fuera lo mismo!. Total, te ahorras un dinero en seguridad social, en sueldo, en vacaciones, si te lo montas bien tendrás al chaval motivado bajo la promesa de un trabajo "digno" al terminar las "prácticas", y le podrás pedir horas extras, convencer de que aquí se viene a currar y que todo el aprendizaje que le tendrían que enseñar debe hacerlo el sólo en su casa en sus horas libres para demostrar que pueden autoaprender. Si prometes menos puestos de trabajo que becarios tienes, encima te aseguras que trabajen mas compitiendo por un "ficticio" puesto de trabajo. Terminas la fórmula con algún "jefecillo" que sea trabajador cualificado con algunos años de experiencia y que te controle la "clase" para que no se desmanden y entreguen los proyectos a tiempo y beneficio asegurado, desde luego no parece que el dinero que invierte el cliente acabe gastado como debiera.
 
Este panorama solo nos expone los peores casos, igual que malas hay buenas empresas con muy buenos grupos de trabajo. Profesionales con motivación, que sacan productos de calidad  e incluso disfrutan con su trabajo. O sencillamente gente que se nutre de contratar a otras empresas, pero que ganan su beneficio limpiamente en base a poseer unos amplios conocimiento generales que usan para saber valorar el trabajo de estas últimas y conseguir la máxima calidad posible para el cliente. Es sólo, que hay que tener cuidado donde se invierte el dinero...