SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
LA CARRERA PROFESIONAL DEL DESARROLLADOR DE SOFTWARE
                          EN VENEZUELA


                           Prof. Dr. Jorge Domínguez Chávez
               Coordinador de la Especialización en Sistemas


                                          RESUMEN
         En este trabajo se exponen las características que debe tener
un   desarrollador   de   software,   los   niveles   de   acenso   en   su   carrera
profesional   y   se   discuten   algunos   puntos   como   las   metodologías   de
desarrollo, la visión actual del mercado de trabajo. 
Descriptores: desarrollo, software, metodologías, métrica V3. CMM


        La   carrera   profesional   del   desarrollador   de   software   en
Venezuela,  al igual que en muchos países,  está marcada directamente
por la oferta y demanda laboral. Si bien el mercado primordialmente
ha estado  basado en la consultoría (alquiler de mano de obra)  y  ha
sido una enorme fuente de negocio y beneficios para muchas empresas y
empresarios, también ha generado una distorsión en el mismo mercado,
donde la calidad y el talento son  factores  secundarios, a favor de
los años de experiencia que son “vendibles”, y por ende, imputables a
un proyecto.
          ¿Qué hacen en realidad los desarrolladores y/o programadores
de   software?   Son   las   mentes   creativas   detrás   de   los   programas
informáticos. Algunos de estos programadores desarrollan aplicaciones
para que otras personas ejecuten tareas específicas en la computadora
u   otro   dispositivo   informático.   Otros,   desarrollan   los   sistemas
operativos   que   gestionan  el  hardware   y   controlan  las  redes
informáticas.
¿Cuál es el entorno de trabajo? Muchos de los desarrolladores
de   software   trabajan   para   empresas   que   diseñan   sistemas   de
computación, aplicaciones web o software a la medida. Otros, trabajan
en   la   industria   desarrollando   aplicaciones   industriales,  como   el
petroleo, la minería, la robótica o la medicina.  Pero la mayoría de
estos programadores  trabajan  por su  cuenta  (profesional  libre)   40
horas a la semana y otros, en el peor de los casos, trabajan más de
esas 40 horas por semana, desarrollando aplicaciones bajo demanda.
        ¿Cómo   llegar   a   ser   desarrollador   de   software?   Normalmente,
este profesional tiene una licenciatura o ingeniería en computación y
sólidas habilidades en la programación de computadoras.
         ¿Cuál es la tendencia laboral? Los empleos en desarrollo de
software tienen una proyección de crecimiento de  13% anual, más que
la   media   en   otras   profesiones.   La   razón   de   esto   es   la   demanda
incremental en software de aplicaciones.
         Los escalafones profesionales del desarrollador son:
  •   Becario  o pasante. Figura  poco utilizada  ya  que  representa un
      costo importante en formación y tiene el riesgo de no aportar
      ningún   beneficio.   A   los   más   competentes   se   les   integra  a   la
      plantilla, o tienden a irse a otro trabajo mejor pagado porque
      ya tienen práctica laboral.
  •   Programador   junior.   Prácticamente   un   becario   en   plantilla   y
      pagado. El sueldo es bajo y no se debiera esperar que sea muy
      productivo. Se le introduce en equipos o trabajos para que se
      vaya formando.
  •   Programador.   A   partir   de   uno   o   dos   años   de   experiencia.   Para
      muchas empresas debe ser productivo e integrarse en equipos.
  •   Programador senior. A partir de los tres años, se considera que
      sabe enfrentarse a prácticamente cualquier  problema  y sacar un
      proyecto adelante.
  •   Analista programador. Un programador senior,  con  cinco años de
      experiencia,   es   capaz   de   realizar   análisis   funcionales,   tomar
      decisiones por si mismo o, incluso, ser el líder de un equipo.
  •   Analista.   Un   profesional   con  amplia  experiencia   para   elaborar
      los análisis funcionales de las aplicaciones. Es el primer paso
      hacia   el   abandono   del   “picar   código”,   es   imprescindible   un
      amplio bagaje técnico.
  •   Arquitecto. Personaje que se utiliza en grandes proyectos que se
      ocupa de la descripción y análisis arquitectónico del proyecto.
Elabora   documentación   técnica,   toma   decisiones   y   basa   su
       conocimiento   no   sólo  en   la   experiencia   empírica   sino   en   el
       estudio de la ciencia de la computación.
   •   Jefe de Proyectos (no técnicos). Es responsable del departamento
       técnico  o  su  Director  y  gestiona la productividad del equipo y
       reporta a la Dirección o gerencia.
        Vemos  que  el   desarrollo   de  software   es  una   labor  compleja,
intelectual,   profesional   basada   en   el   estudio,   el   esfuerzo,   el
talento y la capacidad.
        Así,   tenemos   que   un   programador   con   talento   puede   hacer
labores de Analista o arquitecto teniendo tres años de experiencia; o
sí tiene un título universitario desde hace un año puede ser analista
funcional. También, hay programadores sin talento para el desarrollo,
pero con la titulación exigida para el puesto.
         Cuando empezamos a “picar código”  tenemos en cuenta que, en
la mayoría de los casos, que el desarrollo de software es un trabajo
en equipo. Y que en cuanto hay más de tres personas en el equipo,
hablamos de una multitud. Por lo cual nuestra propia  condición  nos
conduce   a   buscar   un   líder   natural   que   ponga   orden   al   caos   que   se
puede generar.
         Para ello, se  eligen  a los mejores profesionales o los más
reconocidos (que no es lo mismo) para gestionar los equipos. Estos
son llamados líderes de equipo y jefes de proyectos técnicos. Ambos,
pican   código.   Quizá   no   todos   los   días,   pero   son   parte   de   la
construcción del software. La diferencia principal es que el primero
gestiona al equipo desde un punto de vista técnico puro y el segundo
hace labores de gestión y reporta a la gerencia o dirección.
        Estos   cargos  requieren   de   una   motivación   especial   por   el
trabajo. El profesional debe tener talento para gestionar, coordinar
y liderar personas  y proyectos. Además,  tener  el  conocimiento y  la
experiencia   para   que   el   equipo   lo   respete   técnicamente.   En   este
escalón el poder de autoridad es muy pequeño y no se puede ocultar la
ignorancia técnica detrás de la burocracia de la gestión.
         Al pasar a  Gestión de proyectos,  el profesional  deja de ser
un   desarrollador   de   software,  aunque   conserve   esa   habilidad  por
afición   o  por  estudio.  Pienso  que  el   camino   más   completo   para
alcanzar  estos  puestos  es viniendo  del  desarrollo, incluso más que
provenir de Tecnología de Información.
Hay profesionales que vienen de otras  áreas y llegan a los
puestos de gestión por una certificación PMI1, PMP2, Prince23, etc.,
los cuales, si no han tenido conocimiento técnico sobre el desarrollo
de   software,   tienen   un   gran   riesgo   de   verse   abocados   al   fracaso   a
causa de las singularidades de los proyectos informáticos.
        Nota.   Curiosamente   estas   certificaciones   NO   mencionan   la
palabra software o desarrollo de software.
        Al   llegar   a  Jefe   de   Proyecto   (no   técnico),   el   principal
objetivo   es   el   conseguir   que   la   productividad   de   los   equipos   se
mantenga o mejore. Debe reportar de forma entendible a la Dirección.
        Esto último (reportar a la dirección), que parece trivial, no
lo es. Ya que la diferencia de terminología y de conceptos entre los
que hacen las cosas y los que dirigen es, simplemente, abismal.
        Explico,   durante   el   desarrollo   de   software   debemos   estar
centrados  en los procesos, las metodologías, en las métricas, en la
trazabilidad y en la madurez de los equipos. Olvidándote, por  falta
de tiempo, del liderazgo técnico y priorizando el departamento. 
        Es frecuente que la palabra proceso en diferentes ámbitos se
entienda  como   “gestión   por   procesos”,   “mejora   de   procesos”,
“automatización   de   procesos”,  etc.,   “proceso”   lleva   a   pensar   en
entornos   industriales   pero   también   existen   procesos   en   empresas   de
servicios.
         Entonces  ¿Qué   es   un   “proceso”?  ¿En   qué   consiste?   ¿Hay
procesos   en  nuestra  empresa?   Si   vamos   al   Diccionario   de   la   Real
Academia de la Lengua Española, vemos que proceso es:  “Conjunto de
las   fases   sucesivas   de   un   fenómeno   natural   o   de   una   operación
artificial “,  en otras palabras, un proceso es una serie de  tareas,
que   tienen   como   origen   unas  entradas  y   como   fin   unas  salidas.   El
objetivo del proceso es aportar valor en cada etapa. Pero… ¿Valor a
quién,  a qué? Fácil, valor para el cliente. Si un proceso no añade
valor,   lo   eliminamos,   siempre   que   sea   posible.   Además,   el   proceso
tiene propósitos, objetivos e indicadores para mejorar el desempeño.

1 Es un estándar desarrollado en los Estados Unidos de Norteamérica, con el mercado americano en mente,
PMI desarrolló su metodología denominada PMBOK la cual va en su cuarta versión y cuenta con esquemas
de capacitación y certificación.
2 PMP (Project Management Professional) es un must que todo gerente de proyecto debe tener si quiere
ascender en su carrera y gestionar proyectos cada vez más importantes, y debe enfocarse en obtener la
referida certificación, como un requisito para aquello.
3 Estándar desarrollado en Gran Bretaña, por OGC, oficina del gobierno británico, su foco original fue el
sector público, y ha sido adoptada en otras industrias, tiene una fuerte presencia en Europa y en las zonas
de influencia del Reino Unido.
Un proceso informático puede entenderse como un programa en
ejecución. Formalmente, un proceso es "Una unidad de actividad que se
caracteriza  por  la  ejecución  de  una  secuencia de  instrucciones,  un
estado actual, y un conjunto de recursos asociados del sistema" 4. Es
decir,   hay   una   entrada   de   datos,   un   proceso   y   una   salida.
Fundamentalmente es lo siguiente: Análisis + Diseño + Programación.
También   consideramos  Capacidad   +   Deseos   superación   +   Aprendizaje
constante   +   Trabajo   inteligente   +   Lugar   y   Momento   adecuado.  Los
cuales  son   buenos   elementos   para   lograr   objetivos.  NOTA:   mencioné
trabajo inteligente, porque trabajar duro (como burro) es otra cosa.
         Para   desarrollar   un   software   o   programa   empleamos   una
metodología. Aquí, podríamos iniciar un debate sobre la metodología
de   desarrollo  a   seguir  ­   cascada,   ágil,   delgado,   espiral   extremo,
unificado, etc. En este momento, suponemos que el método que usamos
es el correcto y que los otros, sin importar su experiencia previa,
están   equivocados.   Algunos,  tienen  una   caja   de   herramientas   de
métodos para recurrir a ella, otros dicen que el mundo debe adaptarse
a un nuevo estado del arte de la técnica. 
           Pero,  ¿Hay una forma práctica de construir  un  buen software
sin este debate? No hay respuesta corta ni fácil. Usa la metodología
que te haga sentir bien y cuando  no sea útil  para el equipo en su
conjunto, la cambias sin debatir el tema, y regresas sobre el proceso
en   su   contexto.   En   un   proyecto   de   software   el   reloj   siempre   está
corriendo y el debatir sobre un meta­tema que no tiene una respuesta
correcta, ni única, no es la mejor manera de usarlo. No existe una
metodología   adecuada,  como  tampoco   existe   un   convenio   para   la
codificación   correcta,   el   lenguaje   de   programación   correcto,   o   un
diseño de interfaz de usuario correcto. El contexto marca la pauta.
         Hablamos   de   experimentar   con   el   código   (o   con   los
requerimientos); toma algunas decisiones rápidas sobre cómo construir
el   software   que   necesitas   y   ajustate  a  ellas.   Ajusta  el   método  al
obtener los resultados del proyecto en el espectro de tu equipo y de
negocios para sustentar los cambios. No discutas el meta­debate sobre
la forma de hacer el trabajo que tienes que hacer, consumes tiempo.
        Desde   los   primeros  tiempos   del   desarrollo  de   software,   los
profesionales del estado  del  arte han creado  métodos  formales para
especificar e implementar software y convertirse en ingenieros. Estos
métodos fueron influenciados por la naturaleza física de los grandes
proyectos de  ingeniería  como  planos  de  construcción,  puentes  o  los
propios computadores (procesos de ingeniería maduros).


4 Stallings 5º edición pag. 109
El   software   desarrollado  según   estos   métodos  puso   en   claro
para muchos que la parte blanda  (soft)  de la ingeniería de software
potencialmente perdería su enfoque flexible, el desarrollo se volvió
burocrático.  La   industria   del   software,   como   cualquier   otra
industria,   requiere   de   productos   de   calidad,   de   buen   precio   y   a
tiempo. Las empresas requieren de software rápido. Con tan increíble
demanda   de   software,   no   es   de   extrañar   que   a   muchos   les   gustaría
hacer más cosas en menos tiempo y mirar hacia un enfoque metodológico
flexible  y  versátil  para hacerlo.  La oportunidad de  una  recompensa
para   la   construcción   de   un   gran   software   como   parte   de   un   gran
negocio   está   mejor   que   nunca.   La   flexibilidad  y   versatilidad  del
desarrollo   de  software   es   un   regalo   que   a   los   ingenieros   de   otras
disciplinas le encantaría tener, así que hay muchas razones para que
el desarrollo de software sea menos burocrático y rígido.
         ¿Qué   metodología   usar   para   el   desarrollo   de   un   Software?
¿estructurado?   ¿orientado   a   objetos?   ¿rup?   ¿xp?   ¿cascada?   ¿ágil?
¿scrum?  Sí  realizamos  un   software   de   manera   rígida,  según  los
requerimientos  inicialmente  solicitados, y en la etapa final (etapa
de prueba), se solicita un cambio, se hace difícil realizarlo, pues
al   hacerlo,   altera   muchas   cosas   que   no   habíamos   previsto,  siendo
éste, uno de los factores que retrasa un proyecto y por tanto, el no
cumplir   con   el   cambio   solicitado   y   el   malestar   del   cliente   por   no
tomar en cuenta su pedido. 
        Por inexperiencia los usuarios dejan de mencionar cosas, pese
a que se  mostró  un  prototipo  del  software en  la  etapa inicial del
proyecto, y lo hacen en la etapa de prueba.
        Los   proyectos   en   problemas   salen   del   presupuesto,   tienen
importantes retrasos, o simplemente no cumplen con las expectativas
del cliente. 
        Limitemos nuestro enfoque a los extremos del espectro de este
diálogo,   aunque   no   necesariamente  sea   así  en   la   práctica.   Vamos   a
llamar a los extremos cascada y ágil.
         Los métodos cascada son mal vistos, son lentos, burocráticos,
micro administrados, incrementales, alejado de clientes y mercados,
entre   otros.   Por   el   contrario,   los   métodos   ágiles   son   la   manera
positiva   de   comenzar   un   proyecto,   implican  rapidez,   creatividad,
energía, activista,  unido a  los clientes y mercados, y más. En cada
extremo  existen   defensores  de implementar  uno de esos  métodos.  Las
implementaciones   incluyen   plantillas   de   documentos,   funciones   y
responsabilidades, agendas de reuniones y con frecuencia herramientas
de software específicas para soportar el flujo de trabajo.
No todo es negativo o positivo en cada extremo.  Un proyecto
de   cascada   es   reflexivo,   una   arquitectura   planificada,   y   procede,
desde la planificación hasta la ejecución final como un ballet. Por
otro lado, los proyectos ágiles son capaces de sustituir el caos y la
actividad en cualquier forma de progreso "que enviamos cada semana",
incluso se mueve hacia adelante o hacia atrás y con los clientes.
        Por   supuesto   que   estos   extremos   no   son   universales,  ni
necesariamente,  ciertos.  Así  que  es  mejor centrarse  en  la realidad
del código escrito, la prueba, el despliegue / envío y no depurar el
proceso ... prematuramente.
           ¿Has dedicado tiempo y esfuerzo a revisar y profundizar en la
metodología MÉTRICA V3? La cual, según la Wikipedia es “..Métrica v3
es   una   metodología   de   planificación,   desarrollo   y   mantenimiento   de
sistemas de información. Promovida por Ministerio de Administraciones
Públicas del Gobierno de España para sistematización de actividades
del   ciclo   de   vida   de   los   proyectos   software   en   el   ámbito   de   las
administraciones públicas...”
        Y lo leemos, lo dice la Wiki y lo creemos. En el mundo real,
esta metodología no existe,  no se utiliza. De hecho, pocas personas
conocen qué va, cómo se implementa, cómo funciona. Para ser sinceros,
el hecho de que no se utilice, es algo que agradecemos, porque está
desfasada   con   respecto   a   las   ágiles.   Lo   que   no   entendemos  es   cómo
grandes   proyectos   de   implantación   a   nivel   nacional,   no   posean
documentación alguna: entre amigos, para saber qué es lo que hace una
determinada aplicación, tenemos que leernos su código fuente.
        Ninguna   empresa   tiene   completamente   documentadas   sus
aplicaciones,   ni   IBM,   ni   Oracle,   ni   Microsoft   que   disponen   de
recursos   humanos,   tiempo   y   dinero   lo   hacen.   Siempre   los
documentadores van detrás de los desarrolladores.
         Trazabilidad.  En   la   gestión   de   requerimientos   (REQM)   se
pretende el control sobre los mismos. Los requerimientos deben estar
bien   identificados   y   ser   comprensibles   para   las   partes   que   tengan
relación   con   ellos.   Además,   en   cualquier   momento,   saber   de   donde
provienen   los   requisitos   y   la   relación   entre   los   de   alto   y   bajo
nivel.  También, los requisitos pueden ser entrada de otras áreas de
proceso. Es recomendable disponer de trazabilidad entre necesidades
de   información   y   los   objetivos   asociados.   Pretendemos   responder   a
¿Para qué vamos a medir esto? O ¿Qué se mide con esto? 
        Otro  beneficio  es   que   los   cambios   efectuados   sobre   los
requisitos   sean   controlados   y   no   afecten   a   la   integridad   de   lo   ya
definido.
Realizamos la trazabilidad con una simple tabla donde en un
eje   tenemos   las   necesidades   de   información   y   por  en   el  otro,   los
objetivos. así, rápido, sabemos la trazabilidad entre ambas cosas. 
         Madurez de los equipos. Está compuesta por:
         Habilidades   de   equipo.  El   equipo   puede   estar   formado   por
profesionales   experimentados   que   trabajan   en   territorio   familiar.
Podrían estar haciendo su enésimo proyecto juntos o éste podría ser
el   momento   de   una   n­ésima   construcción   de   un   proyecto   similar   o
actualización. Pero deben recordar que ningún proyecto de desarrollo
de software es igual.
         Número   de   ingenieros   /   tamaño   del   equipo.  El  número   de
personas   en   un  equipo   influye  en   la  evolución  del   desarrollo.  No
debe incluir ingenieros por "tradición" o "convención". Cuestionar al
personal calificado  es bueno, pero también  debe hacerlo  teniendo en
cuenta  el contexto  del  equipo.  Algún  recién  llegado  puede sentirse
restringido,  si proviene de  un equipo pequeño. En un equipo grande
hay probablemente menos uniformidad de la que se pueda pensar, y esta
diversidad es una parte importante.
        Debes delegar  completamente en el equipo la responsabilidad
de decidir la mejor manera de trabajar para ser lo más productivos
posibles y darle protagonismo a las reuniones que realicen a lo largo
del proyecto.
            realidad
         La         
         Como experiencia personal, siempre echaras de menos el hacer
“magia”. Por ello recomiendo mantener la programación aunque sea como
un   “hobby”,  estarás  al   día  sobre  las   herramientas   y   evolución   de
nuestra profesión.
         Así   mismo,   es   imprescindible   comunicarte   en   ingles,   tener
conocimientos   formales   de   gestión   de   proyectos   y   utilizar   traje   y
corbata. Saber hablar en público, escribir sin errores de ortografía,
saber   redactar   en   lenguaje   técnico;   así  motivar   a   las  personas  y
percibir cuando hay que sacar el látigo y cuando hay que tener mano
izquierda.
         Crece según tu ambición
        Una de las fuerzas más potentes de motivación laboral es el
sueldo. Bueno, realmente esto es una generalidad  tosca  que da para
escribir   uno   o   más   artículos   relacionados   con   el   tema   de   la
motivación.
Sí tuviese que dar un consejo a un becario o a un profesional
que no sabe si merece la pena el esfuerzo de aprendizaje para escalar
en su carrera profesional le diría: sigue tu ambición.
        Vivimos una realidad cambiante, que ahora mismo te dice algo
tan simple como que si quieres ganar más dinero debes ir pasando de
funciones   técnicas   a   funciones   de   gestión.   Para,   finalmente,
olvidarte de escribir código.
          También ten en cuenta que no todos podemos dirigir/gestionar,
lo cual significa que tarde o temprano se dará el valor que tiene el
conocimiento y experiencia de un desarrollador de, por ejemplo, 20 o
25   años   picando   código.   Y   termina   siendo   una   carrera   profesional
desligada a la gestión.
        En   cualquier   caso,   cuando   has   tenido   la   experiencia   de
desarrollar   aplicaciones   de   software,   la   gestión   de   equipos   o
departamentos   de   programación  te   brinda   grandes   satisfacciones
profesionales y personales.

Mais conteúdo relacionado

Mais procurados

Adpative software-development-y-lean-software-development
Adpative software-development-y-lean-software-developmentAdpative software-development-y-lean-software-development
Adpative software-development-y-lean-software-developmentDiego Ahumada
 
Programación extrema [XP]
Programación extrema [XP]Programación extrema [XP]
Programación extrema [XP]Agustín
 
Bpm night tecnologias BPM industria4
Bpm night tecnologias BPM industria4Bpm night tecnologias BPM industria4
Bpm night tecnologias BPM industria4DanielPinto349933
 
La Gerencia de Proyecto bajo el enfoque del PMI
La Gerencia de Proyecto bajo el enfoque del PMILa Gerencia de Proyecto bajo el enfoque del PMI
La Gerencia de Proyecto bajo el enfoque del PMIWilliams Machado
 
Gerencia Adminitrativa
Gerencia AdminitrativaGerencia Adminitrativa
Gerencia AdminitrativaMariagina92
 
El Camino a la Gestión de Alto Desempeño
El Camino a la Gestión de Alto DesempeñoEl Camino a la Gestión de Alto Desempeño
El Camino a la Gestión de Alto DesempeñoAlberto Dominguez
 
Construyendo software de clase mundia
Construyendo software de clase mundiaConstruyendo software de clase mundia
Construyendo software de clase mundiaGabriel Oliva
 
El Factor Humano en Proyectos de Software
El Factor Humano en Proyectos de SoftwareEl Factor Humano en Proyectos de Software
El Factor Humano en Proyectos de SoftwareHaaron Gonzalez
 
Definicion del proyecto yan martinez
Definicion del proyecto yan martinezDefinicion del proyecto yan martinez
Definicion del proyecto yan martineznay-censey
 
IHM Unidad 1: Introducción a la Interacción Hombre-Máquina
IHM Unidad 1: Introducción a la Interacción Hombre-MáquinaIHM Unidad 1: Introducción a la Interacción Hombre-Máquina
IHM Unidad 1: Introducción a la Interacción Hombre-MáquinaFranklin Parrales Bravo
 
Dd014 presentación caso práctico
Dd014 presentación caso prácticoDd014 presentación caso práctico
Dd014 presentación caso prácticoValentina Roca
 

Mais procurados (19)

Conferencia manifiesto-agil
Conferencia manifiesto-agilConferencia manifiesto-agil
Conferencia manifiesto-agil
 
Adpative software-development-y-lean-software-development
Adpative software-development-y-lean-software-developmentAdpative software-development-y-lean-software-development
Adpative software-development-y-lean-software-development
 
Programación extrema [XP]
Programación extrema [XP]Programación extrema [XP]
Programación extrema [XP]
 
Angello revista digital
Angello revista digitalAngello revista digital
Angello revista digital
 
Bpm night tecnologias BPM industria4
Bpm night tecnologias BPM industria4Bpm night tecnologias BPM industria4
Bpm night tecnologias BPM industria4
 
Exposicion
ExposicionExposicion
Exposicion
 
La Gerencia de Proyecto bajo el enfoque del PMI
La Gerencia de Proyecto bajo el enfoque del PMILa Gerencia de Proyecto bajo el enfoque del PMI
La Gerencia de Proyecto bajo el enfoque del PMI
 
Lagerencia
LagerenciaLagerencia
Lagerencia
 
Gerencia Adminitrativa
Gerencia AdminitrativaGerencia Adminitrativa
Gerencia Adminitrativa
 
El Camino a la Gestión de Alto Desempeño
El Camino a la Gestión de Alto DesempeñoEl Camino a la Gestión de Alto Desempeño
El Camino a la Gestión de Alto Desempeño
 
Construyendo software de clase mundia
Construyendo software de clase mundiaConstruyendo software de clase mundia
Construyendo software de clase mundia
 
Tio13 cp
Tio13 cpTio13 cp
Tio13 cp
 
Metodologías de Desarrollo de Software
Metodologías de Desarrollo de SoftwareMetodologías de Desarrollo de Software
Metodologías de Desarrollo de Software
 
Adaptive project management - diamond approach
Adaptive project management  - diamond approachAdaptive project management  - diamond approach
Adaptive project management - diamond approach
 
El Factor Humano en Proyectos de Software
El Factor Humano en Proyectos de SoftwareEl Factor Humano en Proyectos de Software
El Factor Humano en Proyectos de Software
 
Definicion del proyecto yan martinez
Definicion del proyecto yan martinezDefinicion del proyecto yan martinez
Definicion del proyecto yan martinez
 
IHM Unidad 1: Introducción a la Interacción Hombre-Máquina
IHM Unidad 1: Introducción a la Interacción Hombre-MáquinaIHM Unidad 1: Introducción a la Interacción Hombre-Máquina
IHM Unidad 1: Introducción a la Interacción Hombre-Máquina
 
Dd014 presentación caso práctico
Dd014 presentación caso prácticoDd014 presentación caso práctico
Dd014 presentación caso práctico
 
Gerencia y Liderazgo
Gerencia y LiderazgoGerencia y Liderazgo
Gerencia y Liderazgo
 

Destaque

El Jardín Nazarí de Vélez de Benaudalla
El Jardín Nazarí de Vélez de BenaudallaEl Jardín Nazarí de Vélez de Benaudalla
El Jardín Nazarí de Vélez de Benaudallaguest481a8ca
 
Comunicacion social y periodismo
Comunicacion social y periodismoComunicacion social y periodismo
Comunicacion social y periodismousco
 
PresentacióN Comunitaria
PresentacióN ComunitariaPresentacióN Comunitaria
PresentacióN Comunitariakataxmedina
 
Dolor[1] 1
Dolor[1] 1Dolor[1] 1
Dolor[1] 1mesaru
 
Manual Acogida ICA Cataluña Mayo 2010
Manual Acogida ICA Cataluña Mayo 2010Manual Acogida ICA Cataluña Mayo 2010
Manual Acogida ICA Cataluña Mayo 2010Grupo ICA
 
Las Barras Bravas[1]X
Las Barras Bravas[1]XLas Barras Bravas[1]X
Las Barras Bravas[1]Xsandra
 
EducacióN BáSica En AméRica Latina
EducacióN BáSica En AméRica LatinaEducacióN BáSica En AméRica Latina
EducacióN BáSica En AméRica Latinaivantualombo
 
Presentacion De Taller De Bd
Presentacion De Taller De BdPresentacion De Taller De Bd
Presentacion De Taller De Bdjuanarmando2010
 
Vacaciones De Navidad[1]
Vacaciones De Navidad[1]Vacaciones De Navidad[1]
Vacaciones De Navidad[1]guest2dcbe1
 
Real Madrid
Real MadridReal Madrid
Real Madridjuan
 
Herri Aabian! (Abenduak19)
Herri Aabian! (Abenduak19)Herri Aabian! (Abenduak19)
Herri Aabian! (Abenduak19)guest41afe8
 

Destaque (20)

El Jardín Nazarí de Vélez de Benaudalla
El Jardín Nazarí de Vélez de BenaudallaEl Jardín Nazarí de Vélez de Benaudalla
El Jardín Nazarí de Vélez de Benaudalla
 
Comunicacion social y periodismo
Comunicacion social y periodismoComunicacion social y periodismo
Comunicacion social y periodismo
 
Calidad
CalidadCalidad
Calidad
 
Ester Ruiz
Ester RuizEster Ruiz
Ester Ruiz
 
Caza Ut14
Caza Ut14Caza Ut14
Caza Ut14
 
PresentacióN Comunitaria
PresentacióN ComunitariaPresentacióN Comunitaria
PresentacióN Comunitaria
 
Camila 6 a
Camila 6 aCamila 6 a
Camila 6 a
 
Dolor[1] 1
Dolor[1] 1Dolor[1] 1
Dolor[1] 1
 
Manual Acogida ICA Cataluña Mayo 2010
Manual Acogida ICA Cataluña Mayo 2010Manual Acogida ICA Cataluña Mayo 2010
Manual Acogida ICA Cataluña Mayo 2010
 
Andersen
AndersenAndersen
Andersen
 
Las Barras Bravas[1]X
Las Barras Bravas[1]XLas Barras Bravas[1]X
Las Barras Bravas[1]X
 
EducacióN BáSica En AméRica Latina
EducacióN BáSica En AméRica LatinaEducacióN BáSica En AméRica Latina
EducacióN BáSica En AméRica Latina
 
Presentacion De Taller De Bd
Presentacion De Taller De BdPresentacion De Taller De Bd
Presentacion De Taller De Bd
 
PresentacióN De Activ. Del Iat
PresentacióN De Activ. Del IatPresentacióN De Activ. Del Iat
PresentacióN De Activ. Del Iat
 
Expo1
Expo1Expo1
Expo1
 
La Estrategia Y Los Errores Historicos De La Administracion
La Estrategia Y Los Errores Historicos De La AdministracionLa Estrategia Y Los Errores Historicos De La Administracion
La Estrategia Y Los Errores Historicos De La Administracion
 
carros
carroscarros
carros
 
Vacaciones De Navidad[1]
Vacaciones De Navidad[1]Vacaciones De Navidad[1]
Vacaciones De Navidad[1]
 
Real Madrid
Real MadridReal Madrid
Real Madrid
 
Herri Aabian! (Abenduak19)
Herri Aabian! (Abenduak19)Herri Aabian! (Abenduak19)
Herri Aabian! (Abenduak19)
 

Semelhante a Desarrollo de software

AxpeNews, el boletín semanal de AXPE Consulting (17-04-2015)
AxpeNews, el boletín semanal de AXPE Consulting (17-04-2015)AxpeNews, el boletín semanal de AXPE Consulting (17-04-2015)
AxpeNews, el boletín semanal de AXPE Consulting (17-04-2015)AXPE Consulting
 
Desarrolladores o programadores
Desarrolladores o programadoresDesarrolladores o programadores
Desarrolladores o programadoresSoftware Guru
 
Criterios De Selección
Criterios De SelecciónCriterios De Selección
Criterios De Selecciónkeren123
 
Crtierios de Seleccio
Crtierios de SeleccioCrtierios de Seleccio
Crtierios de Selecciokeren123
 
Plan de gestion de recursos humanos
Plan de gestion de recursos humanosPlan de gestion de recursos humanos
Plan de gestion de recursos humanosZuleima Ruiz Ruiz
 
Ingenieria de software. (mitos, leyendas y factores)
Ingenieria de software. (mitos, leyendas y factores)Ingenieria de software. (mitos, leyendas y factores)
Ingenieria de software. (mitos, leyendas y factores)Marcos Omar Cruz Ortrega
 
3 Atos Solo Pruebas 2009
3 Atos Solo Pruebas 20093 Atos Solo Pruebas 2009
3 Atos Solo Pruebas 2009Pepe
 
Mejora de Procesos para Desarrollar Software Mejor
Mejora de Procesos para Desarrollar Software MejorMejora de Procesos para Desarrollar Software Mejor
Mejora de Procesos para Desarrollar Software MejorPablo F. Sanchez
 
Proyectos Informaticoa22222
Proyectos Informaticoa22222Proyectos Informaticoa22222
Proyectos Informaticoa22222Irsyal Renaldi
 
Proyectos Informaticoa
Proyectos InformaticoaProyectos Informaticoa
Proyectos InformaticoaIrsyal Renaldi
 
Conceptos sobre Gestión de Proyectos de Software
Conceptos sobre Gestión de Proyectos de Software Conceptos sobre Gestión de Proyectos de Software
Conceptos sobre Gestión de Proyectos de Software Joselito B
 
Ingeniería de Software
Ingeniería de Software Ingeniería de Software
Ingeniería de Software Luis Valeriano
 
Licenciatura en desarrollo de software
Licenciatura en desarrollo de softwareLicenciatura en desarrollo de software
Licenciatura en desarrollo de softwareignacio palacios
 

Semelhante a Desarrollo de software (20)

AxpeNews, el boletín semanal de AXPE Consulting (17-04-2015)
AxpeNews, el boletín semanal de AXPE Consulting (17-04-2015)AxpeNews, el boletín semanal de AXPE Consulting (17-04-2015)
AxpeNews, el boletín semanal de AXPE Consulting (17-04-2015)
 
Curso de Gestión de Proyectos de Software
Curso de Gestión de Proyectos de SoftwareCurso de Gestión de Proyectos de Software
Curso de Gestión de Proyectos de Software
 
Mitos del software
Mitos del softwareMitos del software
Mitos del software
 
Desarrolladores o programadores
Desarrolladores o programadoresDesarrolladores o programadores
Desarrolladores o programadores
 
Criterios De Selección
Criterios De SelecciónCriterios De Selección
Criterios De Selección
 
Crtierios de Seleccio
Crtierios de SeleccioCrtierios de Seleccio
Crtierios de Seleccio
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
Plan de gestion de recursos humanos
Plan de gestion de recursos humanosPlan de gestion de recursos humanos
Plan de gestion de recursos humanos
 
Ingenieria de software. (mitos, leyendas y factores)
Ingenieria de software. (mitos, leyendas y factores)Ingenieria de software. (mitos, leyendas y factores)
Ingenieria de software. (mitos, leyendas y factores)
 
Desarrollo de software app
Desarrollo de software appDesarrollo de software app
Desarrollo de software app
 
3 Atos Solo Pruebas 2009
3 Atos Solo Pruebas 20093 Atos Solo Pruebas 2009
3 Atos Solo Pruebas 2009
 
Mejora de Procesos para Desarrollar Software Mejor
Mejora de Procesos para Desarrollar Software MejorMejora de Procesos para Desarrollar Software Mejor
Mejora de Procesos para Desarrollar Software Mejor
 
Proyectos Informaticoa22222
Proyectos Informaticoa22222Proyectos Informaticoa22222
Proyectos Informaticoa22222
 
Proyectos Informaticoa
Proyectos InformaticoaProyectos Informaticoa
Proyectos Informaticoa
 
Conceptos sobre Gestión de Proyectos de Software
Conceptos sobre Gestión de Proyectos de Software Conceptos sobre Gestión de Proyectos de Software
Conceptos sobre Gestión de Proyectos de Software
 
¿Qué es un DevOps ?
¿Qué es un DevOps ?¿Qué es un DevOps ?
¿Qué es un DevOps ?
 
A1 u1 tablas comparativa
A1 u1  tablas comparativaA1 u1  tablas comparativa
A1 u1 tablas comparativa
 
Ingeniería de Software
Ingeniería de Software Ingeniería de Software
Ingeniería de Software
 
Licenciatura en desarrollo de software
Licenciatura en desarrollo de softwareLicenciatura en desarrollo de software
Licenciatura en desarrollo de software
 
Mitos del software
Mitos del softwareMitos del software
Mitos del software
 

Mais de Universidad Politécnica Territorial del estado Aragua (10)

Entendiendo Linux (parte II)
Entendiendo Linux (parte II)Entendiendo Linux (parte II)
Entendiendo Linux (parte II)
 
Como ser programador
Como ser programadorComo ser programador
Como ser programador
 
Entender linux
Entender linuxEntender linux
Entender linux
 
Entender linux
Entender linuxEntender linux
Entender linux
 
Sociedad del conocimiento
Sociedad del conocimientoSociedad del conocimiento
Sociedad del conocimiento
 
Situaciones curiosas
Situaciones curiosasSituaciones curiosas
Situaciones curiosas
 
Que enseñar a los programadores
Que enseñar a los programadoresQue enseñar a los programadores
Que enseñar a los programadores
 
Sociedad del conocimiento
Sociedad del conocimientoSociedad del conocimiento
Sociedad del conocimiento
 
Catedrales, Bazares y Ayuntamientos por Alan Cox
Catedrales, Bazares y Ayuntamientos por Alan Cox Catedrales, Bazares y Ayuntamientos por Alan Cox
Catedrales, Bazares y Ayuntamientos por Alan Cox
 
Alan cox, Catedrales, Bazares y Ayuntamientos
Alan cox, Catedrales, Bazares y AyuntamientosAlan cox, Catedrales, Bazares y Ayuntamientos
Alan cox, Catedrales, Bazares y Ayuntamientos
 

Desarrollo de software

  • 1. LA CARRERA PROFESIONAL DEL DESARROLLADOR DE SOFTWARE EN VENEZUELA Prof. Dr. Jorge Domínguez Chávez Coordinador de la Especialización en Sistemas RESUMEN En este trabajo se exponen las características que debe tener un   desarrollador   de   software,   los   niveles   de   acenso   en   su   carrera profesional   y   se   discuten   algunos   puntos   como   las   metodologías   de desarrollo, la visión actual del mercado de trabajo.  Descriptores: desarrollo, software, metodologías, métrica V3. CMM La   carrera   profesional   del   desarrollador   de   software   en Venezuela,  al igual que en muchos países,  está marcada directamente por la oferta y demanda laboral. Si bien el mercado primordialmente ha estado  basado en la consultoría (alquiler de mano de obra)  y  ha sido una enorme fuente de negocio y beneficios para muchas empresas y empresarios, también ha generado una distorsión en el mismo mercado, donde la calidad y el talento son  factores  secundarios, a favor de los años de experiencia que son “vendibles”, y por ende, imputables a un proyecto. ¿Qué hacen en realidad los desarrolladores y/o programadores de   software?   Son   las   mentes   creativas   detrás   de   los   programas informáticos. Algunos de estos programadores desarrollan aplicaciones para que otras personas ejecuten tareas específicas en la computadora u   otro   dispositivo   informático.   Otros,   desarrollan   los   sistemas operativos   que   gestionan  el  hardware   y   controlan  las  redes informáticas.
  • 2. ¿Cuál es el entorno de trabajo? Muchos de los desarrolladores de   software   trabajan   para   empresas   que   diseñan   sistemas   de computación, aplicaciones web o software a la medida. Otros, trabajan en   la   industria   desarrollando   aplicaciones   industriales,  como   el petroleo, la minería, la robótica o la medicina.  Pero la mayoría de estos programadores  trabajan  por su  cuenta  (profesional  libre)   40 horas a la semana y otros, en el peor de los casos, trabajan más de esas 40 horas por semana, desarrollando aplicaciones bajo demanda. ¿Cómo   llegar   a   ser   desarrollador   de   software?   Normalmente, este profesional tiene una licenciatura o ingeniería en computación y sólidas habilidades en la programación de computadoras. ¿Cuál es la tendencia laboral? Los empleos en desarrollo de software tienen una proyección de crecimiento de  13% anual, más que la   media   en   otras   profesiones.   La   razón   de   esto   es   la   demanda incremental en software de aplicaciones. Los escalafones profesionales del desarrollador son: • Becario  o pasante. Figura  poco utilizada  ya  que  representa un costo importante en formación y tiene el riesgo de no aportar ningún   beneficio.   A   los   más   competentes   se   les   integra  a   la plantilla, o tienden a irse a otro trabajo mejor pagado porque ya tienen práctica laboral. • Programador   junior.   Prácticamente   un   becario   en   plantilla   y pagado. El sueldo es bajo y no se debiera esperar que sea muy productivo. Se le introduce en equipos o trabajos para que se vaya formando. • Programador.   A   partir   de   uno   o   dos   años   de   experiencia.   Para muchas empresas debe ser productivo e integrarse en equipos. • Programador senior. A partir de los tres años, se considera que sabe enfrentarse a prácticamente cualquier  problema  y sacar un proyecto adelante. • Analista programador. Un programador senior,  con  cinco años de experiencia,   es   capaz   de   realizar   análisis   funcionales,   tomar decisiones por si mismo o, incluso, ser el líder de un equipo. • Analista.   Un   profesional   con  amplia  experiencia   para   elaborar los análisis funcionales de las aplicaciones. Es el primer paso hacia   el   abandono   del   “picar   código”,   es   imprescindible   un amplio bagaje técnico. • Arquitecto. Personaje que se utiliza en grandes proyectos que se ocupa de la descripción y análisis arquitectónico del proyecto.
  • 3. Elabora   documentación   técnica,   toma   decisiones   y   basa   su conocimiento   no   sólo  en   la   experiencia   empírica   sino   en   el estudio de la ciencia de la computación. • Jefe de Proyectos (no técnicos). Es responsable del departamento técnico  o  su  Director  y  gestiona la productividad del equipo y reporta a la Dirección o gerencia. Vemos  que  el   desarrollo   de  software   es  una   labor  compleja, intelectual,   profesional   basada   en   el   estudio,   el   esfuerzo,   el talento y la capacidad. Así,   tenemos   que   un   programador   con   talento   puede   hacer labores de Analista o arquitecto teniendo tres años de experiencia; o sí tiene un título universitario desde hace un año puede ser analista funcional. También, hay programadores sin talento para el desarrollo, pero con la titulación exigida para el puesto. Cuando empezamos a “picar código”  tenemos en cuenta que, en la mayoría de los casos, que el desarrollo de software es un trabajo en equipo. Y que en cuanto hay más de tres personas en el equipo, hablamos de una multitud. Por lo cual nuestra propia  condición  nos conduce   a   buscar   un   líder   natural   que   ponga   orden   al   caos   que   se puede generar. Para ello, se  eligen  a los mejores profesionales o los más reconocidos (que no es lo mismo) para gestionar los equipos. Estos son llamados líderes de equipo y jefes de proyectos técnicos. Ambos, pican   código.   Quizá   no   todos   los   días,   pero   son   parte   de   la construcción del software. La diferencia principal es que el primero gestiona al equipo desde un punto de vista técnico puro y el segundo hace labores de gestión y reporta a la gerencia o dirección. Estos   cargos  requieren   de   una   motivación   especial   por   el trabajo. El profesional debe tener talento para gestionar, coordinar y liderar personas  y proyectos. Además,  tener  el  conocimiento y  la experiencia   para   que   el   equipo   lo   respete   técnicamente.   En   este escalón el poder de autoridad es muy pequeño y no se puede ocultar la ignorancia técnica detrás de la burocracia de la gestión. Al pasar a  Gestión de proyectos,  el profesional  deja de ser un   desarrollador   de   software,  aunque   conserve   esa   habilidad  por afición   o  por  estudio.  Pienso  que  el   camino   más   completo   para alcanzar  estos  puestos  es viniendo  del  desarrollo, incluso más que provenir de Tecnología de Información.
  • 4. Hay profesionales que vienen de otras  áreas y llegan a los puestos de gestión por una certificación PMI1, PMP2, Prince23, etc., los cuales, si no han tenido conocimiento técnico sobre el desarrollo de   software,   tienen   un   gran   riesgo   de   verse   abocados   al   fracaso   a causa de las singularidades de los proyectos informáticos. Nota.   Curiosamente   estas   certificaciones   NO   mencionan   la palabra software o desarrollo de software. Al   llegar   a  Jefe   de   Proyecto   (no   técnico),   el   principal objetivo   es   el   conseguir   que   la   productividad   de   los   equipos   se mantenga o mejore. Debe reportar de forma entendible a la Dirección. Esto último (reportar a la dirección), que parece trivial, no lo es. Ya que la diferencia de terminología y de conceptos entre los que hacen las cosas y los que dirigen es, simplemente, abismal. Explico,   durante   el   desarrollo   de   software   debemos   estar centrados  en los procesos, las metodologías, en las métricas, en la trazabilidad y en la madurez de los equipos. Olvidándote, por  falta de tiempo, del liderazgo técnico y priorizando el departamento.  Es frecuente que la palabra proceso en diferentes ámbitos se entienda  como   “gestión   por   procesos”,   “mejora   de   procesos”, “automatización   de   procesos”,  etc.,   “proceso”   lleva   a   pensar   en entornos   industriales   pero   también   existen   procesos   en   empresas   de servicios. Entonces  ¿Qué   es   un   “proceso”?  ¿En   qué   consiste?   ¿Hay procesos   en  nuestra  empresa?   Si   vamos   al   Diccionario   de   la   Real Academia de la Lengua Española, vemos que proceso es:  “Conjunto de las   fases   sucesivas   de   un   fenómeno   natural   o   de   una   operación artificial “,  en otras palabras, un proceso es una serie de  tareas, que   tienen   como   origen   unas  entradas  y   como   fin   unas  salidas.   El objetivo del proceso es aportar valor en cada etapa. Pero… ¿Valor a quién,  a qué? Fácil, valor para el cliente. Si un proceso no añade valor,   lo   eliminamos,   siempre   que   sea   posible.   Además,   el   proceso tiene propósitos, objetivos e indicadores para mejorar el desempeño. 1 Es un estándar desarrollado en los Estados Unidos de Norteamérica, con el mercado americano en mente, PMI desarrolló su metodología denominada PMBOK la cual va en su cuarta versión y cuenta con esquemas de capacitación y certificación. 2 PMP (Project Management Professional) es un must que todo gerente de proyecto debe tener si quiere ascender en su carrera y gestionar proyectos cada vez más importantes, y debe enfocarse en obtener la referida certificación, como un requisito para aquello. 3 Estándar desarrollado en Gran Bretaña, por OGC, oficina del gobierno británico, su foco original fue el sector público, y ha sido adoptada en otras industrias, tiene una fuerte presencia en Europa y en las zonas de influencia del Reino Unido.
  • 5. Un proceso informático puede entenderse como un programa en ejecución. Formalmente, un proceso es "Una unidad de actividad que se caracteriza  por  la  ejecución  de  una  secuencia de  instrucciones,  un estado actual, y un conjunto de recursos asociados del sistema" 4. Es decir,   hay   una   entrada   de   datos,   un   proceso   y   una   salida. Fundamentalmente es lo siguiente: Análisis + Diseño + Programación. También   consideramos  Capacidad   +   Deseos   superación   +   Aprendizaje constante   +   Trabajo   inteligente   +   Lugar   y   Momento   adecuado.  Los cuales  son   buenos   elementos   para   lograr   objetivos.  NOTA:   mencioné trabajo inteligente, porque trabajar duro (como burro) es otra cosa. Para   desarrollar   un   software   o   programa   empleamos   una metodología. Aquí, podríamos iniciar un debate sobre la metodología de   desarrollo  a   seguir  ­   cascada,   ágil,   delgado,   espiral   extremo, unificado, etc. En este momento, suponemos que el método que usamos es el correcto y que los otros, sin importar su experiencia previa, están   equivocados.   Algunos,  tienen  una   caja   de   herramientas   de métodos para recurrir a ella, otros dicen que el mundo debe adaptarse a un nuevo estado del arte de la técnica.  Pero,  ¿Hay una forma práctica de construir  un  buen software sin este debate? No hay respuesta corta ni fácil. Usa la metodología que te haga sentir bien y cuando  no sea útil  para el equipo en su conjunto, la cambias sin debatir el tema, y regresas sobre el proceso en   su   contexto.   En   un   proyecto   de   software   el   reloj   siempre   está corriendo y el debatir sobre un meta­tema que no tiene una respuesta correcta, ni única, no es la mejor manera de usarlo. No existe una metodología   adecuada,  como  tampoco   existe   un   convenio   para   la codificación   correcta,   el   lenguaje   de   programación   correcto,   o   un diseño de interfaz de usuario correcto. El contexto marca la pauta. Hablamos   de   experimentar   con   el   código   (o   con   los requerimientos); toma algunas decisiones rápidas sobre cómo construir el   software   que   necesitas   y   ajustate  a  ellas.   Ajusta  el   método  al obtener los resultados del proyecto en el espectro de tu equipo y de negocios para sustentar los cambios. No discutas el meta­debate sobre la forma de hacer el trabajo que tienes que hacer, consumes tiempo. Desde   los   primeros  tiempos   del   desarrollo  de   software,   los profesionales del estado  del  arte han creado  métodos  formales para especificar e implementar software y convertirse en ingenieros. Estos métodos fueron influenciados por la naturaleza física de los grandes proyectos de  ingeniería  como  planos  de  construcción,  puentes  o  los propios computadores (procesos de ingeniería maduros). 4 Stallings 5º edición pag. 109
  • 6. El   software   desarrollado  según   estos   métodos  puso   en   claro para muchos que la parte blanda  (soft)  de la ingeniería de software potencialmente perdería su enfoque flexible, el desarrollo se volvió burocrático.  La   industria   del   software,   como   cualquier   otra industria,   requiere   de   productos   de   calidad,   de   buen   precio   y   a tiempo. Las empresas requieren de software rápido. Con tan increíble demanda   de   software,   no   es   de   extrañar   que   a   muchos   les   gustaría hacer más cosas en menos tiempo y mirar hacia un enfoque metodológico flexible  y  versátil  para hacerlo.  La oportunidad de  una  recompensa para   la   construcción   de   un   gran   software   como   parte   de   un   gran negocio   está   mejor   que   nunca.   La   flexibilidad  y   versatilidad  del desarrollo   de  software   es   un   regalo   que   a   los   ingenieros   de   otras disciplinas le encantaría tener, así que hay muchas razones para que el desarrollo de software sea menos burocrático y rígido. ¿Qué   metodología   usar   para   el   desarrollo   de   un   Software? ¿estructurado?   ¿orientado   a   objetos?   ¿rup?   ¿xp?   ¿cascada?   ¿ágil? ¿scrum?  Sí  realizamos  un   software   de   manera   rígida,  según  los requerimientos  inicialmente  solicitados, y en la etapa final (etapa de prueba), se solicita un cambio, se hace difícil realizarlo, pues al   hacerlo,   altera   muchas   cosas   que   no   habíamos   previsto,  siendo éste, uno de los factores que retrasa un proyecto y por tanto, el no cumplir   con   el   cambio   solicitado   y   el   malestar   del   cliente   por   no tomar en cuenta su pedido.  Por inexperiencia los usuarios dejan de mencionar cosas, pese a que se  mostró  un  prototipo  del  software en  la  etapa inicial del proyecto, y lo hacen en la etapa de prueba. Los   proyectos   en   problemas   salen   del   presupuesto,   tienen importantes retrasos, o simplemente no cumplen con las expectativas del cliente.  Limitemos nuestro enfoque a los extremos del espectro de este diálogo,   aunque   no   necesariamente  sea   así  en   la   práctica.   Vamos   a llamar a los extremos cascada y ágil. Los métodos cascada son mal vistos, son lentos, burocráticos, micro administrados, incrementales, alejado de clientes y mercados, entre   otros.   Por   el   contrario,   los   métodos   ágiles   son   la   manera positiva   de   comenzar   un   proyecto,   implican  rapidez,   creatividad, energía, activista,  unido a  los clientes y mercados, y más. En cada extremo  existen   defensores  de implementar  uno de esos  métodos.  Las implementaciones   incluyen   plantillas   de   documentos,   funciones   y responsabilidades, agendas de reuniones y con frecuencia herramientas de software específicas para soportar el flujo de trabajo.
  • 7. No todo es negativo o positivo en cada extremo.  Un proyecto de   cascada   es   reflexivo,   una   arquitectura   planificada,   y   procede, desde la planificación hasta la ejecución final como un ballet. Por otro lado, los proyectos ágiles son capaces de sustituir el caos y la actividad en cualquier forma de progreso "que enviamos cada semana", incluso se mueve hacia adelante o hacia atrás y con los clientes. Por   supuesto   que   estos   extremos   no   son   universales,  ni necesariamente,  ciertos.  Así  que  es  mejor centrarse  en  la realidad del código escrito, la prueba, el despliegue / envío y no depurar el proceso ... prematuramente. ¿Has dedicado tiempo y esfuerzo a revisar y profundizar en la metodología MÉTRICA V3? La cual, según la Wikipedia es “..Métrica v3 es   una   metodología   de   planificación,   desarrollo   y   mantenimiento   de sistemas de información. Promovida por Ministerio de Administraciones Públicas del Gobierno de España para sistematización de actividades del   ciclo   de   vida   de   los   proyectos   software   en   el   ámbito   de   las administraciones públicas...” Y lo leemos, lo dice la Wiki y lo creemos. En el mundo real, esta metodología no existe,  no se utiliza. De hecho, pocas personas conocen qué va, cómo se implementa, cómo funciona. Para ser sinceros, el hecho de que no se utilice, es algo que agradecemos, porque está desfasada   con   respecto   a   las   ágiles.   Lo   que   no   entendemos  es   cómo grandes   proyectos   de   implantación   a   nivel   nacional,   no   posean documentación alguna: entre amigos, para saber qué es lo que hace una determinada aplicación, tenemos que leernos su código fuente. Ninguna   empresa   tiene   completamente   documentadas   sus aplicaciones,   ni   IBM,   ni   Oracle,   ni   Microsoft   que   disponen   de recursos   humanos,   tiempo   y   dinero   lo   hacen.   Siempre   los documentadores van detrás de los desarrolladores. Trazabilidad.  En   la   gestión   de   requerimientos   (REQM)   se pretende el control sobre los mismos. Los requerimientos deben estar bien   identificados   y   ser   comprensibles   para   las   partes   que   tengan relación   con   ellos.   Además,   en   cualquier   momento,   saber   de   donde provienen   los   requisitos   y   la   relación   entre   los   de   alto   y   bajo nivel.  También, los requisitos pueden ser entrada de otras áreas de proceso. Es recomendable disponer de trazabilidad entre necesidades de   información   y   los   objetivos   asociados.   Pretendemos   responder   a ¿Para qué vamos a medir esto? O ¿Qué se mide con esto?  Otro  beneficio  es   que   los   cambios   efectuados   sobre   los requisitos   sean   controlados   y   no   afecten   a   la   integridad   de   lo   ya definido.
  • 8. Realizamos la trazabilidad con una simple tabla donde en un eje   tenemos   las   necesidades   de   información   y   por  en   el  otro,   los objetivos. así, rápido, sabemos la trazabilidad entre ambas cosas.  Madurez de los equipos. Está compuesta por: Habilidades   de   equipo.  El   equipo   puede   estar   formado   por profesionales   experimentados   que   trabajan   en   territorio   familiar. Podrían estar haciendo su enésimo proyecto juntos o éste podría ser el   momento   de   una   n­ésima   construcción   de   un   proyecto   similar   o actualización. Pero deben recordar que ningún proyecto de desarrollo de software es igual. Número   de   ingenieros   /   tamaño   del   equipo.  El  número   de personas   en   un  equipo   influye  en   la  evolución  del   desarrollo.  No debe incluir ingenieros por "tradición" o "convención". Cuestionar al personal calificado  es bueno, pero también  debe hacerlo  teniendo en cuenta  el contexto  del  equipo.  Algún  recién  llegado  puede sentirse restringido,  si proviene de  un equipo pequeño. En un equipo grande hay probablemente menos uniformidad de la que se pueda pensar, y esta diversidad es una parte importante. Debes delegar  completamente en el equipo la responsabilidad de decidir la mejor manera de trabajar para ser lo más productivos posibles y darle protagonismo a las reuniones que realicen a lo largo del proyecto.    realidad La     Como experiencia personal, siempre echaras de menos el hacer “magia”. Por ello recomiendo mantener la programación aunque sea como un   “hobby”,  estarás  al   día  sobre  las   herramientas   y   evolución   de nuestra profesión. Así   mismo,   es   imprescindible   comunicarte   en   ingles,   tener conocimientos   formales   de   gestión   de   proyectos   y   utilizar   traje   y corbata. Saber hablar en público, escribir sin errores de ortografía, saber   redactar   en   lenguaje   técnico;   así  motivar   a   las  personas  y percibir cuando hay que sacar el látigo y cuando hay que tener mano izquierda. Crece según tu ambición Una de las fuerzas más potentes de motivación laboral es el sueldo. Bueno, realmente esto es una generalidad  tosca  que da para escribir   uno   o   más   artículos   relacionados   con   el   tema   de   la motivación.
  • 9. Sí tuviese que dar un consejo a un becario o a un profesional que no sabe si merece la pena el esfuerzo de aprendizaje para escalar en su carrera profesional le diría: sigue tu ambición. Vivimos una realidad cambiante, que ahora mismo te dice algo tan simple como que si quieres ganar más dinero debes ir pasando de funciones   técnicas   a   funciones   de   gestión.   Para,   finalmente, olvidarte de escribir código. También ten en cuenta que no todos podemos dirigir/gestionar, lo cual significa que tarde o temprano se dará el valor que tiene el conocimiento y experiencia de un desarrollador de, por ejemplo, 20 o 25   años   picando   código.   Y   termina   siendo   una   carrera   profesional desligada a la gestión. En   cualquier   caso,   cuando   has   tenido   la   experiencia   de desarrollar   aplicaciones   de   software,   la   gestión   de   equipos   o departamentos   de   programación  te   brinda   grandes   satisfacciones profesionales y personales.