« Gracias compis | Inicio | Google Code Search »

¿Qué es lo que falla?

La liberación de Javier me ha hecho pensar en un tema que no es la primera vez que se toca por aquí.

Es evidente que cuando todos los proyectos que sobrepasan cierto nivel de complejidad, que como mucho podría clasificarse como medio, terminan convirtiéndose en trampas casi mortales para los que los desarrollan, hay algo que falla.

¿Dónde está el problema?

Lo más sencillo es recurrir a la respuesta de siempre: los comerciales (consultores, jefes de proyecto, quien sea) venden cosas sin saber lo que venden, y por tanto, sin saber lo que supone desarrollarlas. Cierto, pero sólo en parte.

No creo que haya un problema generalizado de ignorancia, sino de desconocimiento. Y aunque no lo parezca son cosas distintas.

La tecnología avanza, los conocimientos y experiencia de los desarrolladores crecen, y lo que hasta hace poco era imposible de hacer por un equipo de menos de 10 o doce personas empieza a ser realizable por uno o dos desarrolladores con una buena capacidad de abstracción y un buen dominio de la programación orientada a objetos.

Las herramientas también han mejorado, se han desarrollado frameworks en los que apoyarse, ya no hay una necesidad perentoria de reinventar la rueda en cada nuevo proyecto.

Pero esa capacidad para realizar desarrollos más ágiles, más reactivos, más proclives al cambio, en defninitiva más grandes, más extensibles y más estables, encierra en sí misma una trampa. Podemos hacer más, mucho más que antes, y eso hace que lo que hacemos se valore mucho menos, sobre todo en términos de esfuerzo.

Parece que somos capaces de hacer cosas mucho más complejas que antes, y que somos capaces de hacerlas con mucha mayor facilidad. Y en realidad muy poca gente en "el negocio" sabe lo que encierra desarrollar cualquier aplicación que vaya más allá de una simple web presencial, el esfuerzo y el nivel de abstracción que se precisan. Y eso también nos puede estar matando.

Eso y que hay quien se empeña en pretender desarrollar un Mercedes por el precio de un seiscientos, claro.

Comentarios

No te falta razón, César, pero añadiría yo otro motivo más. Los avances en el desarrollo de software hacen que los desarrolladores tengan que reciclarse continuamente, aprender cosas nuevas. A pesar de que siempre hay código reciclable, siempre hay algo nuevo que probar. Y las ventajas que aportan las novedades, no dejan de ser un inconveniente la primera vez que se usan.
Al final el esfuerzo es doble, el trabajo en sí y la autoformación.
Las empresas no suelen valorar ese tiempo de autoformación y, sin embargo, ese es el gran "truco" de un buen desarrollador.

Efectivamente, la autoformación, necesaria para poder seguir siendo productivo, es algo que tampoco se planifica ni se valora.

perra vida ésta...

Dos apuntes sobre lo que acabáis de indicar. Ambos sacados del prefacio del libro
"Rapid Development:"
Taming wild software schedules
Steve McConnell
Microsoft Press 1996 ( ya ha llovido pero sigue siendo igual de actual )


· In this environment, it isn't surprising that general job satisfaction of software developers has dropped significantly in the last 15 years ( Zawacki 1993 ) , and at a time when the industry desperately needs to be recruiting additional programmers to ease the schedule pressure, developers are spreading the word to their younger sisters, brothers, and children that our field is no fun anymore.
Clearly our field can be fun. Many of us got into it originally because we couldn't believe that people would actualley pay us to write software. But something not-so-funny happened on the way to the forum, and that something is intimately bound up with the topic of rapid development.

· Software developers are caught ot the horns of a dilemma. One horn of the dilemma is that developers are working too hard to have time to learn about effective practices that can solve most development-time problems; the other horn is that they won't get the time until they do learn more about rapid develpment.

Yo personalmente, creo que el mayor problema es que de puertas para fuera de los departamentos de programación, diseño etc.. la gente se piensa que esto es como hacer churros, que le das a la manivela y salen los códigos. Total, esto lo hace el ordenador, ¿ no ?. Parece ser que nosotros no hacemos nada.

En fin.

Interesantes comentarios.
Por mi parte, me permito aportar mi experiencia personal sobre lo que se denomina 'desarrollo de software' aqui en mi pais, Argentina, mas especificamente en el interior, lease lejos de las capitales, de los centros de capacitacion, de la gente con experiencia, de los trabajos enriquecedores, etc.
Aqui el desarrollo se torna practicamente artesanal. Equipos de 1 o 2 personas, que cuidan su mini monopolio de empresas, sin competencia y con desarrollos poco mas que mediocres que dejan grandes regalias.
Y en esto coincido con el comentario que dice que se ha perdido el entusiasmo en el desarrollo en los ultimos tiempos, y esto en parte obedece a que en este entorno no conviene decire que uno sabe, porque termina trabajando el doble por el mismo dinero. Simplemente es asi, desgastante y frustrante. Como me gusta decir, cansa pero no llena.