Archivo

Archivo para la Categoría "Gestion de Proyectos"

Más allá de las metodologías de desarrollo

diciembre 8, 2008 1 Comentario

Publicado originalmente el: 13-10-2004

Probablemente usted ha estado desarrollando proyectos de software por un periodo largo de tiempo, proyectos en su casa, como: planear una fiesta, un baile, etc.; o en el trabajo, como: crear un nuevo software, etc.

Para mucha gente trabajar en proyectos IT es una experiencia frustrante. Los miembros del equipo no se comunican o no se ponen de acuerdo en como hacer las cosas, los deadlines no se cumplen, el cliente queda molesto, etc.

En este artículo hablaremos sobre los proyectos de software y como poder administrarlos. Trataremos de encontrar respuesta a preguntas comunes que nos solemos hacer cuando algo no resulta como es debido en el proyecto en el que participamos, como:

· ¿Puedo yo administrar mi proyecto IT?

· ¡Tengo el mejor grupo de programadores! ¿pero es eso suficiente?

· Estamos usando esta novedosa metodología de desarrollo de software exitosa en N lugares y N empresas importantes. ¿Por que estamos fallando entonces?


Estas preguntas nos suelen rondar por la mente cuando participamos en algún proyecto de software en la que encontremos dificultades.

Que es Project Management

Podemos decir que Project Management es un conjunto de tareas, métodos y conocimientos que al ser aplicados ayudan a dar mejores resultados a su proyecto. Nos da un conjunto de pasos definidos con los cuales podemos llevar paso a paso cada tarea que involucra un proyecto, desde su concepción hasta su finalización; a diferencia de la mayoría de metodologías de desarrollo que solo se centra en el proceso de creación del software, más no de los aspectos de monitoreo, equipos, presupuestos, cronogramas, etc.

De eso se trata Project management, no solo de ver como arreglar la sala de su hogar para organizar la fiesta y tener la lista de canciones que se tocará, sino también de ver cuanto costará cada cosa: equipos de sonido, golosinas, bebidas; a quienes invitaré, cuanto durará, como puedo minimizar esos gastos, que medidas de seguridad tomaré, como evaluaré si fue una fiesta exitosa, etc.

Tipos de Project Management

Hay mucho métodos para Project management, cada uno tienen su propio conjunto de pasos a seguir. Pero podemos encontrar 2 grupos importantes:

· Directive PM:

Representa el antiguo Project management. Asume que el Project manager es quien lo puede hacer todo: el planeamiento y control del proyecto. El manager hace el plan y luego delega las tareas a los miembros del equipo. Luego supervisa que cada uno haga su trabajo. Se ve claramente que a comunicación en este estilo de Project management es entre el manager y el miembro el equipo.

Los problemas que presente este tipo de Project management son varios:

· Los miembros del equipo tiene poca comunicación

· No entienden el proyecto en su totalidad y como cada parte encaja en el todo

· Muy poco compromiso con el proyecto

· Participatory PM

Esta es la nueva modalidad de Project management en el cual el manager facilita las tareas de administración del proyecto, liderando al equipo a través de los pasos de planeamiento del proyecto.

Cada miembro del equipo monitorea el proyecto y la comunicación se da mas horizontalmente y en forma más participativa entre los miembros del equipo y manager.

Las ventajas de este estilo de Project management son:

· Cada miembro tiene un entendimiento completo del proyecto

· Se generan más ideas para el proyecto

· Se toman mejores decisiones

· La participación mas activa crea mayor compromiso con el proyecto

· La moral del equipo se eleva

Roles en Project Management

· Sponsor:

Es la persona que financia el proyecto, la cual decide la puesta en marcha del proyecto y quien elije al o los project managers. El sponsor es el encargado de establecer las metas que se deben obtener con el proyecto, objetivos financieras, etc.

· Project Manager

Es la persona que esta al frente del proyecto, quien se encarga de liderar y coordinar las tareas del proyecto y quien elije a los integrantes del equipo para la realización del proyecto.

· Resource Managers

Es la persona encargada de brindar todas las facilidades para la ejecución del proyecto. Esto abarca recursos humanos así como recursos de hardware, software, oficinas, bebidas, breaks, etc., todo lo necesario para mantener un buen ambiente de trabajo tanto técnico como emocional.

· Team Members

Son los miembros del equipo de desarrollo, quienes estarán a cargo de la realización del proyecto. Están dirigidos por el Project manager, con quien tiene que reportarse y brindar sus informes de progreso. Dentro de los miembros del equipo suele haber un líder de equipo, quien realiza tareas de apoyo al resto del equipo y sirve también como colaborador del Project manager.

· Customer

Es la persona u empresa la cual solicito el proyecto y la cual evaluará los beneficios del resultado final del proyecto; en el caso del mundo IT esto seria un software o un servicio IT.

Pasos hacia un proyecto IT exitoso

Pocos pasos no quiere decir desarrollo rápido, los pasos adecuados se deben dar para que un proyecto sea exitoso y de desarrollo rápido.

Mayormente se consideran los siguientes pasos:

· Iniciación (charter, documento de visión)

· Planeamiento (documento de plan de proyecto)

· Ejecución (metodología de desarrollo)

· Finalización (valoración Post-Mortem)

Pero podemos desglosar estos pasos o más aun, mejorarlos para darles un enfoque mas completo para un método de desarrollo rápido y eficaz de un proyecto IT:

· Planeamiento

· Valoración de riesgos

· Desarrollo de un equipo adecuado

· Evitar los errores clásicos

· Involucrar al usuario en todo el desarrollo (extreme programming)

· Una metodología adecuada de software

· Valoración post-mortem

Los pilares fundamentales de todo proyecto IT

· Planeamiento

Esta es la fase primordial en todo proyecto, puesto que sin un planeamiento adecuado, es muy difícil tener un proyecto exitoso.

En esta fase se establece los límites, restricciones, objetivos y prioridades del proyecto. Estos son establecidos por el sponsor en un documento de planeamiento llamado “charter”

· Valoración de riesgos

Es muy importante también que usted haga un plan de riesgos. Esto se hace mediante un análisis de riesgos en el cual se establecen las posibles situaciones en las que el proyecto podría ser afectado. A la vez se establece las acciones a tomar en caso se concreten dichas situaciones

Básicamente este plan de riesgos puede ser realizado en una hoja de Excel donde usted los defina

  • Defina sus riesgos

· En una escala determinada, establezca la posibilidad de que se cada uno de ellos

· En una escala determinada, defina que tan grande sería el impacto sobre el proyecto

· Defina e indique cuales son los eventos indicadores de que el riesgo se ha concretado

· Defina el plan de contingencia para cada uno de ellos.

Aunque usted no lo crea, si usted tiene este plan bien definido, puede ayudarle extraordinariamente en el desarrollo del proyecto, puesto que usted y su proyecto estará preparado para las contingencias más comunes y probables.

· Desarrollo de un equipo adecuado

El factor humano es muy importante. Es la gente quien realiza las tareas y los procesos. Depende de la gente el terminar con las tareas establecidas, y de ellos y de su experiencia depende muchas veces el éxito de un proyecto.

Como manager, se debe centrar en buscar a gente más adecuada para su proyecto, con el perfil profesional adecuado, con la experiencia requerida para el proyecto, con la suficiente motivación para poder afrontar un proyecto IT y con las características emocionales suficientes para un trabajo armonioso en un equipo de desarrollo. En otras palabras busque gente no solo que por su trayectoria o amplios conocimientos, sino también fíjese en su personalidad. Puede usted tener un excelente programador pero si se lleva mal con los demás miembros del equipo, tendrá usted mas de un dolor de cabeza.

La química, el entendimiento, la sinergia en un equipo es tan importante como los conocimientos, experiencia y trayectoria.

Otro punto importante es evitar los excesos laborales. EL equipo puede trabajar bajo presión y con devoción, pero sin llegar a la exageración y explotación. Déle el trato adecuado a su equipo de desarrollo, establezca un buen ambiente laboral y tenga la certeza de que este equipo será más productivo y comprometido.

· Evitar errores clásicos

También es importante que a lo largo del proyecto no se cometan errores. O al menos tratar de minimizarlos al máximo.

Hay un sin numero de errores “clásicos” o comunes que se suelen cometer en los proyectos IT. Si usted les “pone el ojo” a estos errores clásicos para que no ocurran, con ese solo hecho conseguirá mejorar el management y proceso de desarrollo de su proyecto.

A continuación la lista de errores más frecuentes encontrados en una diversidad de proyectos:

Errores relacionados con la gente

· Poca motivación

· Empleados de poca calidad

· Empleados problemáticos

· Agregar mas programadores a un proyecto ya retrasado

· Oficinas ruidosas y aglomeradas

· Fricciones entre los developers y el cliente

· Expectativas poco realistas

· Falta de un manager efectivo para el proyecto

· Falta de participación del staff involucrado

· Falta de participación del usuario

· Politiquerías antes que desarrollo

· “Ilusiones”


Errores relacionados con los procesos

· Planeamiento demasiado optimista

· Falta de administración de riesgos

· Falla en los contratos

· No hay suficiente planeamiento

· Abandono del planeamiento bajo presión

· Pérdida de tiempo al inicio del proyecto

· Saltarse las tareas iniciales

· Diseño no adecuado

· Falta de supervisión

· Falta de estimaciones


Errores relacionados con el producto

· Requerimientos excesivos

· Cambio de requerimientos

· Developers muy meticulosos


Errores relacionados con la tecnología

· Síndrome de la panacea

· Sobre-estimación de las ventajas del uso de una nueva herramienta

· Cambio de herramientas a mitad del proyecto

· Falta de un control de código fuente automático

· Involucrar al usuario en todo el desarrollo

El usuario es quien finalmente evaluara y aprobara o desaprobara el proyecto terminado. Por eso usted debe siempre de involucrar al usuario en la definición del proyecto y en los subsiguientes pasos. Esto evitará “malos entendidos” y evitará perder tiempo en re-hacer trabajo.

Debe usted establecer canales y vías de comunicación constante con el cliente para poder brindarle la mayor información posible del avance del proyecto para que éste pueda valorarlo y dar su feedback, que es la base para hacer los reajustes sin algo no estuviese del todo bien. De lo contrario, si faltara comunicación con el cliente su equipo podría perder días, semanas y hasta meses valiosos haciendo algo que al usuario finalmente no le gustó.

Esto es la base de lo que se conoce como “Extreme Programming”, que basa su metodología en la constante retroalimentación del usuario en el proceso de desarrollo.

· Metodología de Desarrollo

El Project management hace uso de las metodologías de desarrollo para la ejecución de un proyecto. Esta nos dirá la forma en la que ejecutaremos el proyecto, con que técnicas.

Project management quiere decir gestionar todos los procesos de un proyecto, no solo ejecutar el proyecto. La gestión inicial del proyecto es esencial para una correcta ejecución del mismo bajo una determinada metodología. Si se hizo o salto las fases de planeamiento y gestión inicial, tenga por seguro que su proyecto sufrirá en todo el camino que le quede por recorrer.

Se debe considerar en la medida que sea posible una metodología de desarrollo que sea orientado al usuario, lo que, como ya dijimos anteriormente, se trata de abrazar el concepto principal de “extreme programming”. En otras palabras una metodología de desarrollo que permita al usuario “visualizar” el avance que esta teniendo el proyecto. Esto dependerá lógicamente del tipo de proyecto que se realice.

Recuerde que el usuario no le importa cuantas líneas de código usted haya escrito, ni que tan elaborado y complicado haya sido la algoritmia de determinado modulo de código. Lo que al usuario realmente le importa y es lo que le pedirá es ver algo tangible que el pueda utilizar.

Algunas de las metodologías que usted puede considerar son:

· MSF

· RUP

· XP

· Prototipado evolutivo

· Entrega por etapas

· Entrega evolutiva

· Cascadas

· Valoración Post-Mortem

En esta valoración final, se trata de medir o establecer si el proyecto fue exitoso o no. Un proyecto es exitoso cuando el cliente queda satisfecho con el producto y cuando ha habido un aprendizaje provechoso al final de la ejecución del proyecto.

El cliente quedará deslumbrado cuando el producto excede sus expectativas. Y se desilusionan cuando obtienen menos de lo que esperaban. Estas expectativas pueden ser manejadas.

Una buena práctica es prometer menos de lo que se dará finalmente al cliente. Si los clientes esperan menos de lo que finalmente obtendrán, ellos quedarán deslumbrados con el producto. Pero si ellos esperan más de lo que obtienen, ellos no quedarán contentos. En ambos casos, obtienen lo mismo producto; la única diferencia es lo que esta en la mente del cliente sobre lo que obtendrá, sus expectativas.

La segunda forma de medir el éxito de un proyecto es si es que se ha satisfecho las necesidades de la organización que ejecuta el proyecto. Estas necesidades pueden ser: generar una ganancia por el desarrollo del proyecto, desarrollar nuevas capacidades en nuevas áreas tecnológicas, etc. Estas necesidades de la organización son representadas por el sponsor del proyecto y deben de incluirse en el documento inicial de visión (o charter).

Conclusiones

Una buena gestión del Project management le dará existo a su proyecto. Considere siempre todos los aspectos de su proyecto. Haga un planeamiento adecuado, tómese el debido tiempo para hacerlo; sin el, su proyecto tendrá pocas posibilidades de éxito.

Planee sin “ilusiones”, haga el planeamiento en forma realista y honesta. Considere el factor humano como elemento primordial puesto que es este equipo de personas en quienes finalmente recaerá la ejecución del proyecto. Establezca un buen ambiente laboral y erradique las explotaciones y malos entendidos en el equipo.

Evite, siempre evite cometer los clásicos errores que se suelen dar en el desarrollo de un proyecto IT. De igual manera analice los posibles riesgos del proyecto, valores, haga un ranking de ellos y establezca planes de contingencia en caso sucedan.

Involucre siempre al cliente en el proceso de desarrollo, la valoración temprana de éste es esencial para evitar retrasos y terminar el proyecto exitosamente.

Escoja un método adecuado de ejecución de su proyecto, el que más se amolde al tipo de proyecto que usted administra. Con ello, su proyecto se ejecutará sin contratiempos ni descuadres en los procesos.

Finalmente, en la culminación del proyecto, haga la valoración del mismo, y aprenda de el, analice los errores cometidos, las metas alcanzadas y no alcanzadas. Esto es muy importante para el aprendizaje de la organización.

Con todos estos puntos usted tendrá un proyecto que no le sea un dolor de cabeza constante.

Referencias:

Proyéctos informaticos – Steve McConnell

Project Management – Paula K Martin

Categorías:Gestion de Proyectos

El dream team en IT

Publicado originalmente el: 21-2-2005

Todo proyecto exitoso debe contar con un grupo de personas adecuado para su realización y éxito, cada uno aportando algo importante para alcanzar con las metas y objetivos del proyecto.

Muchas veces se pasa por alto ciertas tareas o principios del manejo de equipos de trabajo lo que generalmente crea un ambiente de inestabilidad en el grupo, ya sea en la interrelación entre las personas, en la comunicación o en el rendimiento. Sin duda, esto no es algo que queramos para nuestros proyectos puesto que genera fragilidad en el cumplimiento de los objetivos del proyecto.

Lograr un equipo de alto rendimiento no es fácil. Implica gran responsabilidad del Project manager y mucha compromiso por parte de los demás miembros del equipo.

Todo Project manager debe guiarse de ciertas reglas y recomendaciones para lograr un “gran” equipo. Estas reglas van desde impulsar un ambiente participativo, definir reglas claras hasta celebrar logros.

Definiendo el plan del proyecto

Es importante recordar que el Project manager no hace el plan del proyecto por el solo. La mayoría de proyectos requieren una diversidad de habilidades, experiencias y mucho expertise para poder crear lo que el cliente necesita.

Esto significa que un grupo de personas será necesario, cada uno aportando algo único al proyecto, y cada uno dependiendo del otro para completar exitosamente su trabajo.

A través de la interacción del grupo, se logra resolver problemas, encontrar mejores soluciones y conocimientos, sintetizar ideas e información para el proyecto.

Por esto es importante que el Project manager involucre a todos los miembros del equipo en la creación del plan del proyecto. Así, se logrará un plan integral y de consenso.


El compromiso con lo nuestro

Cuando invertimos nuestro tiempo y energías en crear un proceso, este se vuelve nuestro. Tomamos pertenencia de el. Esto es algo básico en el comportamiento organizacional. “la gente apoya y cree en lo que crea”.

El concepto de pertenencia trae consigo el sentido de auto determinación. Esto es muy diferente a cuando uno solo ejecuta el proyecto. La auto-determinación es un factor extremadamente motivante; la delegación y simple ejecución de un proyecto no lo es.

Cuando la gente de un equipo trabaja junta para crear un plan de proyecto, monitorearlo, ellos se comprometen y toman “pertenencia” del proyecto. Esto además da el sentido de que todos los miembros del equipo están “metidos” en el proyecto y que “caminan” juntos. Esto es fundamental para un verdadero equipo.

Entendiendo el proyecto

Entender quiere decir saber lo que se quiere que realices, y saber como eso encajará en el todo. Cuando los miembros del equipo entienden lo que hacen, y saben como esa parte funcionará en el proyecto global final y como afectará las otras partes, pues estos serán más efectivos como individuos y como equipo, brindando un ambiente de colaboración muy eficaz.

Esto es una motivación grande para los miembros del equipo, que de esta manera se compromete, no solo mentalmente sino que también con el corazón.

Por otro lado, si el individuo solo entiende su parte asignada del proyecto, pues hará lo que es mejor para él y no necesariamente para el equipo. Esto genera problemas entre los integrantes, se entra en discordia y en retrasos y malos entendidos.

Cuando todos entienden el proyecto como un todo, los malos entendidos se minimizan. Ese entendimiento se puede lograr haciendo participar a los integrantes en el proceso de administración del proyecto. A esto se le llama Team Participation.

Muchas veces se excluye el Team Participation, se dice que por falta de tiempo, los miembros no tienen tiempo de participar, etc.; pero finalmente trae consigo demoras y retrasos posteriores y mas costosas, ya que se darán en la fase de ejecución del proyecto.

El Project manager debe construir el plan de proyecto conjuntamente con el equipo, para lograr un verdadero compromiso. Esto es mucho mejor que delegar a los miembros del equipo las tareas de un proyecto definido solamente por el manager. Recuerde que varios cerebros piensan mejor que uno solo.

Si usted es Project manager no se sienta mal de no entender al detalle todo el proyecto. Algunos proyectos son demasiados complejos para que una sola persona los entienda, hasta en el más mínimo detalle. Para eso usted tiene al equipo del proyecto que le ayudará a dar forma al proyecto, entenderlo y sacarlo adelante, pero recuerde que esto sólo es posible con el Team Participation

Las herramientas necesarias

Use herramientas basadas en equipo para planear, monitorear, generar ideas, tomar decisiones y resolver conflictos y lograr un consenso rápidamente

Las herramientas basadas en equipo permiten a todo el equipo del proyecto participar en el proceso, ya sea para planear, tomar decisiones, generar ideas o resolver conflictos.

Nos brinda una manera estructurada para todos los miembros de contribuir en la toma de decisiones y lograr consenso. Lograr consenso no significa que todos estarán de acuerdo con la decisión; significa que todos los integrantes pueden “vivir” con la decisión tomada. Esto se puede lograr preguntando a cada uno si acepta la decisión tomada, si no es así, se debe preguntar que es necesario para que sea una decisión aceptable. Habrá casos en los que no se podrá lograr el consenso, en estos casos, el Project manager podrá tomarse la prerrogativa de tomarla, pero se debe usar esta atribución sólo en caso que sea necesario. Busque siempre primero lograr el consenso.


Las herramientas basadas en equipo se dan mediante un conjunto de ayudas visuales, auditivas y kinéticas. Estas son por ejemplo: diagramas, diapositivas, exposiciones, presentaciones, etc.

Reconocer el esfuerzo y los logros

Cuando la gente se siente valorada, ellos hacen un mejor trabajo. Cuando el equipo es valorado, este se optimiza. Aprenda a valorar a los miembros del equipo, reconózcales el esfuerzo realizado y los logros obtenidos. Aunque usted no lo crea, esto es un elemento muy alentador.

Hay ciertos estándares sobre la manera de valorar a los individuos y equipos:

· Reconozca los logros

· Agradezca a la gente por el trabajo realizado

· Celebre los éxitos

· Respete las opiniones de todos

· Sea honesto

Cuando se requiera felicitar o reconocer el esfuerzo de un miembro de equipo en especial, a veces es preferible hacerlo en privado. Esto para evitar generar celos entre los miembros del equipo.

Liderazgo y aliento

Los equipos que reciben constante aliento son más efectivos. Este aliento se basa en otorgar cierta responsabilidad a cada miembro del equipo y brindarle a cada uno todos los recursos necesarios para que cada uno de ellos complete el trabajo.

Esto ayudara a una comunicación mas clara con los miembros del equipo, cada uno de los cuales deberán responder por sus tareas asignadas y deberán reportarlas para hacer el seguimiento del avance.

Formación del equipo

Los principios anteriores le ayudarán a crear equipos más efectivos. Pero los equipos no se forman ni emergen solos. Los equipos evolucionan por fases. A continuación hablaré sobre las fases por las que atraviesa un equipo.

1. Forming

Esta fase ocurre cuando el equipo se reúne por primera vez. En esta fase todos son amables y básicamente se encuentra respuesta a las preguntas siguientes:

· Porque estamos aquí

· Cual es mi rol

· Quienes son los demás miembros del equipo

· Quien es el Project manager


Esta fase culmina cuando los conflictos comienzan a surgir

2. Storming

Esta fase se inicia cuando la gente ya esta al tanto del proyecto y de lo que se necesita hacer. Habrá desacuerdos respecto a lo que se necesita hacer. Escucha las siguientes frases: “no puedo”, “eso no es imposible” para saber que se encuentra en esta fase

Esta fase es importante para crear un ambiente de entendimiento, alineamiento y compromiso. Las personas en esta fase dan sus puntos de vista y percepciones de cómo debe ser hecho el proyecto y se moldea una percepción grupal

Esta fase suele ir de la mano con la fase de planeamiento. Es saludable tener conflictos en el proyecto, siempre que se resuelvan y se llegue a un acuerdo. Esto será mucho más fácil si se usan las herramientas basadas en equipos. Estas, ayudan a resolver conflictos rápidamente y ganar consenso.

3. Norming

Esta fase emerge terminando el planeamiento y cuando empieza la fase de ejecución del proyecto. Se da cuando los conflictos terminaron, todos los miembros del equipo saben lo que deben hacer y están de acuerdo en los objetivos y responsabilidades de cada uno.

Se deben dar reuniones permanentes para monitorear el avance del proyecto y resolver problemas que pudieran surgir.

4. Performing

En esta fase el equipo se vuelve un equipo verdadero, trabajando como una unidad, ayudándose mutuamente. Todos los miembros del equipo se comprometen con el proyecto y hacen los ajustes necesarios para poder tener los entregables a tiempo, administran los cambios, es decir, se auto supervisan.

El Project manager solo interviene para casos muy puntuales, ya que el quipo camina y avanza solo. Sin embargo, se debe virilizar que esta dinámica se mantenga.

La mayoría de equipos nunca llegan a esta fase, es mas algunos no logran pasar la fase de Storming.

5. Mourning

Si su equipo es exitoso, se enfrentará a un reto al final del camino: el desbande del equipo. A las personas no les gusta dejar un equipo de alto rendimiento y exitoso, porque se sienten a gusto, bien consigo mismo y con los logros del proyecto.

Sin embargo, por definición, todo proyecto es temporal, y al final todo el equipo experimentará esta fase del “mourning”.

En esta fase, es importante la celebración. Ciertamente siempre se debe celebrar de alguna manera cada logro pequeño en el desarrollo del proyecto, pero en esta fase se trata de una celebración final por todos los logros obtenidos en el proyecto, y decir adiós a los compañeros y amigos. Esta es una buena ocasión para realizar una reunión formal con todos los integrantes y dar el cierre del proyecto.


Conclusiones:

De todo esto, podemos concluir que un proyecto exitoso en gran medida depende de cada uno de los integrantes, del nivel de compromiso que estos tengan con el proyecto y de un Project manager que aliente un ambiente de participación, liderazgo y motivación continua.

Referencias:

Project Management – Paula K Martin

Categorías:Gestion de Proyectos

Como desarrollar software y no morir en el intento

septiembre 4, 2008 Deja un comentario

 

Introducción

 

Es casi imposible imaginarse hoy en día alguna actividad económica en la que no estén involucradas de una u otra manera las computadoras y los sistemas de cómputo en general. Sistemas que van desde el uso del celular como despertador, calculadora o para hacer llamadas telefónicas, hasta los sistemas avanzados de control de tráfico aéreo de cada aeropuerto del mundo. En todos estos casos, el común denominador es: el uso de software como elemento fundamental para realizar todas estas actividades y operaciones. Sin sistemas de cómputo el ser humano de hoy en día no podría vivir: las personas no podrían usar los cajeros automáticos para retirar dinero, los bancos estarían fuera de operaciones y no se podría hacer depósitos ni retiros en ninguna agencia bancaria, no se podría pagar con tarjeta de crédito en los supermercados, etc., etc. Esto demuestra la importancia que los profesionales de sistemas deben darle a la ingeniería de software en el mundo actual.

 

Describiré a continuación algunas consideraciones que pueden ayudar a tomar mayor conciencia del papel que juega la ingeniería de software en los negocios con un enfoque en la implantación de las mejoras prácticas mundialmente aceptadas,  de la mano con los objetivos de cada empresa y/o negocio en particular.

 

La ingeniería de software

 

Su importancia en el mundo

 

Cada día, los países en vías de desarrollo dependen cada vez más de los sistemas informáticos. Y eso es mucho más notorio aún en los países desarrollados:

 

·          Las economías de los países desarrollados dependen en gran parte del software.

·          Más y más sistemas de todos los sectores económicos son actualmente controlados por sistemas de cómputo.

·          El gasto en “La Ingeniería de Software”, representa un alto porcentaje del PIB de los países desarrollados.

·          La información y el conocimiento son hoy en día el foco del poder del siglo veintiuno

 

Las economías occidentales se han convertido en economías de la información. El caso norteamericano es el más claro exponente del proceso de informatización de las economías. Durante las últimas décadas, la mayoría de países occidentales han visto como el sector industrial, responsable en gran medida de la riqueza que han acumulado desde el siglo XIX, ha ido perdiendo peso en el Producto Interior Bruto (PIB) en comparación con el sector servicios. Y ahora, en este fin de siglo, asistimos a la progresiva transformación de la sociedad industrial de los países desarrollados en una sociedad de la información.

 

Tres son los hechos que demuestran que estamos en una sociedad de la información (Moore 1997):

 

·          Las empresas dependen del uso de las tecnologías de la información

 

Cada vez más las organizaciones necesitan las TI para ser competitivas, a tal punto que en muchos casos se convierte en un “commodity” necesario para competir en el mercado. Dependerá del grado o nivel de informatización de cada compañía para lograr una ventaja competitiva: desde el uso de las TI a nivel de automatización básica de los procesos productivos hasta un nivel de transformación de información en conocimiento corporativo relevante para la organización.

 

Para poner un ejemplo, basta solo hablar del nivel de informatización a la que ha llegado muchos de los procesos de negocios de las empresas norteamericanos, que van desde el pago de un ticket para cualquier concierto de la ciudad por Internet hasta el pago un servicio de taxi cualquier con tarjeta de crédito.

 

·          Los ciudadanos se informatizan

 

Puesto que utilizan las tecnologías de la información en muchos actos de su vida diaria, y consumen grandes cantidades de información en el ocio y en el negocio. Como ejemplo pongamos un ejemplo reciente: tuve ocasión de hacer una visita a Nueva York y uno de mis intereses particulares era analizar el nivel de las TI en dicha ciudad en comparación a otros países. Para ello la tienda de Apple en New York fue la elegida: es realmente impresionante la afluencia de personas en dicha tienda, mañana, tarde y noche; todas pugnando por tratar de adquirir el nuevo iPhone 2.0 de Apple. Cada usuario debe primero hacer 1 cola para obtener un ticket de atención. Luego una cola más para ser atendido y ver si logra adquirir el ansiado iPhone 2.0. Con este simple ejemplo podemos ver impresionante y cada vez más creciente consumo de información y tecnología por parte de las personas. Teléfonos celulares, dispositivos de almacenamiento portátil, el uso de Internet y aplicaciones  web, entro otros.

 

·          El surgimiento del sector de la información

 

Hoy disimulado dentro de la diversidad del sector servicios, pero con un volumen suficiente para convertirse en uno de los grandes sectores de la economía: se gastan grandes cantidades de dinero en inversión en tecnología y esto da pie al surgimiento de empresas de servicios tecnológicos y de desarrollo y soporte de sistemas y software, siendo el principal centro de ello las compañías tecnológicas de La India, que lideran dicho segmento.

 

Este sector constituye quizás uno de los núcleos principales del denominado sector de las altas tecnologías. El caso norteamericano es quizás el más paradigmático donde el 27% del total del crecimiento del PIB en el período 1994-96 se debió al crecimiento de ese hipersector alta tecnología (informática y telecomunicaciones, principalmente), mientras que las contribuciones de las tradicionalmente consideradas locomotoras del crecimiento económico, la construcción de viviendas y automóviles, representaron sólo el 14% y el 4%,

 

Para enfatizar la importancia del software y de las TI en general, se ha elaborado recientemente un Indice de la Sociedad de la Información, un ranking del desarrollo en TI de los países. El ranking se centra en la evaluación de la situación de cada país en lo que respecta a una gama de indicadores agrupados en 3 áreas: infraestructura informática (numero de PCs en los hogares, empresas, etc.), infraestructura de telecomunicaciones (numero de TV, teléfonos, fax, etc), e infraestructura social (lectura de periódicos, libertad de prensa, población escolarizada, etc.).

 

 

Indice de la Sociedad de la Información

Indice de la Sociedad de la Información

 

 

Su impacto en la economía

 

Una característica especialmente significativa de la industria del software reside en el hecho de que su crecimiento no conlleva generalmente un aumento de la inflación porque, aunque los sueldos crecen en el sector alta tecnología informática por encima de la media del resto de la economía, los precios promedio de los productos de alta tecnología no dejan de bajar año tras año. Este hecho deriva, probablemente, de que durante las últimas dos décadas se ha cumplido sistemáticamente la Ley de Moore, según la cual el número de transistores que de cada chip de silicio se duplica cada 18 meses, con lo que su capacidad de procesamiento y/o almacenamiento aumenta. Simultáneamente, se ha cumplido la Ley de Grosch, según la cual el precio de esos mismos chips se reduce a la mitad cada tres o cuatro años.

 

Ley de Moore

Ley de Moore

 

 

 

Ley de Grosch

Ley de Grosch

 

 

 

Sus costos de desarrollo y mantenimiento

 

Algunos datos a tomar en cuenta sobre el costo de desarrollo de software y los costos del mantenimiento de dichos sistemas:

 

·          Los costos del software a menudo dominan al costo del sistema.

 

El costo del software en un PC es a menudo más caro que la PC misma. Esto confirma la comoditizacion del hardware año tras año dando paso al software como posible elemento diferenciador en cada compañía. Lógicamente, depende de cada compañía el utilizar al máximo dichas herramientas de software hasta un nivel de transformación de datos para obtener un verdadero elemento diferenciador y competitivo.

 

·          Cuesta más mantener el software que desarrollarlo. Para sistemas con una larga vida, este costo se multiplica.

 

El 75% de los recursos de informática se destinan a mantenimiento de sistemas. Solo el 25% de los recursos se destinan al desarrollo de nuevas aplicaciones. Este dato nos presenta una situación contradictorio: muchas compañías, al iniciar un proyecto de desarrollo de software, con el ánimo de “sacar” el proyecto rápido en el menor tiempo posible no realizar un análisis y gestión adecuada del proyecto o si la realizan: este análisis y gestión es muy limitada. El supuesto ahorro que se gana en esta fase es neutralizada y superada con creces posteriormente cuando en las fases finales del proyecto se descubren problemas estructurales que generan mayores tiempos, costos y recursos. Por ende, es preferible tomarse el tiempo necesario para realizar un correcto análisis y una correcta gestión del proyecto de desarrollo de software y así evitar sorpresas futuras.

 

Mantenimiento Vs Desarrollo

Mantenimiento Vs Desarrollo

 

 

El costo de los errores!

 

Conforme se avanza en el desarrollo del sistema, el costo de corregir los problemas o errores que puedan Leer más…

Seguir

Get every new post delivered to your Inbox.