Wednesday, 28 September 2016

Oracle XE, Forms 6i y un viaje a Ecuador

Hace algún tiempo tuve que realizar una implantación de una aplicación desarrollada en Oracle Developer 6i (Forms y Reports) para un museo. Por razones económicas decidimos utilizar una licencia Oracle Express Edition 10g, pero al intentar arrancar la aplicación accedíamos a ver durante un instante la consola de Windows y se cerraba inmediatamente.

El proyecto se estaba pasando de las horas estimadas para resolverlo y ahora teníamos un problema con el que nadie en la empresa se había topado antes. Consultamos la página metalink de Oracle, foros y páginas sobre desarrollo con Oracle.

Finalmente, tras muchas búsquedas en Google obtuvimos la respuesta al problema en el foro de Oracle Users Group de Ecuador, exactamente en una entrada de Paola Pullas y los comentarios al mismo.

Parece ser que Oracle XE 10g necesita de un parche para funcionar con Developer 6i y además cambiar el juego de caracteres a UTF8. Les indico aquí los pasos que tuvimos que realizar.

Primero, pedirle al DBA responsable de la instalación de la base de se conectara a la base de datos XE como SYSDBA en el sqlplus y ejecutara las siguientes instrucciones para cambiar el juego de caracteres.

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET INTERNAL_USE UTF8;
SHUTDOWN;
STARTUP RESTRICT;
SHUTDOWN;
STARTUP;

Posteriormente fue necesario ejecutar el siguiente parche de Oracle sobre la instalación de Oracle Developer: Parche 18 de Developer, Patch number 4948577.

Espero que esta entrada resuelva el problema a algún desarrollador. Seguro que aún quedan sistemas y aplicaciones que están usando esta configuración.

Tuesday, 27 September 2016

Totales en blanco en Oracle BI Discoverer

Otro post técnico. En este caso cómo resolver el problema de los totales en blanco en Oracle Business Intelligence Discoverer:

En algún trabajé como administrador de la EUL (capa de usuario final) con las herramientas de Discoverer y nos encontramos con un problema que nos trajo de cabeza durante unos días: Los totales de algunas columnas se mostraban en blanco a pesar de contener datos y solamente mostraban una cantidad cuando sumaban sólo un registro. Si había más se mostraban vacíos.


Es algo que aparentemente puede parecer un error o bug de esta herramienta pero resultó ser una decisión de diseño en la herramienta. Me explico:

Si tenemos dos carpetas relacionadas entre sí como maestro-detalle y en la carpeta maestra tenemos la cantidad o el número que vamos a sumar, tendremos un problema ya que la suma contará la cantidad del registro maestro tantas veces como elementos haya en el detalle, y probablemente no es esto lo que queremos.

Mejor verlo con un ejemplo. Si tenemos una carpeta maestra con los datos de guías turísticos en la que además indicamos cuál es la tarifa que cobra cada guía mensualmente:

Id.     Nombre Tarifa
1         Antonio    2000€
2        Juan          1000€
3        Marta        1500€

Si además tenemos una carpeta detalle en la que tenemos la relación de idiomas que habla cada guía, tendremos algo como esto:

Id.     Nombre     Tarifa Idioma
1         Antonio        2000€        Inglés
2         Juan              1000€        Inglés
2         Juan              1000€       Alemán
2         Juan              1000€       Sueco
3         Marta            1500€       Alemán

Si hacemos un 'Summary' o 'Total', la herramienta de Discoverer nos mostrará que Antonio cobra 2000€ al mes, Marta 1500€ y que Juan cobra "_____". Es decir nos mostrará la casilla en blanco o vacía. Si mostrase un resultado nos daría 3000€, cantidad que no es la que realmente cobra Juan.

Tenemos algunas formas de resolver esto:
  1. Quizás la cantidad que estás sumando no deba ir en la carpeta detalle. Deberías revisar el diseño de la base de datos.
  2. Quizás la relación entre ambas carpeta deba ser de 1 a 1 y lo tienes puesto por error de 1 a muchos.
  3. Si todo lo anterior está correcto, hay una cosa más que puedes hacer: Decirle a Discoverer que sume la cantidad de todas formas, aquí están los pasos:
    1. Activar en las opciones del Discoverer Desktop la casilla 'Show the sum of the values displayed in the contributing cells'
    2. Establecer con valor 1 en lugar de 0 las propiedades AllowAggregationOverRepeatedValues yAggregationBehavior del fichero prefs.txt en el servidor de Discoverer en la ruta $ORACLE_HOME\Discoverer\util
Este último caso debemos tomarlo siendo conscientes de lo que supone. Aunque sea perfectamente válido para el caso que estás intentado resolver es posible que en otro informe que en el futuro esté colgado del mismo servidor, impidamos ver al administrador que hay un problema (fan trap) y se muestren totales con importes erróneos como el de la tarifa de Juan.

Monday, 26 September 2016

Upcoming book: Agile 101 - Practical Project Management

New book, new prezi. I have prepared for you a presentation of the upcoming book Agile 101. There you can find a short description of the chapters you can find inside.

Check it out on Prezi site or directly here:

Monday, 19 September 2016

Agile 101: Broken Windows Theory

In the late 1960s, a university professor carried out a psychological experiment. He left two identical cars in two different neighbourhoods. One in a poor, high-crime neighbourhood in the Bronx, New York. The other one in a rich, quiet area of Palo Alto, California. Shortly after it was abandoned, the car in the Bronx started to have all its parts stolen. First the radio, then the tires, the mirrors, and anything of value. Yet the car abandoned in California remained undamaged. The study did not end there. When the car in the rich neighbourhood had been intact for a week, the researchers broke one of its windows. This escalated quickly, and soon afterwards the effect was the same as it had been in the Bronx. Theft and vandalism swiftly reduced the car to its bare bones in both neighbourhoods. A car with broken windows sends out a message of disrepair and negligence. It spreads the notion that anything goes. Every new act of vandalism reinforced and broadcast the idea that nobody was taking care of that car. That nobody cared.

A similar idea can be seen in the training of health professionals. If a patient or an elderly person has a stain, or gets dirty somehow, that person should be cleaned. Even if it’s only a little spot. If patients stay in that state, they will be less careful themselves in keeping clean. They will tend to feel that it doesn’t matter anymore, it’s already dirty. So their general state of hygiene, self-esteem, and thus health level will start to decline.

The results of this psychological study are applicable in many situations of our daily lives: from the care of our home to the maintenance of our car. But they’re also applicable to our jobs. For example, if you’re a programmer or a project manager, and you allow for a new version to be deployed. But you haven't had it sufficiently tested. Or if you leave that technical “debt” unpaid in the code now —because “we’re in a hurry.” You’d be broadcasting to the whole team the feeling that anything goes. That “it’s enough as it is” and that one can leave quality aside. Sooner or later the phone will ring with complaints from users. Soon we will see a lengthy queue of reported bugs in our queue.

When we apply this theory to software, it’s helpful to explain the term entropy. In physics, entropy is the level of disorder or randomness in a system. Say you see badly indented or commented code. Or a bad choice when naming a variable or some bad design. Fix it as soon as possible or schedule its correction for the near future. Take some sort of action to limit disorder or it will expand. It will create the feeling that any patch or quick fix is valid.

If some code (or thrown-together code) will make your system deteriorate quickly, impeccably written and designed software will have the opposite effect. It will make new programmers avoid breaking something so beautifully built. They will make an effort to put in place the best code they can write. Now you know: make your life and your project easier by fixing broken windows as soon as they appear.


You can find texts like this and many other about how to manage agile projects in my book Agile 101: Practical Project Management (available on Amazon).
Book on Scrum: Agile 101, Practical Project Management
Agile 101 - Practical Project Management

Translation by Begoña Martínez. You can also find her on her LinkedIn profile. Proofreading by David Nesbitt.

Wednesday, 14 September 2016

Promociones de Amazon: Kindle Flash y PublicaConKindle

Amazon quiere celebrar durante todo el mes de octubre el fenómeno de la autopublicación con una promoción especial en una selección de libros entre los que estará mi libro Certificación Professional Scrum Master.

Durante esta promoción, llamada #PublicaConKindle, el libro estará a la venta por sólo 0.99€ en lugar de los 2.99€ habituales. Amazon publicará pronto una página especial dedicada a este evento para promocionar la publicación independiente. Pondré el enlace por aquí cuando esté listo.

Habrán muchos otros libros en promoción durante todo octubre con esta promoción así que aprovechen ese mes para ver si está en oferta alguno de los libros que les gustaría comprar.

Mi primer libro, Gestión práctica de proyectos con Scrum, fue seleccionado de nuevo hace unos días para una promoción Kindle Flash. El 5 de noviembre este libro estará durante todo el día a tan sólo 1.49€. Avisaré también en este blog unos días antes por si te interesa comprar el libro en ese momento.

Aquí tienes los enlaces a mis dos libros en Amazon:

Amazon.com
Amazon.es
Amazon.com.mx














Amazon.com
Amazon.es
Amazon.com.mx

Sunday, 11 September 2016

Dudas sobre Scrum

Un lector de este blog me preguntaba hace ya algún tiempo algunas dudas que le surgían en el uso de Scrum en sus proyectos. Algunas de ellas pueden ser bastante comunes a otros equipos de Scrum o que yo mismo he tenido cuando intentaba aplicar Scrum. Aquí les pongo algunas de estas respuestas (sería la solución que yo aplicaría en los tipos de aplicaciones que conozco pero puede que no sea el mismo tipo de proyecto/equipo/producto/etc.).

¿Qué pasa cuando una historia de usuario requiere análisis que debe ser desarrollado en el propio sprint?¿el resto del equipo que no analiza se pone con otras historias de usuario del Sprint Backlog?

La historia de usuario es ya parte del análisis y debería estar bien definida y concretada cuando se va a comenzar un sprint. Es cierto que en ocasiones, cuando el equipo de trabajo comienza a realizar la tarea puede encontrarse con dudas o puntos que no tienen claro. Debería bastar con una llamada al Cliente o una breve reunión para resolverlo.

Es un punto complejo éste. Es cierto que es habitual que el desarrollo pisa al análisis y llegue la hora de desarrollar funcionalidades que aún no están bien analizadas. Para esto es bueno mantener reuniones frecuentes con el cliente para ir avanzando y concretando tareas previstas para más adelante de forma que a la hora de planificar el sprint éstas funcionalidades estén listas para comenzar. Si aún así el desarrollo sigue encontrando tareas que aún no están bien descritas quizás deba dedicarse una parte mayor del equipo a analizar y concretar estas tareas en lugar de a desarrollar.

¿Qué ocurre con un equipo que mezcla seniors y juniors con grandes diferencias salariales?¿van a empujar todos con la misma intensidad? 

Bueno, en principio, se supone que la diferencia salarial corresponde a su nivel de experiencia y saber hacer en su trabajo por lo que los junior cobran menos. Conocen aún poco sobre la tecnología o el producto y que, a medida que van aprendiendo y adquiriendo experiencia esta diferencia se acorta o desaparece. 

Si algún miembro del equipo entiende que no cobra a razón de lo que está aportando es cierto que puede perder el ánimo o las ganas de trabajar. Aquí entramos en un asunto de recursos humanos en lugar de Scrum pero yo le aconsejaría que comente con sus responsables el trabajo que ha realizado y lo que ha podido aportar y vea con ellos si tienen la misma percepción sobre esto y consideran que en algún momento puede hacerse una revisión de su salario.

¿Qué ocurre cuando el Team auto-gestionado tiene que tomar una decisión técnica?¿vale igual el voto de un senior que el de un junior?

Yo no pondría valor a los votos del equipo de trabajo. A veces la mejor idea puede venir del que lleva menos tiempo en el trabajo, aunque lo habitual sea que los senior sean los que más aporten en la discusión que llevará a la decisión técnica que finalmente se tome.

Algo que he utilizado a veces es escribir en una pizarra las ventajas e inconvenientes de cada solución. A veces, nada más terminar de escribir esos pros y contras todos nos damos cuenta de cuál es la solución que más conviene ahora. Otras veces esto no está tan claro y hay que apostar por una aunque no haya consenso.

Cuidado si la opción por la que se apuesta es siempre la de 'hay que hacerlo así ahora porque no tenemos tiempo'. Es verdad que a veces es la solución que se debe tomar ante una urgencia. Explícale bien al equipo de trabajo el por qué de esta decisión en estos momentos pero explícale también al Cliente que ahí ha quedado un asunto por resolver que deberá ser programado para un próximo sprint si no queremos que esa deuda técnica nos acumule más errores pronto. Si no hacemos esto, con los años, el proyecto se nos puede convertir en uno de esos proyectos en los que todo el equipo de trabajo está resolviendo bugs y no nos queda tiempo para desarrollar nuevas funcionalidades.



Si te ha gustado este post, puedes encontrar más contenidos que expliquen Scrum de forma práctica y desde su base en mi libro en Amazon Curso práctico de Scrum: Algo más que teoría.

Libro en Amazon: Curso práctico de Scrum: Algo más que teoría
Libro en Amazon: Curso práctico de Scrum - Algo mas que teoría


Certificación Professional Scrum Master best seller en Amazon.com

Hoy ha sido mi libro Certificación Professional Scrum Master el que ha llegado a la categoría de best seller en la categoría de Informática e Internet para los libros Kindle en español de Amazon internacional.

También ha llegado al número 6 en ventas para todos los libros (Kindle y en papel) en español para la categoría de Computación e Internet. Estas son unas imágenes de esas posiciones:

Certificación Professional Scrum Master best seller en Amazon.com
Libro preparación PSM I best seller en Amazon.com

Certificación Professional Scrum Master número 1 en categoría de Informática de Internet de Amazon.com
ebook Certificación Professional Scrum Master número 1 en Informática e Internet en Amazon.com


Si quieres saber cómo puedes preparar la certificación Professional Scrum Master I de Scrum.org, saber que tipo de preguntas puedes encontrar ahí y prepararte con algunos pequeños tests de práctica, puedes encontrar el libro en Amazon.com, Amazon.es o Amazon.com.mx.

También puedes encontrar más información sobre esta guía de preparación para la certificación PSM I en ese enlace a esta misma web.

Aquí están los enlaces a cada una de las tiendas Amazon donde se puede comprar el libro:

Amazon.com
Amazon.es
Amazon.com.mx


Saturday, 10 September 2016

Gestión de proyectos con Scrum entre los más vendidos en Amazon México

Durante casi todo el día de ayer mi primer libro, Gestión práctica de proyectos con Scrum, estuvo entre los más vendidos en diversas categorías de Amazon México:

  • Número 1 en la categoría Desarrollo de Software de los libros Kindle.
  • Número 1 en la categoría Desarrollo de Software de todos los libros (Kindle y papel)
Llegó a alcanzar el puesto número 739 en ventas entre todas las categorías de la tienda Kindle de México. Además, aún hoy, si se busca en Amazon México por la palabra Scrum, mis libros salen en las posiciones 1 y 5 (Certificación Professional Scrum Master). Les dejo unas imágenes de las posiciones que alcanzó:

Gestión práctica de proyectos en los más vendidos en Amazon México

Gestión práctica de proyectos número 1 en dos categorías de Amazon México

Si aún no lo has leído y te interesa comprarlo, aquí tienes los accesos a las tiendas de Amazon en las que se vende:

Amazon.com
Amazon.es
Amazon.com.mx