martes, 19 de julio de 2011

¿Es buena la complejidad?

Siguiendo una conversación en Twitter de esta mañana, y a riesgo de polemizar un poco más, me tomo la libertad de expresar mi humilde opinión al respecto. No tiene por qué ser una opinión mejor que la del resto, pero tampoco tiene por qué ser peor, es simplemente una opinión más.

Para introduciros en el asunto os resumo un poco la conversación de esta mañana. Aparentemente alguien se quejaba de la complejidad del proceso de instalación de SQL Server y yo apuntaba que en ocasiones los procesos de instalación de aplicaciones debían ser incluso más complejos para evitar problemas futuros causados por instalaciones realizadas por profesional no cualificado para la tarea. La conversación derivó en opiniones relativas a que la instalación de SQL Server en realidad no era tan compleja y, por otro lado, en que justificar la complejidad era fácil, no merecía la pena, y hacía referencia a mentalidades del pasado. A continuación os expongo los motivos que tengo yo para pensar de la manera que pienso.

Primero, decir a los que no me conozcan que soy arquitecto de software especializado en .NET y sobretodo en SharePoint. Mi posición está claramente relacionada con el mundo del desarrollo y mis conocimientos de sistemas no son demasiado avanzados. No obstante, y debido a las particularidades del sector del desarrollo de software en España y debido las particularidades del desarrollo sobre la plataforma SharePoint tengo conocimientos básicos sobre Windows Server (especialmente en todo lo relacionado a los roles de servidor de aplicaciones y a IIS), SQL Server, Exchange Server, TMG, ForeFront, etc. También tengo conocimientos básicos de hardware (sé la diferencia entre RAM y HD, y conozco lo que tiene que tener un equipo para permitir virtualización) pero se me escapan conceptos que seguramente no son altamente avanzados como RAID 0, 1 o 5.

Dicho esto, tengo que decir que en unas pocas horas tengo montado un entorno con varias máquinas virtuales y con todos los componentes mencionados anteriormente instalados y funcionando. Eso significa, en mi opinión, que los procesos de instalación no son excesivamente complejos. Además, si por casualidad tengo que instalar alguna de estas piezas en producción, sé que dispongo de documentación suficiente en Technet (para productos Microsoft) como para hacerlo de manera más o menos adecuada.

Ahora bien, ¿cuál era la razón de mi tweet? Si yo soy capaz de instalar un SQL Server o un SharePoint siguiendo el asistente cualquier persona es capaz de hacerlo. Con cualquier persona no me refiero a “idiotas” (entre comillas que aparentemente no es lo mismo que idiotas) sino a personas que no tienen los conocimientos necesarios para desarrollar la tarea. Pero resulta que estamos en España y aquí, si puedo gastarme menos dinero en hacer una tarea, lo haré. Ahora no entraré en si es el mercado, si es nuestro caracter o si es una mezcla de ambos, pero es un hecho que si se plantea un proyecto de implantación de un producto, el 90% de los casos se lo lleva el que pone un precio hora más barato. Señores, ¿alguien sabe el coste de una persona con los conocimientos necesarios para instalar SharePoint, Exchange, SQL Server o TMG? ¿Alguien conoce una persona que tenga todas esas capacidades con un coste inferior a 20€/h? Que me lo diga que le doblo el sueldo.

Y os preguntaréis qué me importa a mí todo esto. Pues en realidad nada, simplemente expresaba mi opinión. De hecho, mientras las cosas sigan como están seguiré teniendo trabajo arreglando las implantaciones de SharePoint que han sido realizadas siguiendo el asistente. Lo único que me preocupa es que esta práctica siga haciendo daño al nombre de SharePoint, que está lejos de ser una plataforma perfecta (por eso sigo y seguiré teniendo trabajo) pero está aún más lejos de ser la basura que mucha gente piensa que es. Y quien piense que es una basura, que me presente una alternativa y la discutiré con mucho placer.

Y no penséis que estoy planteando proteger mi territorio para que nadie lo pise. Al contrario, fijaos que según lo que comento yo no debería tener “el carné” para instalar SQL Server, por ejemplo. Si pretendemos que traten la ingeniería de software como cualquier otra ingeniería tenemos que plantearnos que tiene que haber especialistas para cada una de las materias. Y ojo, tampoco estoy planteando que para instalar un SQL Server tengas que compilar un kernel. Contra más fácil sea hacer algo mayor será la productividad que es lo que interesa. Lo que yo planteo es que el proceso de instalación podría incorporar alguna característica que impidiera que el sistema funcione adecuadamente hasta que se cumplan ciertos requisitos, de la misma manera que se cambió la política con Windows Server donde por defecto todo está cerrado hasta que alguien va y lo abre.

Ahí queda mi opinión… espero las vuestras para ver si aprendo algo, aunque seguro que ninguno hará cambiar la opinión del otro si no es con cerveza. Con mucha cerveza…

2 comentarios:

Alberto Diaz dijo...

Totalmente de acuerdo, el problema no es de la complejidad de instalación del producto, sino de la capacidad que tiene el técnico de instalarlo o configurarlo correctamente.

Personalemente, creo que es más importante configurarlo bien que instalarlo, con lo que los asistentes de instalación no bien mal para adelantar trabajo.

Por ejemplo, instalar un SharePoint no es complicado, configurarlo supone tener algunos conocimientos sobre el producto, pero también es necesario tener conocimientos de SQL Server para poder tener un buen rendimiento, ya que SharePoint hace un uso intensivo de este.

Remen dijo...

Grandisimo post maestro
Estoy de acuerdo contigo, pero solo un apunte.
Los de Bilbao hacemos todo eso que dices fumandonos un cigarro, tomando un kalimotxo y cantando desde santurce a bilbao en falsete ;-)