Verifica tus nulos

Es muy sencillo verificar si una variable tiene referencia a null:


 


if (dFecha == null) 

 


Pero ¿y si los datos que quieres evaluar vienen de una base de datos? Cuando se trata de un campo de tipo fecha no es suficiente evaluarlo contra null, y asignarlo a una variable DateTime te requiere hacer un cast para que te permita usarla, pero si está en null, no te permite hacer esta asignación:


 


//Si es null el campo, no permite hacer este cast
dFecha = (DateTime)miDataReader["Fecha"];

 


La solución está en evaluarla contra DBNull, que contiene precisamente el valor null a nivel de base de datos:


 


if ( miDataReader["Fecha"] == DBNull.Value )

 


Evaluando de esta forma nuestros campos de la base de datos, podremos tener mejor código y más probado.

Software para la gente

Ahora que trabajo en el sector público me toca toparme con muchas situaciones en donde definitivamente hay muchas cosas que mejorar. Esto puede pasar en cualquier lado pero décadas de no poner en su lugar las Tecnologías de Información dan pie a que quienes lo iniciaron, quizás no tuvieron en mente más que poder implementar lo mejor posible una solución a algún problema lo más rápido posible sin importar mucho la usabilidad o calidad.


Y es que tratando de simplemente cumplir con los requerimientos exclusivamente provoca dejar de lado muchos aspectos importantes en el desarrollo de software. A veces uno no se da cuenta que dar un click primero y después tener que capturar un dato para luego con el mouse (¡y sólo con el mouse!) poder seleccionar una opción de un combobox y por fin poder presionar el bendito botón de imprimir se puede mejorar de muchas formas. En este ejemplo por supuesto está el de agregar atajos de teclado (poniendo en los textos de los botones generalmente & antes de la letra que queramos usar en conjunto con ALT para accionarlo), agrupar en funciones comunes tareas repetitivas, no esconder en menúes funciones críticas entre muchas otras.


Lo importante a darse cuenta es que cualquier mejora en los procesos dentro del sistema ayuda a las personas que lo usan a hacer su trabajo mejor. De lo que se trata es de poner en sus manos las herramientas con las que logren cumplir sus labores y atender sus asuntos, y mientras más rápido y eficiente sean, ellos podrán tener la satisfacción de un trabajo bien hecho y ¿porqué no? hasta ser reconocidos como aquellos que tuvieron mejor productividad que nadie. Tiene que ver mucho el nivel de aceptación y familiaridad con la tecnología del usuario, pero vuelvo a lo mismo, para muchos de ellos, el sistema, la computadora, la página web con la que trabaja a diario no es más importante que su engrapadora, teléfono o calculadora de escritorio, son sólo sus herramientas de trabajo.


Algo que ayuda mucho es ver directamente al usuario usar el sistema. En la recopilación de requerimientos, en la planeación e implementación de técnicas y prácticas de usabilidad siempre se tratan de poner lo mejor al alcance del usuario. Pero verlo en persona y notar como está usando el sistema, ver como aprovecha o no los atajos de teclado, o que tal vez esa característica de usabilidad en la que se invirtió mucho tiempo quizás le parece más tedioso que la solución más simple, abre mucho los ojos. Esto va más allá que hacer caso a lo que su gerente ideó pues quien usará el sistema todos los días no será él. Conversar, hacer caso a las observaciones del usuario y que vea el punto de vista del equipo de desarrollo siempre será benéfico para su productividad, tu satisfacción como quien le brindó las mejoras y una relación de provecho a futuro.


Photobucket


En esta imagen se puede ver como unas simples mejoras de usabilidad hacen más efectiva la interacción del usuario y más entendible para él lo que se está haciendo. Caso muy diferente al estado original de la aplicación que se puede ver a la izquierda. Esta imagen se puede ver más a detalle en el Innovation Tour 2008 que ya está por todo México en marcha. Este tipo de mejoras simples aportan un gran valor a las aplicaciones que creamos y tendremos más clientes satisfechos. Si hacemos nuestro trabajo con esta cultura de servicio sin perder de vista que nuestro software lo usarán personas de carne y hueso que sólo quieren hacer bien su trabajo, también nosotros estaremos mejor.