¿Es el desarrollo de sistemas un arte o una ciencia?

by Tim Bryce - 31 Marzo 2008

Vitruvian Man by Leonardo da VinciÉsta es una pregunta importante que es en última instancia la razón de muchos de los problemas en el desarrollo de software y sistemas. Un sector cree que el desarrollo de sistemas es una forma de arte que requiere de personas creativas libres de espíritu, otro grupo cree que es una ciencia que necesita de gente disciplinada y organizada.

La diferencia entre arte y ciencia es sutil pero significativa. Una expresión artística se basa en la intuitividad de la persona que realiza el trabajo, algo que es difícil, si no imposible, de pasar a otro ser humano. Por ejemplo, los aprendices de un artista pueden intentar por años emular al maestro, pero puede que nunca logren su nivel de habilidad y creatividad. En cambio, una ciencia se basa en un cuerpo gobernante de conceptos y principios y, como tal, puede ser enseñado fácilmente. Desde esta perspectiva, la programación puede ciertamente verse como una ciencia pues se ha enseñado y pasado a otros por muchos años; además, implica ciertos principios en términos de sintaxis de la lengua y enfoques usados al definir la lógica de un programa y su construcción. Alguien podrá discutir que el diseño físico de un listado o pantalla requiere creatividad, y hay cierto elemento de veracidad en esto ya que algunas pantallas serán mejores que otras. Pero incluso el diseño de listados y pantallas puede regirse por ciertos principios en términos de diseño, navegación, esquemas de colores, etc.

En sistemas, también hay principios regentes que pueden enseñarse fácilmente. Igualmente requiere cierto elemento de creatividad para actividades tales como analizar y solucionar problemas del negocio y diseñar flujos de trabajo. Lo que intento decir es que ciertamente la ciencia no está desprovista de creatividad. Por ejemplo, considere las ciencias de arquitectura e ingeniería, basadas en principios gobernantes, aún así ofrecen canales de creatividad en el diseño. La música es otro ejemplo excelente de una ciencia que implica creatividad. Es decir el arte no posee el monopolio de la creatividad.

En cualquier forma de desarrollo usted puede manufacturar un objeto por vez o en cantidad. Los artistas son excelentes en la construcción de obras de arte únicas, pero este enfoque es ineficaz para las corporaciones que tienden a construir con mucha gente. Por lo tanto, están más inclinadas a adoptar una visión del desarrollo basada en la ciencia en vez del arte. Además, mantener un producto derivado de una ciencia es más fácil que uno basado en un arte ya que un objeto puede ser reproducido según especificaciones con mayor facilidad.

No hace mucho tiempo escribí un artículo sobre por qué es necesario registrar el tiempo durante el día laboral, específicamente como se lo hace en la administración de proyectos. En dicho artículo mencioné que existe a menudo una resistencia a reportar el tiempo entre aquellas personas que se perciben a si mismas como creativas y libres de espíritu que no quieren se perturbadas con tal disciplina. En relación al artículo, recibí algunas respuestas interesantes en las que se mencionaba que no es necesario imponer demasiada disciplina y controles administrativos a los espíritus creativos, particularmente a los programadores, porque podrían ser vistos como burocracia y fastidio en vez de una ayuda. También comentaron respecto a su desdén para con la micro-administración; que prefieren más libertad ya que forma parte de su trabajo.


Personalmente, no tengo ningún problema con esto pues he abogado siempre por dar poder al trabajador (gerenciar de abajo hacia arriba). En otras palabras, ellos desean más autoridad en la toma de decisiones al planificar sus actividades. Esto significa que deben también participar en la preparación de las estimaciones de sus asignaciones y que deben poder reportar a la gerencia sobre su progreso. Para hacer esto, debe existir algo más substancial que generalidades en cuanto a donde están parados en su asignación, por ejemplo; “Completé el 50%” Debido a que mucha gente participa hoy en día en proyectos de desarrollo, la gerencia no puede operar con generalidades y en cambio debe saber con prontitud si el trabajador está en apuros o entregará el producto de su trabajo temprano o tarde

Esto se puede realizar simplemente registrando el tiempo empleado y estimando la cantidad de esfuerzo restante en una asignación. Esto es particularmente necesario si su actividad afecta el tiempo de otros. Si se da al trabajador más libertad para diseñar y estimar su trabajo, me parece perfectamente razonable emplear una dosis de disciplina y responsabilidad sin importar los espíritus creativos implicados, especialmente si se involucra a otra gente.

Entonces, ¿es el desarrollo de sistemas un arte o una ciencia? Afirmo que es una ciencia por las razones ya mencionadas. Como tal, puede ser enseñada y ser puesta en ejecución esencialmente de la misma manera que otras ciencias, tales como arquitectura e ingeniería, que se encuentran básicamente en el mismo negocio que sistemas y los desarrolladores de software excepto que diseñan otros tipos de productos. La verdad es que todavía tendremos el problema de la creatividad y la complejidad de su manejo, pero esto no es diferente de lo que ocurre en otras disciplinas. También significa la imposición del mismo orden, organización y responsabilidad que se encuentra en otras disciplinas. Sin embargo, el problema son los conflictos con las costumbres más relajadas de hoy en las oficinas. Uno tiene que preguntarse si nos hemos relajado demasiado en nuestras culturas corporativas al punto de tener un efecto nocivo en la productividad; que quizá cierta disciplina y responsabilidad pudieran producir resultados positivos.

Desarrolladores más jóvenes podrán afirmar que estoy desconectado de cómo los sistemas y software se desarrollan actualmente, que necesitan libertad para hacer lo que deseen. Afirmo que siempre habrá un lugar para la gerencia, si no terminaremos con “el fenómeno de los 1000 monos” donde se permite al personal hacer lo que desee y quizás, apenas quizás, algo de valor sea producido. Ciertamente, las compañías no pueden permitirse funcionar de este modo y, debido a esto, necesitaremos siempre de la gerencia para orquestar los esfuerzos de desarrollo en forma concertada.

Una última nota, un área que me preocupa es la carencia de estándares en esta industria, particularmente en el área de sistemas. Por supuesto, tenemos un montón de teorías de qué son los sistemas, pero ningún cuerpo de conocimiento definitivo que se pueda aplicar uniformemente. Éste es un obstáculo que nos prohíbe convertirnos en una ciencia legítima. Mientras haya múltiples interpretaciones de la misma cosa, nunca seremos consistentes y la gerencia continuará percibiendo los desarrolladores como artistas libres de espíritu en vez de como profesionales disciplinados.


Tim Bryce es un escritor y consultor en gerenciamiento de empresas ubicado en Palm Harbor, Florida – http://www.phmainstreet.com/timbryce.htm

Puede se contactado en: timb001@phmainstreet.com

Copyright © 2008 Tim Bryce. All rights reserved.

One Comment on “¿Es el desarrollo de sistemas un arte o una ciencia?”

  1. Angelo Baroldy Says:

    Engineering Position in todays economy are difficult to come by and this is made even more difficult by the fact that prospective managers are becoming more difficult to satisfy. Personally, I think that the global economy should see substantial improvements within the next sixyears and this should make everyones financial position easier to handle.

Leave a Reply