GeneXus

Desde hace un tiempo he estado analizando hacia donde se dirige la ingeniería de software.

Se puede observar fácilmente que la complejidad en el desarrollo del software no ha hecho más que aumentar constantemente con el correr de los años. Este aumento constante en la complejidad tanto de los problemas como de las soluciones, ha provocado la aparición de un gran número de nuevos lenguajes de programación, nuevas metodologías, modelos, patrones, etc.

En lo personal he notado que se ha vuelto sumamente difícil para los desarrolladores la tarea de mantenerse actualizado. Últimamente tengo el siguiente pensamiento recurrente: “Tengo que especializarme en algo, ¿En qué? ¿Adonde va el mercado? – Tengo que mirar hacia el futuro y prepararme para esto. De esta forma cuando mi nivel de especialización sea óptimo voy a poder correr en paralelo al mercado”.

Las dos preguntas que me he planteado muchas veces van, evidentemente, de la mano. Según he podido ver, la evolución de los lenguajes de programación está un poco estancada, Java, C, C++, C#, Ruby, Python,PHP, etc. Han “crecido” mucho pero ninguno de éstos ha podido dar un vuelco evolutivo grande en los últimos 4 o 5 años. Esto según puedo entender ocurre por la simple razón de que son soluciones sumamente robustas.

Con cualquier lenguaje de programación actual se puede resolver casi cualquier necesidad presentada por un cliente. En el proceso de ingeniería de software actual se debe analizar cual de estos lenguajes presenta la arquitectura más adecuada a las necesidades del cliente.

Pero, ¿qué sucede si notamos que los desarrolladores también somos un mercado de consumo? Nosotros también tenemos necesidades puntuales que se deben satisfacer. No puedo decirle a usted cuales son sus necesidades, pero si puedo plantear las mías. Para satisfacer los requerimientos de mis clientes, necesito resolver de la forma más eficiente los siguientes puntos:

  • Documentación (tanto análisis como diseño de mis soluciones a implementar)
  • Implementación
  • Versionado (tanto de lo programado como de lo documentado)

Existen un sinfín de soluciones que me resuelven lo anterior: wikis para la documentación; case tools para el diseño; excelentes IDE’s para implementar cada lenguaje existente y subversion, CVS para el control de versiones.

Pero todo esto en si es un nuevo problema para mi, ya que tengo que dominar cada una de las herramientas que satisfacen mis necesidades.  Forzándome a una capacitación para cada nueva versión de cada una de ellas.

Además de lo anteriormente planteado, la arquitectura planteada por estas soluciones no me facilita la siguiente necesidad: Implementación de tareas rutinarias. No tengo que decirle al lector lo tedioso, tendiente a error y contras que tiene esta tarea para todo desarrollador.

Si sumamos todas estas necesidades podemos encontrar una solución que las satisface, en mi opinión, correctamente. GeneXus.

Share and Enjoy:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • BarraPunto
  • email
  • StumbleUpon
  • Technorati
  • DZone
  • LinkedIn
  • Linkter
  • Netvouz
  • YahooMyWeb
  • blogmarks
  • TwitThis

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">