Entradas

Mostrando las entradas con la etiqueta Metodologia de Desarrollo

Metodo MIKADO - aplicación práctica para simplificar una KB.

Imagen
Hace unas semanas hablé del  metodo MIKADO , que me resulta util para diversos proyectos. La semana pasada, tenía que hacer una simplificación en un sistema que conozco bastante, que tenia varias tablas en el modelo de datos, que habian sido utiles en el pasado, pero ahora ya no se utilizaban mas. Es en este tipo de limpiezas, donde es común empezar a borrar algo y que salte que se necesita corregir otra cosa. Al corregir la segunda, vemos que hay una tercera cosa a arreglar y se pueden disparar cambios en cascada. El problema de los cambios en cascada es que muchas veces termina siendo tan grande y difícil de controlar, que muchas veces el riesgo del cambio es muy grande y no se hace nada, o se acaba el tiempo para hacerlo y todo queda como esta. El problema era asi: En unas 6 horas debía simplificar una tabla llamada Proyectos que hacía referencia a varias tablas que ya no se quieren usar mas. Al final de esas 6 horas, debía quedar todo operativo y funcionando con lo...

Como ver donde demora una pagina WEB.

Imagen
Cuando desarrollamos con GeneXus, trabajamos a un nivel alto de abstracción, que nos libera de estar pensando en muchos detalles técnicos que permite tener mucha mayor productividad. Esto trae como consecuencia, que no somos del todo conscientes de todo las tareas que se realizan en la ejecución de las aplicaciones por nosotros desarrolladas. Me preguntaron varios ( dos personas diferentes, ya son varios, no? ) como hacia para saber donde estaba demorando una pagina WEB y como podian hacer para mejorar su performance. No tengo una metodología demasiado definida, ni me considero un especialista en el tema, pero cuento que es lo que uso, con la esperanza que les pueda servir a alguien mas. Lo que me resulta mas facil, es probar la aplicacion con Chrome y usar la extension Chrome Apps & Extension Developer Tool   que tiene algo mas de informacion que las herramientas que vienen que Chrome en forma nativa, pero tampoco hace la diferencia. Cantidad de request Despu...

Algunas preguntas para la comunidad Genexus.

Imagen
Cada tanto me gusta hacerme preguntas para analizar como serán los próximos años en el ambiente de desarrollo de aplicaciones, en particular con GeneXus. Las preguntas son solo un " ejercicio mental" , para poder delinear soluciones.  Generalmente tienen varias respuestas que sirven  y  me gusta tenerlas en mente antes del Encuentro Genexus para ver si puedo mejorar algun área de proceso de desarrollo. Algunas de las preguntas son: Requerimientos ¿Los usuarios de mis aplicaciones, pueden plantear mejoras/quejas a las mismas? ¿Que requerimiento aporta mas valor a mis usuarios? ¿Cuantos requerimientos de usuario voy a poder hacer en un mes? Diseño ¿Como adaptaremos nuestras aplicaciones a la Internet de las Cosas? ¿Estamos preparados para manejar GRAN volumen de datos? ¿Como manejaremos diversos orígenes de datos (base de datos, servicios web, mensajes, archivos, etc? ¿Puedo manejar varias aplicaciones en diferentes versiones de GeneXus sobre los mismos o...

#GX25 - Que esperar del Encuentro Genexus de este año.

Imagen
Ayer Gastón Milano  y Gustavo Carriquiry brindaron un webinar  (**) sobre como viene la organización del 25 Encuentro GeneXus y que tipo de charlas habrá y cuales serán los temas destacados del mismo. Hay oradores muy importantes confirmados y los temas de mas realce parecen ser Cloud, Internet de las Cosas, herramientas de Deploy. Mobile, WEB, ayuda en el diseño gráfico de aplicaciones. Otros temas no tan destacados pero importantes, es algo que Gastón nombro al pasar que piensan mostrar ideas para posicionar a Genexus como un intermediario entre datos y otro tipo de aplicaciones (por ejemplo aplicaciones hechas con GeneXus en diferentes versiones), potenciar los módulos, etc. El tema del encuentro es  What's Next, por lo que deberíamos aspirar a ver charlas sobre que son las próximas cosas que se nos vienen. Tenia esperanzas (aun tengo) de que hubiera algunas charlas o mejor mesas de intercambio, donde poder intercambiar ideas sobre como podríamos desarrollar en...

Migraciones GeneXus

Imagen
En las últimas semanas he estado ocupado con algunos proyectos interesantes. Dos empresas del exterior me pidieron si podíamos ayudarlos a migrar KB de GeneXus a las ultimas versiones de GeneXus. Un caso era una KB grande desde GeneXus 9.0 generando VB a Evolution 2 generando C#, y solo necesitaron ayuda a nivel de consultoria. Colaboramos en las dudas cuando se trancaban y pudieron salir adelante. Fue interesante el trabajo a distancia y lograron terminar el proyecto según los plazos previstos. Están en la etapa de paralelo con los usuarios en dos de las instalaciones y con buenos tiempo de respuesta. El otro proyecto, es bastante mas grande y complejo. Tenían 7 KB Genexus 7.5 y había que: Unificar algunas de las KB (terminan siendo 4 KB) Cambiar el lenguaje de generacion de VB 6.0 a C# Cambio de Servidor de Base de datos (el equipo) Cambio de Version del DBMS (Informix 9 a Informix 12). Metodo de acceso de ODBC a ADO.NET  Incorporar GXServer y Automatizar el proceso...

Modelado de datos con GeneXus.

Imagen
Me ha tocado varias veces realizar el primer  modelo de datos de un sistema (o de un modulo de un sistema). En dicho modelo, se define a grandes rasgos como se comportara el sistema y si bien a lo largo de la vida del sistema, el modelo de datos va a cambiar bastante, la experiencia indica que un buen modelado inicial es fundamental para que el desarrollo de todo el sistema sea fluido. Esto muchas veces, determina el exito o fracaso de los proyectos, por lo tanto, conviene tomarse un buen tiempo para definir un modelo de datos que nos convenza. Las técnicas que pueden utilizarse para la realización de modelos de datos, son muy variadas. Voy a presentar una muy sencilla que me ha dado buen resultado. Para dimensionar un poco el problema, supongamos que consiste en un modelo de datos de unas 20 tablas relaciondas, que tiene poco contacto con las existentes (aunque podria no ser este el caso). Los pasos a seguir son los siguientes 1) Preparación de la KB La idea es com...

Sobre Migrabilidad de KB

Imagen
Después de mi charla en el Evento Genexus sobre Migración de KB grandes , algunas personas se me acercaron para consultar y comentar sobre procesos de conversión de Kbs. Un par de conocidos, me comentaron que la charlas los había decidido a migrar (*)  y uno me dijo que iba a tener que ajustar un presupuesto que estaba haciendo para una migración  pues veía que le iba a llevar mas horas de las que pensaba dedicarle.  Esos comentarios me dejaron contento y si  pudo ayudar a un par de personas, la charla valió la pena. También converse con otras personas, que comentaban algunas dificultades en la migración de sus KB, porque tenían particularidades que hacían que no funcionaran en la nuevas versiones de GeneXus. Algunas que me comentaron Modificación de la GXClasses, para adaptarla a mi problemática Inclusión de javascript en el HTML para mejorar la usabilidad (si...

Ventajas de programación basada en modelos : Cambios al migrar a GeneXus X ev2.

Estaba revisando un tema de performance en la base de datos, de una aplicación generada con GeneXus 9.0. La misma no tenia problemas de performance grande, pero los administradores de la base de datos pedían que se utilizara BINDING para mejorar el ratio del cache de sentencias en la base de datos. Para hacer pruebas cree una KB en 9.0 con dos tablas (Clientes y Facturas) y un webpanel con una grilla de 10 renglones, que traia algunos datos de las tablas con un join, con condiciones con un when y ordenados   La misma generaba la sentencia: SELECT T1.[FactImporte], T1.[FactId], T1.[FacFecha], T2.[CliNom], T1.[CliId] FROM ([FACTURA] T1 WITH (FASTFIRSTROW NOLOCK) INNER JOIN [CLIENTE] T2 WITH (NOLOCK) ON T2.[CliId] = T1.[CliId]) WHERE (T1.[FactImporte] > 100) ORDER BY T1.[FactImporte] DESC   Para hacer pruebas, también la migre a la GeneXus X Evolution 2 y generó la sentencia.   SELECT * FROM ( SELECT T1.[FactImporte], T1.[FactId], T1.[FacFecha], T2.[...

Betatesting de GeneXus (2011)

Imagen
Desde hace unos cuantos años, me toca hacer pruebas en las versiones Beta de GeneXus. Esta bueno hacerlo para ir aprendiendo y entendiendo que es lo que tiene la próxima versión de la herramienta que utilizamos para desarrollar. Esto nos permite adaptar las metodologías de desarrollo para poder aprovechar las nuevas funcionalidades y ofrecer cosas nuevas a nuestros clientes. También permite calcular los riesgos de la migración de nuestras aplicaciones a las nuevas versiones, de forma de poder hacerlas con un costo razonable. Que evolución ha tenido el proceso de betatesting en GeneXus? Agilidad. Hoy tenemos disponibles Night Build que permiten tener la ultima versión desarrollada. Tiene el riesgo que algo que ayer funcionaba, hoy deje de funcionar, pero también tiene la ventaja de poder tener arreglos muy rápido. Estabilidad. Se nota que el proceso de desarrollo interno de GeneXus ha madurado, pues las cosas se rompen menos que en ciclos anteriores. Hoy se puede desarrollar con la vers...

Son necesarios los técnicos de pruebas (testers) en aplicaciones GeneXus?

Imagen
Encontré la presentación: Model-Driven Development, the end of the test profession? View more presentations from Johan den Haan . Me senti muy identificado con los problemas y las conclusiones a las que arribaron. El problema planteado es si es necesario testear aplicaciones generadas automáticamente por generadores de aplicaciones (como GeneXus). Con un generador de aplicaciones, se hacen mucho menos importantes los testeo de bajo nivel y toman mas importancia las pruebas de mayor nivel de abstracción. Pasan a no ser tan importantes: Testeo unitario basado en el código. Testeo de vulnerabilidades de seguridad en el codigo (si todos los ingresos de datos son generados de igual forma, validando que uno de cada tipo queda bien generado, puedo asegurarme que que todos esta bien).  Pasa a ser MAS importantes, para diseñar la aplicación Testeo de requerimientos Prueba del diseño funcional de la aplicacion y patrones.  También...

Como programan los niños hoy.

Imagen
Ayer Felipe (11 años) me pidió que le instalara Alice 2.2  (el sitio se ve bien con IE, pero mal con Chrome y FF). No lo conocía y le pregunte que era. Su respuesta fue: Es un lenguaje de programacion como el Scratch , pero en 3D.  Después de instalarlo, pude ver que el entorno de programación es bastante potable y permite a los niños crear animaciones de personajes en 3D (bien al estilo Second Life) con poco esfuerzo. Esta bien resuelto la interaccion entre los personajes y los objetos del entorno. La forma de programar es a traves de "Drag and Drop". Es muy conveniente para aquellas personas que no conocen la sintaxis un lenguaje pues es mucho mas difícil cometer errores, pues la programación consiste en arrastrar objetos a la pantalla o cajitas a donde se almacena el código y luego llenar los campos que quedan libres.  Pensando en los nuevos dispositivos tipos tabletas, los ambientes de programación van a t...

Reglas en tiempo de ejecución (runtime) en aplicaciones GeneXus.

Imagen
En Concepto desarrollamos aplicaciones con GeneXus, para varios clientes. En las mismas aparecen muchas veces situaciones donde la aplicación debe tomar decisiones basadas en los datos de la misma. Algunos ejemplos de estos problemas: Documentos que hay que exigir para una determinada operación. A que oficina debe pasar el tramite dependiendo su contenido (monto, producto, etc.). Controles a aplicar a una determinada operativa Descuentos a realizar a una venta (depende del cliente, de la cantidad vendida en el año, la cantidad del pedido actual, etc.) Esto se puede resolver de varias formas. Opción 1) Una fácil, es hacer un programa de la forma (para el último ejemplo) do case case TipoCliente='IMPORTANTE' &Descuento=20 case FacturaImporte>1000 and TipoCliente='CHICO' &Descuento=10 case TipoCliente='CHICO' &Descuento=5 otherwise &Descuento=0 enddo Que problemas tiene este enfoque? Cada vez que el departamento comercial...