miércoles, 24 de septiembre de 2008

SOFTWARE Y SU IMPULSO (Ensayo)

Creo que gracias a el software (hablando de manera general) ha hecho que todo sea más fácil hoy en nuestro días, pues este nos ayuda a resolver situaciones o de la vida cotidiana, pero como se dijo una vez en clase, “la computadora no hace magia”, yo creo que de eso nos encargamos nosotros, pero bueno, a lo que me refiero es que conforme avanza la tecnología, podemos dar solución a situaciones cada vez mas sofisticadas.

Primeramente gracias a el software podemos darle las instrucciones a al hardware, y así producir el comportamiento deseado. Al desarrollar un software se debe seguir un procedimiento de gestión para tener la seguridad de que desde el proceso, elaboración y entrega se verifique ciertos estándares de calidad, pero de eso me gustaría hablar mas adelante.

El software tiene varias clasificaciones, estas se basan en ciertas características, como aquella que se basa en la utilización que se le de al software, que es donde se desprenden los de gestión de información, los ofimáticas, los de formación o divulgación, o hasta aquellos que se encargan de hacernos pasar un rato entretenido, me refiero a los juegos. Luego se clasifican según el tratamiento comercial que tienen, como los que encontramos comúnmente en diversas tiendas, o el software a medida. Otra clasificación podría ser aquella que se basa en como y a que nivel se desarrolla, o sea que se mide su eficiencia.

En cuanto al desarrollo del software son varios los factores que se deben de tomar en cuenta, primeramente el desarrollador debe contar con ciertas formas de visualizar las cosas, así como contar con ciertas características para poder desarrollar algo en base a su conocimiento.

Para desarrollar un software, se debe de llevar todo un proceso, hace décadas, este proceso ese demasiado largo y costoso, hoy en día se cuentan con ciertos principios y métodos para la elaboración de software. Con esto nos referimos a la ingeniería de software, que en si, se refiere a la serie de principios de ingeniería aplicados a la elaboración de un software que se sea económico, eficiente y fiable para las personas.

En la ingeniería de software se lleva un proceso, el cual se basa en el enfoque de la calidad, esto quiere decir que todo lo que se realice se hará pensando en hacerse de la mejor forma, un punto importantísimo; los métodos, los cuales nos indican el como haremos para realizar el software; el proceso, que define lo que se va a realizaren ciertos puntos clave del proceso; y las herramientas, que nos proporcionan lo indispensable para hacer todo lo ya mencionado, estas nos facilitan las tareas ha realizar.

Hay varios modelos o paradigmas de ingeniería de software, los cuáles cuentan con diferentes entre si, así, cada uno de esos paradigmas nos ofrece una perspectiva diferente de trabajo, con esto nosotros nos podremos ajustar al modelo que mas nos beneficie y que nos haga realizar el software de manera eficiente, por que no es lo mismo ser eficaz, que eficiente, pues en la segunda se cuidan los aspectos de cómo se realizan la actividades, la eficacia se basa en que yo puedo hacer algo, pero hacerlo de la mejor manera posible; ahorrando tiempo, esfuerzo, etc.

Son cinco principales modelos de desarrollo de software:
  • DESARROLLO EN CASCADA O LINEAL. Este es un modelo que se enfoca en ordenar cada una de sus etapas, esto, de forma rigurosa, pues es la esencia de este método. Esto quiere decir que no se podrá pasar a la siguiente etapa hasta que la primera este completamente terminada, y así con cada una de ellas (análisis de diseño, diseño de sistema, diseño del programa, codificación, pruebas, implantación y mantenimiento). Una de sus ventajas es que todo esta bien organizado desde principio a fin pues en cada paso se detectan y eliminar los errores, en contraparte es un modelo demasiado tardado, pues es muy difícil que el cliente nos diga todos los requerimientos, con solo algo que falte por muy pequeño, atrasa el proyecto.
  • MODELO DE DESARROLLO DE PROTOTIPOS. En este modelo lo primero que se hace es obtener los objetivos globales, para hacer un bosquejo o prototipo, el cual se va a ir trabajando conforme se interactué con el cliente, y así ir desarrollando el proyecto. Una de sus ventajas es que se tiene una gran interacción con el cliente, además de que no necesitamos saber todos los objetivos, sino solamente los mas esenciales. En cuanto a desventajas encontramos que la mayoría de las veces el cliente ve el prototipo como el proyecto final, y al trabajar en prototipos se descuidan un poco los aspectos en cuanto a la calidad del mismo.
  • DESARROLLO RAPIDO DE APLICACIONES. El modelo se basa en desarrollar ciertos grupos de trabajo, a los cuales se les dará una tarea en especifica, o sea que el trabajo se no se hará por un solo grupo, sino por la participación de varios, los cuáles se centran en el modelado de gestión, modelado de datos, modelado de proceso, generación de aplicaciones y pruebas de entrega. Con el inconveniente de que se debe contar con los recursos humanos necesarios para poder repartir los procesos, además de que la comunicación se debe tomar como talón de Aquiles para poder organizar a los distintos grupos de trabajo, sin ella, todo será un fracaso.
  • MODELO INCREMENTAL. Se divide en cuatro procesos; análisis, diseño, código y pruebas. En este modelo no es necesaria la intervención de muchas personas, ya que en cada incremento se pueden ir sumando al proyecto. Es un modelo que como ya se dijo no se necesita mucha gente (al principio), y además es un modelo interactivo sin mencionar que es un modelo perfecto para proyectos grande y de larga duración.
  • MODELO DE DESARROLLO EN ESPIRAL. Es un modelo evolutivo, en el que primeramente tenemos que planificar y determinar los objetos, después se hace el análisis de riesgos, donde localizamos y prevemos los riesgos que se pudieran dar a futuro, después entramos a la etapa donde desarrollamos, verificamos y validamos, para después pasar a la evaluación del cliente, donde depende de los resultados que nos de se tendrá que repetir el mismo ciclo. Lo malo de este modelo es que resulta muy costoso y tardado.

Ya vimos lo que es software, algunas características, su clasificación, así como lo que es ingeniería del software y algunos de los modelos más utilizados en ella, pero, ¿Qué es lo que pasa con el recurso humano para poder realizar software de calidad, y a un nivel de exportación? Hoy en día se están haciendo muchos esfuerzos para hacer profesionales altamente capacitados y que cumplan con las expectativas del mercado, no solo a nivel regional o nacional, sino a nivel mundial, lo que hará al país un participe dentro de la revolución del desarrollo de software que se lleva a cabo en todo el mundo.

Gracias a las certificaciones un profesional puede alcanzar puestos más ambiciosos (en el buen sentido de la palabra), pero detrás de esto el profesional debe de contar con los conocimientos necesarios para obtener una certificación, pues esta es la que comprueba nuestras capacidades, conocimientos y habilidades. El punto es que es una tarea de todos, tanto del gobierno, industria y aun mas importante, de nosotros mismos, pues aunque se tengan los apoyos necesarios, si nosotros no le sacamos provecho, dichos esfuerzos seria inútiles. Un ejemplo de esos apoyos seria el Programa de Desarrollo de la industria del Software ( PROSOFT) el cual fue desarrollado por la academia y el gobierno.

Una de los proyectos que se están apoyando es la creación de parques tecnológicos, siendo 6 en el país (los que se encuentran en los estados de Aguascalientes, Baja California, Jalisco, Nuevo León, Sonora y el Estado de México), todo esto conlleva a la creación de empresas cada vez más grandes y con la infraestructura necesaria para competir a nivel mundial con empresas de alto renombre. O lo que es parecido, la creación de clusters (lugares donde se posicionan empresas de un mismo giro y trabajan en un ambiente de competencia saludable, lo que impulsa a las empresas a esforzarse cada vez más, desarrollando el capital humano, así como el talento y las habilidades en TI para el futuro, además de implementar modelos de calidad, brinda un apoyo solidó a la innovación, y da estrategias comunes de desarrollo. Según datos del anuario PROSOFT para este año se cuentan con 20 estados en el país que cuentan con clusters, 23 clusters lo que arroja un total de 700 empresas participantes, en cuanto a las iniciativas del mismo solo el 9% es proporcionar por parte del estado, siendo las empresas quienes más proponen. Los clusters deberán cumplir con los siguientes pasos; iniciación, formación, expansión y consolidación.

Hablando de cuanto se genera en profesionales anualmente, a nivel nacional el índice de egresados es de 60,000 en carreras relacionadas con TI, siendo una cantidad igual de profesionales activos en la industria del software, pero con todo eso hay un déficit de alrededor de 50,000 profesionales.

En términos nacionales, el 43.71% de las empresas de Ti se encuentran en la zona centro-este del país, y en términos nacionales, México ocupa la 9ª posición en cuanto a la reserva mundial para ofrecer servicios de TI con el 4%, mientras que la India ocupa el numero 1 con un 28%.

En cuanto al estado de Zacatecas se invirtió en el año de 2007 en los siguientes rubros lo siguiente:


CAPACITACION ($47,748,004)
INFRAESTRUCTURA ($28,822,401)
NORMAS Y MODELOS ($0)
USO DE TI Y SERVICIOS RELACIONADOS($3,952,539)
PROTECCION DE PROPIEDAD INTELECTUAL ($337,185)
COMERCIALIZACION ($540,500)
ESTUDIOS ($2,428,387)
SERVICIOS PROFESIONALES DIVERSOS ($0)
EVENTOS ($193,985)
INNOVACION ($904605)
CREACION Y FORTALECIMIENTO DE FONDOS ($0)

Además de la parte de los $80, 000,000 que le toco al estado para el desarrollo de software para este año, se están haciendo los avances y se esta tratando de abrir el camino hacia la superación y el desarrollo de software de calidad.



jueves, 18 de septiembre de 2008

EL RETO DEL CAPITAL HUMANO

Cualquiera que participe en la industria de software en México estará de acuerdo en que el reto más grande que enfrentamos es el del capital humano. Hay una gran cantidad de proyectos que están detenidos o se están enviando a otros países porque no contamos con la gente necesaria.

De acuerdo a las estimaciones de SG, en México existen cerca de 60 mil profesionistas de software activos –con esto me refiero a personas cuya principal actividad laboral es desarrollar o mantener software. Por otro lado, la cifra no oficial que se maneja en la industria de TI es que hay un déficit de 50 mil profesionistas de TI, de los cuales alrededor de 20 mil son específicamente de software.

De acuerdo con datos del Anuario PROSOFT 2007, anualmente se gradúan 60 mil profesionistas de carreras relacionadas a TI. Esa es una cantidad alentadora, el problema está en que el porcentaje de graduados que cuenta con los conocimientos necesarios para desempeñarse profesionalmente como desarrollador de software es de entre un 10% y 15%.

PROSOFT ha potenciado significativamente a la industria, pero no hemos logrado satisfacer la demanda de gente que hemos generado (ya tengo espacio en el parque tecnológico, tengo infraestructura, conseguí clientes, ¿y ahora donde está la gente para hacer los proyectos?).

Un factor que agudiza el problema es que la mayoría de las empresas de nuestra industria son pequeñas y no tienen capacidad para desarrollar personal, ellos necesitan gente que pueda rendir inmediatamente. Y por otro lado, aquellas que tienen capacidad para desarrollar a la gente no están muy dispuestas a hacerlo por el alto porcentaje de rotación de personal (pirateo).

Los actores de la industria están muy conscientes del reto de capital humano que enfrentamos, y es por ello que la iniciativa fuerte de este año es la de MexicoFIRST. Ayuda a dar enfoque, generar economías de escala, y simplificar los procesos para las organizaciones que contratan servicios para capacitación y certificación. Sin embargo, no debemos perder de vista que las certificaciones solo son el betún del pastel. Previo a lograr una certificación debemos cumplir con los conocimientos fundamentales que requiere un ingeniero de software. Las certificaciones facilitan significativamente la venta de servicios de “staffing” para el extranjero. Sin embargo, todos estamos de acuerdo en que ese es un mercado de bajo valor donde solo se compite por tarifa, y esa es una guerra que no nos interesa. Así que si la estrategia es proveer servicios de alto valor agregado, deberíamos preocuparnos primero por generar gente capaz de entender problemas y resolverlos de forma innovadora.

Las certificaciones son un elemento importante y hay que impulsarlas, especialmente porque son algo medible.

La ANIEI (Asociación Nacional de Instituciones de Educación en Tecnologías de la Información) generó el modelo paracurricular, que es su propuesta para dotar a los estudiantes con los conocimientos y competencias que requiere la industria. El reto que enfrentan actualmente es el de implementar dicho modelo de forma rápida. Digamos que es difícil transformar a 600 instituciones educativas cuando sólo se cuenta con los ratos libres entre clases.

Otro gran problema que enfrentamos es el ciclo vicioso de la experiencia. Las empresas no contratan recién graduados porque no tienen experiencia y estos nunca generan experiencia porque no los contratan, pasan los años y terminan poniendo un Internet café o dedicándose a otra cosa.

Aquí no hay una solución única, sino la suma de muchos pequeños esfuerzos. Una de las herramientas con las que contamos y debemos aprovechar mejor son los periodos de prácticas profesionales que se dan en la mayoría de las universidades hacia el final de la carrera. Hay que armar y gestionar bien estos programas para que brinden experiencia realmente útil a los participantes.

Por otro lado, las empresas deben apostarle más a estos recién graduados.

A pesar de todo esto, no debemos pasar por alto que aunque definamos los mejores modelos de competencias y consigamos todos los recursos para implementarlos, si los estudiantes y profesionistas no le entran a este esfuerzo, todo va a ser inútil.

Le hemos entrado a una competencia global. El gobierno tiene esto muy claro, las empresas también, pero al parecer las personas todavía no. Y mientras no logremos cambiar esta actitud, ningún programa de formación va a servir.
  • Resumen obtenido del articulo "El Reto del Capital Humano" del autor Pedro Galván, extraido de la revista Software Guru.

¿QUE QUEREMOS REALMENTE?

México, tiene un sin numero de problemas, debido a la falta de confianza y el hecho de que nuestras preferencias partidistas están por encima del bien común, que es preferible que no sé hagan las cosas a que los haga otra persona. Con esto decidimos no hacer las cosas.

Lo malo mes que aun tenemos la misma ideología, en lugar de enfocarnos en crear una base de industria mexicana, que a nivel global sea competitiva.

El programa PROSOFT de Secretaria de Economía podría ser la excepción. Este fue desarrollado por la industria, el gobierno y la academia.

Lo preocupante, es que; o todos van muy rápido, o nosotros vamos muy lento, ya que los demás países optan por los interés de todos, y no únicamente por los de unos cuantos. Deng Xiaoping, dijo que era glorioso ser rico, y China se volcó para lograrlo.

Nuestro gobierno se dedica a proteger a la ciudadanía, especialmente si son pobres, dejándolos en su ignorancia en lugar de demandar la excelencia en el estudio, y luego en la vida. En otros se les da más oportunidades a las personas que realmente están capacitadas, es decir, que tienen la inteligencia necesaria, viéndolos como el futuro del país. A los demás, se les da el nivel de educación que puedan absorber, no mas halla de sus capacidades. En México esto no pasa, pues todos tenemos derecho a la educación, pero hay muchos alumnos que no aprovechan esa oportunidad.

Analizando, lo que hace falta ahora es la infraestructura para fomentar el crecimiento, la que se encuentra en los parques de software. La razón es que la gran mayoría de nuestras empresas, que de hecho son muchas, son demasiado pequeñas para poder competir, no importa qué tanta calidad logren tener. En un mercado de servicios, el tamaño es crucial.

Los parques tecnológicos, en particular los de software, pueden permitir que varias empresas pequeñas se conozcan y promover el que existan motivadores para que logren juntarse en una empresa mayor que tenga la capacidad de atraer clientes e inversionistas. Una empresa de veinte personas apenas podrá llevar alguna metodología de calidad y no logrará tomar clientes interesantes ni mantener al día a su gente o contratar a la gente más capaz a causa su tamaño. Pero si se juntan varias empresas, esta nueva empresa ya estará en capacidad de buscar mercados más interesantes, de tener capacidad para dar el entrenamiento continuo indispensable a todos sus empleados y de crecer.

Hoy un parque de software es algo que interesa a muchas entidades. Se han experimentado varias formas de financiamiento, una muy buena es la ya probada en varias partes del mundo: el gobierno interesado dona el terreno, una empresa que tenga los conocimientos apropiados construye y promueve, y las empresas de tecnología que se instalan ahí tienen las ventajas de un precio menor al del mercado (a cambio del terreno que donó el gobierno), un ambiente adecuado para la sinergia y las asociaciones, así como para la enseñanza accesible de conocimientos para las mismas empresas y sus empleados, y un lugar donde la gente pueda crecer profesional, intelectual y hasta personalmente.


Si realmente queremos desarrollar esta industria, los gobiernos tienen que estar convencidos, no sólo de dientes para afuera, sino con su bolsillo y sus propios proyectos, hasta ahora internos, de desarrollo de software. La entidad que realmente quiera será ganadora indudablemente. La que entre tibiamente, se quedará en el camino.
  • Resumen obtenido del articulo "¿Que Queremos Realmente?" del autor Rafael Bernal, extraido de la revista Software Guru.