Estamos solos?

0 comentarios









Por años en las Universidades y en muchas empresas se ha enseñado la falsa idea de la existencia de una pequeña gama de posibilidades a la hora de seleccionar metodologías de desarrollo de software (sucede lo mismo cuando se habla de sistemas operativos).

No es extraño encontrar personas hablando de metodologías de desarrollo de software que logran con un talento fascinante llevar rápidamente la charla a RUP( Racional Unified Process) o a los menos expertos referirse a las metodologías de cascada o espiral como si ellas fueran el centro del mundo y su no utilización fuera señal de malas practicas de desarrollo. Será verdad que estamos tan solos en el mundo?, será que no existen otras metodologías que guíen y permitan el control adecuado de proyectos de software?, claro que existen y no son pocas, eXtreme Programming, Cristal, DAS, DCC y MDSD están abriendo nuevos espacios donde una dirección de proyectos de software orientados a un contexto real y cambiante es posible.

Si se quiere iniciar en el mundo de posibilidades que ofrecen los nuevos paradigmas metodológicos hay que visitar http://www.agile-spain.com que cuenta con un buen volumen de documentos, artículos y recursos relacionado con esta temática.

Deporte eXtremo

0 comentarios


En la ingeniería de Software existen diversas metodologías de desarrollo, casi una para cada gusto y preferencia, los productos que estas producen y el esfuerzo que se requiere para conseguirlos, varia de una a otra, pero siempre persiguen el mismo objetivo, entregar un software de calidad al usuario.
RUP(Rational Unified Process) desde su nacimiento ha sido vista como la famosa "Bala de Plata" que frecuente mente se da en la jerga de la ingeniería de software, pues mucho ingenieros consideran que solo es suficiente emplear esta metodología para garantizar un éxito total en los desarrollos de sus productos y descuidan aspectos importantes del proceso de desarrollo del software por la falsa sensación de seguridad que una metodología como esta produce en un grupo de desarrollo. Y esto no son casos aislados; Con frecuencia nos podemos encontrar desarrolladores que emplean como bandera el hecho de trabajar con RUP, hablan todo el tiempo de ello, de sus plantillas y de la cantidad de documentación que fue necesario construir para llenar estas y de como en algunos momentos sintieron que repetían y repetían los conceptos que escribían. Pero no se puede argumentar que se empleo RUP únicamente porque llene un par de plantillas o porque las llene en su totalidad, esta metodología llega mas lejos que los artefactos que la conforman, son un estilo de vida, unos principios unas buenas prácticas y en general una forma detallada de realizar un proceso de construcción exitoso.

Pero aunque en este texto podría hablar de las bondades y éxitos que RUP ofrece a los ingenieros (No solo a los de software), prefiero centrarme en la que considero una metodología alternativa, adaptable a una realidad y apropiada para los nuevos perfiles de los desarrolladores y es la “Programación eXtrema”, así como su nombre lo indica y como su semejantes en otras actividades “Deportes eXtremos”, esta metodología busca romper muchos de los paradigmas que metodologías tradicionales como RUP plantean.

Construir un producto sin realizar una documentación extensa, involucrar al usuario dentro del grupo de trabajo, retroalimentación constante, metáforas como guías de desarrollo, programación por parejas y propiedad colectiva, son entre otras algunas de las propuestas que XP incluye en su filosofía de trabajo.

Así como los deportes extremos no son para todos, XP tampoco esta diseñada para todos, las libertades que genera también produce responsabilidades, el no tener un esquema estricto de trabajo como RUP no quiere decir que se tenga carta abierta para probar nuevas soluciones. Las personas que trabajan con XP son personas que tienen claro que seguir un proceso de desarrollo es más que un requerimiento una necesidad y que la calidad del producto solo puede ser tan buena como el proceso que se siguió para crearlo.

Este artículo es una invitación a probar las propuestas que en cuestión de metodologías de desarrollo se están generando, es el momento de llevar los proyectos a la realidad que los rodea, adaptándolos a los cambios de pensamiento que se generan con las nuevas tecnologías y siguiendo los caminos que “emprendedores” nos están enseñando.







Algoritmos: Fundamentos, principios y verdades

1 comentarios

(Introduccion)

Los algoritmos y la forma como estos se construyen ha sido mitificada y considerada labor compleja y de personas altamente capacitadas, pero cual es la verdad?, porque el trabajar con estas estructuras de información resulta tan complejo para los estudiantes que apenas se encuentran con ellos?. Este capitulo trata de dar una luz a esta problemática, desde un enfoque personal y acorde a la experiencia de trabajar con diferentes grupos y personas.

Un algoritmo no siempre debe resolver algún problema matemático, ni físico ni ordenamientos de listas, que muchas veces nadie le encuentra un valor verdadero. La idea de los algoritmos esta relacionado con la naturaleza humana, todo ser humano busca soluciones a los problemas, busca la forma que las cosas se ejecuten mas rápido y eficientemente, con el menor numero de errores y si es posible con el mínimo de esfuerzo. No es un misterio ni una incógnita el hecho de la aparición de los algoritmos en el ambiente informático, al existir una herramienta tecnológica capaz de hacer los trabajos del ser humano de una forma considerablemente superior, se requería de un sistema capaz de explotar estas posibilidades y llevar los problemas cotidianos por medio de una abstracción a lenguajes computacionales que permitieran crear ese puente entre la realidad visible y la realidad a procesar.

Pero aunque se habla de los algoritmos como unidades de código computacional mínimo, también los podemos ver como una serie de pasos que siempre producen el mismo resultado y que requieren un seguimiento estricto para ser completados con éxito, y es que abordándolos de esta forma, un proceso como el preparar una receta de cocina (unos huevos revueltos), se podría expresar como un algoritmo, y esto no nos aparta de la realidad, pues computacionalmente hablando, el éxito de los procesos, radica en el mismo principio que lleva inmerso el preparar una receta de cocina, pero igualmente hay que tener en cuenta que muchas cosas dependen de las habilidades propias de quien las hace, de los secretos, de la experiencia y el profesionalismo.