jueves, 21 de diciembre de 2017

¿Qué diferencia a un desarrollador de software de un programador?


Muchos se sorprenden. De repente caen en la cuenta de que los desarrolladores se tienen que vestir de corbata, visitar al cliente, hacer demos y hacer labores comerciales además de todo el enjundio técnico de programar aplicaciones que funcionen. Y ahí es cuando empiezan a entender la diferencia entre un desarrollador de software y un programador. Y entonces es cuando comprenden mejor que el perfil de los clientes de Velneo no es el de un programador en el sentido más restrictivo del término, sino de un analista-programador, de un desarrollador de aplicaciones para empresas.

¿Qué es un desarrollador de software?

La definición que existe en la Wikipedia de desarrollador de software está bastante bien, aunque la definición que la comunidad “wikipedista” ha elaborado en inglés me parece más precisa y completa.
En la primera parte de la definición se aclara que un desarrollador de software es una persona u organización encargada de aspectos que van más allá de picar código y del diseño dentro del proceso de desarrollo del software, y que en general se puede definir como la gestión de proyectos de desarrollo de software. Se especifica que a los desarrolladores de software tambíen se les denomina analistas de software.
Tras esta primera acalaración se explica que cada vez más la diferenciación entre el diseño de sistemas, el desarrollo de software y la programación es cada vez más pronunciada y aparente a medida que pasa el tiempo. Yo estoy de acuerdo con esta idea aunque está claro que existen muchas opiniones y debates en torno a los límites exactos entre unas tareas y otras.
Pero la parte de la definición de Wikipedia que más me gusta es la enumeración de las tareas que suele desempeñar un desarrollador de software que no hace un programador. El desarrollador de software suele desempeñar todas estas tareas:
  • participa en la definición del producto de software que se va a comercializar, incluyendo el análisis de los nichos de mercado al que va dirigido
  • especificaciones del software
  • el análisis de requerimientos del software
  • diseño y mejora de prototipos y de demos para validar requerimientos
  • el análisis del costo-beneficio, que incluye elegir el tipo de arquitectura y el framework que implica tener claro el presupuesto y el calendario de trabajo
  • diseño
  • programación
  • implementación
  • documentación para los usuarios del software desarrollado
  • testeo de las aplicaciones y supervisón del proceso de arranque de prueba de la aplicación
  • mantenimiento
En relación con este tema, Eric Sink, autor del muy recomendable The Business of Software, recomienda a las ISV’s (“Independent Software Vendors”, autónomos y pequeñas empresas de desarrollo de aplicaciones) contratar a desarrolladores y no a programadores -programador entendido como profesional de escribir código que no está dispuesto a hacer muchas de las tareas enumeradas arriba-.

Y claro, en las empresas grandes las tareas enumeradas arriba las realizan entre varias personas pero en un departamento de programación o en una PYME dedicada al desarrollo de aplicaciones en muchos casos hay una sola persona que se dedica a hacerlo todo.

No hay comentarios:

Publicar un comentario

 
biz.