jueves, 17 de febrero de 2011

Sobre el estado del arte y otras penas en el desarrollo de software (I)


Después de algún tiempo me aventuro a escribir nuevamente, la verdad quizá lo que más me motiva o me alienta a hablar de estos temas resulta ser el enfrentarme día a día con situaciones que después de tantos años de insistencia persisten en la industria del software y en la academia, generando tantas situaciones indeseables.

A pesar de que permanentemente tengo este tipo de conciencia, el enfrentarme a situaciones particulares reaviva mi interés por "levantar mi voz" y expresar abiertamente mi inconformidad.

En post anteriores en la sección de OnlyForGurus de WillyDev.NET hablé sobre algunas de las cosas que ocurren en la academia, sobre todo con el tema de los docentes y los programas académicos, en este espero hablar un poco más sobre el entorno general al que se enfrenta los profesionales del sector o quienes simplemente quieren incursionar en esto de hacer software.

Bien, ese último comentario da pie a algo que he observado, desde hace algún tiempo que interactúo más frecuentemente en las redes sociales, y de esta interacción me surgieron algunas preguntas que sé que muchos profesionales del área nos hacemos. ¿Cuantas personas saben que significa hacer software? ¿Cuantos conocen las implicaciones de construirlo? ... y ahora que está tan de moda la web y las tecnologías para móvil, ¿Cuantos conocen la diferencia entre montar un sitio web y hacer una aplicación web? o ¿Cuantos conocen las incidencias y diferencias de desarrollar para móviles?... y... ¿Cuantos de los que contratan estos servicios, saben diferenciar entre quienes saben y quienes no saben?

El sotfware se ha vuelto el pan de cada día, para la mayoría de la gente interactuar con aplicaciones es tan natural, que dan por sentado la facilidad con que deberían hacerse cualquier tipo de programa, conceptos como requisitos, arquitectura y pruebas de software, estan fuera del contexto general de las personas y se tiene la idea de que contratar personas que aprenden un lenguaje de programación desde la web, es más que suficiente. ¡Como si hacer software fuera saber un lenguaje de programación!.

Las carencias de conocimiento que pueden tenerse, van desde "intentar construir la rueda" al no comprender que muchas cosas ya existen y que es la forma como se trabaja hoy en día, orientandose a la reutilización de componentes, hasta el no entender las necesidades reales que tienen los clientes, por que de hecho ni siquiera se conoce que hay técnicas de identificación de las necesidades y maneras de documentarlas y diseñarlas en cada una de las metodologías existentes.

Habría que empezar por el hecho de que muchas de esas personas piensan que la teoría es algo que se pudieron evitar de la academia, y cuando son personas que realizaron una carrera profesional pero no encontraron el valor suficiente a este tipo de enseñanzas, o bien, cuando en la universidad ni siquiera les enseñaron sobre metodologías y mejores practicas, no estamos demasiado lejos de estar al nivel de los que piensan que aprender unicamente de lo que hay en la red es suficiente. Y es que el problema no es que este en la red, yo misma aprendí muchas cosas en mi vida profesional desde la infinita fuente de recursos que resulta Internet, y sigo haciéndolo, el tema es más de conciencia e incluso aunque pocos lo tomen en cuenta, el tema es ético y de responsabilidad social.

Continuando con los efectos de esta situación, inicialmente siempre parece que el esquema de lo que salga muy barato funciona, el problema es que el software no es un producto que se construye y completa sin responsabilidades futuras, por el contrario, los usuarios con los días tienen más necesidades y responder por la garantía de un producto entregado, es un costo que pocos tienen en cuenta, y hacer contratos que definan los lineamientos y responsabilidades de las partes no se les pasa a muchos por la cabeza.

Pues bien, el problema no radica solamente en que muchos no tengan esta conciencia, tambien está en que el ánimo de abaratar costos, tantas empresas contraten mano de obra más económica pero inexperta, que creen poder cobrar esas sumas por obvias razones, la falta de desconocimiento del esfuerzo real y las responsabilidades que acarrea hacer software, y no cualquier software, software de calidad.
La calidad es otro tema, del que con seguridad tampoco muchos de ellos saben, pues quien sabe de software tiene claro, que la calidad es mucho más que creer que uno hace bien las cosas.

¿En qué termina la dichosa aventura? Los empresarios critican día a día las formas como se realizan la cosas, terminan teniendo prevenciones contra los profesionales del área, cuando en realidad su problema estuvo en no contratar a profesionales o al menos personas con experiencia real en el tema y aún más, que de verdad tengan pasión y amen lo que hacen.

Hoy en día cualquier profesional de cualquier área siente la capacidad de entrar a competir con empresas dedicadas a este tipo de trabajos y que estan constituidas con profesionales en el área, sin tomarse un instante de tiempo en pensar en que sus propias profesiones tienen tanto valor como las de esos profesionales que dedicaron parte de su vida en el estudio de las mejores practicas, y que por algo se hace, no por simple deporte de las universidades, de hecho, si el software ha llegado a ser lo que es en la vida de las personas por su relevancia e importancia, ¿por que así entonces no se le da ese tipo de valor a la "aventura de construirlo"?

¿Y donde nace todo eso?, es claro, es un circulo vicioso, la academia tiene sus falencias, pero el mercado está colocando en serios aprietos a las empresas que si estan interesadas en realizar un buen trabajo. Tener procesos estructurados y seguir mejores prácticas acarrea una serie de costos y tiempo que obviamente terminan redundado en cobros sobre los productos desarrollados, y si el último criterio con el que se está contratando es el hecho de tener alguien que de verdad sepa lo que hace y en cambio se contrata aquel con el que más barato sale, las buenas empresas terminan por entrar en una guerra de precios que redunda a su vez en el detrimento de los salarios que pueden pagar este tipo de empresas a personas profesionales y/o con experiencia real, lo que necesariamente va en detrimento tambien de la calidad de los productos que se construyen.

Habria que ver cual es la tasa de mortandad de las empresas que se dedican a hacer software, y cual la tasa de los proyectos fallidos, si es alta incluso en aquellos que cuentan siguen técnicas y principios para realizar su trabajo , cuanto más alta sería si no se cuenta con la experiencia o al menos métodos que en el tiempo han comprobado su eficacia en diversos escenarios.

Finalizaré esta primera parte con una frase de cliché, y es que "la calidad cuesta" y los nuevos profesionales de todas las áreas, deberían estar enterados de cuales son las implicaciones de solicitar la construcción de piezas de software, en vez de tener que aprender cada uno por su cuenta, entre intentos fallidos, cual es el deber ser de las cosas.

La situación no será mejor por sacar toneladas de orgullo para enfrentar cada una de estas situaciones, la tarea se encuentra en aprender y entender de que trata el mundo en el que se pretende incursionar y aplicar lo aprendido en decadas de estudio por los profesionales que se dedican a ello con disciplina, y que así como cada una de sus profesiones tiene un merito, tambien, el hacer software tiene procesos, técnicas y principios que seguir, más allá del simple sentido común.

Muchas empresas ya conocen esta situación, a razón de todas las malas experiencias que han tenido, sin embargo existe la carencia de conciencia en los costos necesarios para cubrir mejores prácticas y es así como en un elemento más para empeorar la situación, se termina exigiendo a las empresas que prestan buen servicio, a bajar sus tarifas al costo de quienes no las siguen, lo que no mejora en absoluto las condiciones para seguir en el mercado del software.

Si bien falta, le falta a la academia y a la industria en este campo, tambien es cierto que día a día estas situaciones llevan cada vez más al detrimento del sector y de la calidad de vida de sus profesionales, y no parece existir ningun ente de poder interesado en resolver esa situación, muy a pesar de reconocer que en nuestro país existe valioso talento por explotar en el campo de la construcción y mantenimiento del software.
Propongo entonces que planteemos algunas de estas situaciones que resultan patrones generales y vivencias típicas del sector, para que en una segunda parte abordemos algunas observaciones, ideas y conclusiones al respecto.



Derechos de autor: Link de la imagen aquí

No hay comentarios: