12.29.2009

Nuevo Blog: Tecnología que Funciona

A partir de este 2010, estoy moviendo mi blog de http://msdnfan.blogspot.com a http://tecnologiaquefunciona.blogspot.com. Este cambio busca una mejor alineación de mi blog con los temas que me interesan ahora.

En este nuevo blog voy a hablar de tecnología de información dentro del contexto de la realidad mexicana - con un enfoque especial en software. Estos son los temas que voy a tocar:

  • Retos a los que nos enfrentamos en el desarrollo e implementación de proyectos de tecnología de información
  • Reflexiones sobre la aplicación de las tecnologías de información en el contexto de México
  • Reseñas y comentarios sobre productos y servicios novedosos relacionados con tecnologías de información
  • Pensamientos sobre los retos de las empresas y profesionales de tecnologías de información en México
Quiero invitarlos a todos a que me acompañen en esta nueva aventura. Gracias por su apoyo todo este tiempo.

8.11.2009

¿Por qué es tan difícil de usar el software?

Recientemente terminé de leer el libro "The Inmates are Running the Asylum" de Alan Cooper. Me pareció excelente y estoy en lo fundamental de acuerdo con sus planteamientos. Pocas veces encuentro alguien con quien esté tan en sintonía.

Desde hace algunos años he venido reflexionando sobre el mal trabajo que hacemos (en la industria en general) para hacer nuestro software más accesible. Todos los sistemas operativos actuales (incluyendo a también a Mac OS X y a Linux) hacen un trabajo miserable en lo que se refiere a la facilidad de uso y la curva de aprendizaje para "usuarios neófitos". Tan sólo repasemos algunos de los conceptos básicos que una persona debe tener claras para siquiera empezar a utilizar una computadora:

1. Hay almacenamiento persistente (el disco) y temporal (el RAM). Yo pregunto, ¿por que debe de ser esto, hoy en 2009, algo de lo que se tenga que estar consciente? ¿Qué no podemos asegurarle a nuestros usuarios que nunca van a perder información?

2. Tus documentos se guardan en una estructura de archivos jerárquica. ¿Para qué necesitamos los archivos? ¿Los folders? Cuando hoy contamos con tecnología de búsqueda altamente poderosa.

3. Las aplicaciones pueden estar "corriendo" o no. ¿Qué importa? ¿Por qué un usuario tiene que distinguir entre estos dos estados en las aplicaciones? ¿No podríamos hacer estas transiciones totalmente transparentes?

4. No es lo mismo "click" que "doble click". Pocos idiomas de interfase de usuario son peores que este - fuente de inagotable confusión para cualquier persona que no es un nerd.

5. F1, F2, F3, F4, F5.....F12, ESC, ALT, CTRL, CMD. ¿Necesito decir más?

6. Anota cada detalle de cualquier mensaje de error. Hoy le pedimos a los usuarios que, cuando nos reporten un error, deben indicarnos con todo detalle lo que sucedió, lo que les pasó, etc. ¿No podríamos grabar eso nosotros mismos?

7. ¡Se te olvido el attachment! Queremos que los usuarios entiendan perfect este concepto del attachment como si fuera "natural".

8. No vayas a apagar la computadora con el switch porque se corrompe el disco - hay que darle shut down. Simplement patético.

9. Prende tu PC al menos de 5 a 10 minutos antes de que puedas trabajar. Es que tenemos que "bootear" tu sistema operativo. Patético también.

10. Cuando te compres una nueva PC lo mejor es que la instales desde cero. Total que tu tiempo no nos interesa - y lo de menos es que pierdas un par de dias reinstalando todo.

Creo que en esta industria de nerds usamos el "pseudo-conocimiento" de todos estos puntos (y muchos, muchos más) para sentirnos comfortablemente superiores a los "tontos usuarios". ¿Cuantas bromas no existen en nuestro medio dónde nos burlamos de los usuarios? Creo que el objeto de bromas debería de ser la industria (¿Cual es la diferencia entre un coche y una PC?) más que los usuarios.

Nuestro software hoy está pensado para la venganza de los nerds - hacer sentir idiota a la persona normal que tan solo quiere usar la computadora para realizar alguna tarea.


Ya basta.

3.19.2009

Algunos Comentarios sobre Los Anuncios de Microsoft en Mix

Esta semana Microsoft está llevando a cabo su conferencia Mix por cuarta ocasión donde habla sobre su estrategia para el mundo de aplicaciones web.

En muchos lados de la red hay información al respecto. Me gustaría compartir algunas primeras reflexiones sobre lo que me parece más importante de lo anunciado.

Silverlight 3.0 (Beta): Microsoft sigue invirtiendo fuertemente en Silverlight que ya desde la versión anterior (2.0) me parece que era mejor que Adobe Flash en muchos aspectos. La nueva versión anunciada incluye funciones que la van a hacer mucho más aceptada aún. El soporte a aplicaciones fuera del navegador hace a Silverlight más viable para aplicaciones de línea de negocios. La inclusión de más de 60 controles con código fuente también me parece muy relevante.

Estas mejoras desde mi punto de vista tienen un efecto interesante cuando se compara a Silverlight con WPF como plataforma para aplicaciones sofisticadas. Ambas mejoras hacen más amplios los escenarios de negocio donde uno escogería Silverlight por encima de WPF como objetivo de desarrollo. WPF no se hace irrelevante, pero definitivamente vamos a estar escogiendo Silverlight para algunos escenarios donde antes hubieramos usado WPF.

Internet Explorer 8.0 (Versión Final): Da gusto que Microsoft esté mejorando su navegador, aunque habría que reconocer que la competencia definitivamente ha jugado una "influencia positiva" en esto. En este momento estoy escribiendo este post desde la versión de 64 bits de IE8. Lo voy a estar usando un rato para evaluarlo. La verdad es que va a costar trabajo recuperar la reputación de IE después de la debacle de IE 6. Hasta hora donde he navegado funcionó bien excepto en Facebook donde tuve que prender el modo de compatibilidad con IE7. Creo que el impacto de IE8 dependerá en parte de cuantos sitios se animen a tomar provecho de sus nuevas funciones como WebSlices o Accelerators. La verdad es que la competencia en navegadores está candente y esto sólo significa beneficios para los usuarios.

Cambiando un poco de tema, me quiero quejar del limitado soporte a 64 bits en algunos productos Microsoft. Especificamente, no hay planes para Silverlight en 64 bits (¡¡¡ni para Visual Studio!!! ¡¡¡ni para Office!!!). Me parece que es un error. La estabilidad de Windows en 64 bits es mucho mejor que en 32 y el performance también. En cosa de un año o dos muchas computadoras van a traer más de 4GB de RAM y para aprovechar eso a fondo necesitamos 64 bits. Ahora que Adobe tiene el mismo problema con Flash, aunque ellos ya anunciaron que si soportaran 64 bits (y ya sacaron una versión para Linux).

Outlook es un mounstro consumidor de memoria que le vendrían muy bien los 64 bits y, en cuanto a Visual Studio.....todos sabemos cuantas ventanas, instancias, etc nos gusta tener abiertas simultáneamente a los desarrolladores. En cuanto a Silverlight, su ausencia en 64 bits como la de Flash hacen que el IE8 de 64 bits sea casi un adorno inusable en muchos sitios.

Por ultimo esta semana Apple anunció y liberó el beta del iPhone OS 3.0. Me parece que hay varios elementos interesantes, llamándome la atención mucho el soporte peer-to-peer. En mi opinión este modelo ha estado muy subexplotado en aplicaciones móviles y hay literalemente miles de posibilidades a explorar. Si es realmente fácil conectarme con otro iPhone creo que veremos una inundación de aplicaciones que tomen ventaja de esto.

Microsoft tiene que meterle velocidad máxima a Windows Mobile 7.

2.20.2009

Consejos para Desarrolladores de Software en un Ambiente Recesivo

La semana pasada escribí algunos consejos e ideas sobre lo que los empresarios de la industria de software podemos hacer para enfrentar un ambiente económico negativo.

Desde entonces se ha dado una discusión muy interesante dentro del grupo de Microsoft Regional Directors sobre consejos orientados a desarrolladores. ¿Qué puede hacer un desarrollador para incrementar sus posibilidades de mantener su trabajo o, en caso de estar desempleado, mejorar sus posibilidades de encontrar trabajo?

Quiero aclarar que estas ideas no son mías (aunque estoy de acuerdo con ellas). Son de varios Microsoft Regional Directors de todo el mundo. La mayoría son o empresarios de software o tienen puestos directivos dentro de las áreas de TI en corporativos.

1. Trata tu Trabajo como Tal y Hazlo con Orgullo: "Muchos desarrolladores tratan a su trabajo como un hobbie, atacan con pasión las partes que les gustan y tratan de evitar todo lo demás. Pensemos en la gente que hace trabajos mucho más meniales. Sin duda no lo hacen por diversión pero hacen un buen trabajo porque es la razón por la que cobran. Si estos desarrolladores tuvieran la misma actitud, probarían mejor su código y lo documentarían adecuadamente."

2. Conoce Más sobre "El Negocio": "Los desarrolladores deben aprender un poco sobre el negocio. Me parece que con "la gente de negocios" tomando las decisiones sobre quien se queda y quien se va en una recesión entender tu valor para el negocio y ser capaz de expresarlo es muy importante. También si miras a tu alrededor y te das cuenta que el proyecto en el que estás trabajando no es crítico para el negocio o pierde dinero continuamente puede convenirte ofrecerte a apoyar en otros proyectos en una parte más importante del negocio. Ser capaz de comunicarse elocuentemente con gerentes y directores ayuda mucho a mantener el trabajo y, en caso de ser despedido, el ser capaz de expresar el valor que aportaste de negocio en tu empleo anterior mejora mucho tus posibilidades de ser contratado de nuevo."

3. Busca Moverte Hacia Arriba en la Cadena de Valor: "Pensemos en esto: la gente al final de la linea de producción es de la más facil de eliminar cuando cae la demanda. Todos entendemos eso cuando hablamos por ejemplo de la línea de producción de General Motors. Pero lo que muchos desarrolladores no entienden es que *ellos también pueden estar al final de la cadena de valor*. Esas son las malas noticias. las buenas son que es relativamente fácil subir en la cadena: se un conducto hacia la "gente de negocios", involucrate en el soporte a las ventas nuevas, promueve la identificación y reuso de propiedad intelectual existente, mide tu rentabilidad y propón y apoya esquemas que reduzcan los costos. Muestra como el desarrollo de calidad puede bajar los costos y hazlo realidad."

4. ¿Tienes una Ética de Trabajo? "Entiende que el lugar donde trabajas se trata de generar utilidades y no necesariamente de hacer del mundo un mejor lugar o avanzar la tecnología. La innovación tiende a ser complicada en este ambiente económico. Cualquier proyecto de investigación, lateral, o experimental/divertido puede pasar de un día para otro a ser un gasto innecesario. Una recesión es un momento cuando la actitud de - esta compañía tiene suerte de tenerme - probablemente deba guardarse por un par de años. Ayuda en los proyectos que generan ingresos para la empresa - aunque no usen WPF, Ajax o tu tecnología favorita del momento. Comprende que celulares, gadgets y computadoras Corei7 no son gratis aunque parezcan relativamente baratas."

5.
Sobre Negociaciones de Sueldo y Compensación: "Yo tendría cuidado en las revisiones anuales con respecto a demandas y necesidades. Ayuda muchísimo si puedes alinear tus demandas de mejores ingresos a los objetivos de negocio. Por ejemplo, bonos y compensación variable. Jugar rudo puede ser por ahora una oportunidad de entrar a la lista de recortes. Cualquier compensación que te haga más atractivo con los tipos que balancean el presupuesto te ayuda."

6. Reconsidera tus Dogmas: "Algunos desarrolladores tienden a ser dogmáticos. Se vuelven religiosos acerca del lenguaje (C# vs. VB), proceso (Agil vs. CMMI), técnicas (TDD vs. patrones), etcetera. La mayor parte de los tomadores de decisión de negocios no están interesados en eso. Hace poco me tocó ver a un par de excelentes desarrolladores perder su trabajo. No estaba haciendo ningún trabajo "real" porque les preocupaba más dedicarse a defender sus dogmas. Quizá tienen razón. Quizá el cliente va a pagar caro por sus decisiones técnicas mal tomadas. Pero por lo pronto ellos no tienen trabajo y otros si."

Definitivamente en mi opinión no todo en la vida es "conservar la chamba". Cada situación personal es diferente. Sin embargo, estos consejos, aunque puedan resultar un poco dificiles de leer, si reflejan algunas de las cosas que piensan un grupo de personas que tienen como responsabilidad contratar y organizar equipos de desarrollo y me pareció que puede ser valioso para quien lo quiera tomar.

2.12.2009

Nuestro Reto Ante la Crisis Económica

El bombardeo de noticias económicas negativas ha sido incesante los últimos días. Miles de despidos, caída en las ventas, cancelaciones de inversión, nadie te paga ,“you name it”. A veces puede parecer que no habrá salida (excepto claro, para Carlos Slim que desde el otro lado nos dice: “ ora si se los va a llevar la ch....  ...porque a mi no!!”) Además la selección volvió a perder (who gives a fuck) y ya no hay futbol americano.

Las empresas de software podemos ser muy vulnerables ante esta situación. La inversión en capital es uno de los rubros más sensibles en una situación como la actual. ¿Qué hacer?

  1. Recuerda Que Lo Que No Te Mata Te Hace Más Fuerte: Las crisis son como la “selección natural” del mundo empresarial. Después de ellas vamos a sobrevivir (espero que estemos en ese grupo) menos empresas de las que hoy existen. Nuestro “nicho ecológico” va a estar menos ocupado, así que si pasas la crisis seguramente después no solo te recuperaras sino que te irá mejor de lo que te iba antes.
  2. Potencia el Valor de Negocio que Generas: Es momento de explotar al máximo nuestra creatividad y “ponernos en los zapatos del cliente”. Hay que entender que la mayoría de nuestros clientes están racionalizando sus gastos. Sólo entendiendo realmente como generamos valor de negocio podremos convencerlos. En mi opinión el diferenciador importante en estos momentos es mucho más de negocio que técnico.
  3. Trabaja Más Duro – Y Motiva: Si te pones a pensar lo que enfrentas como organización en una situación de crisis como esta, aunque parezca difícil, no es nada comparado con lo que grupos de hombres y mujeres han tenido que enfrentar en el pasado. Si es posible motivar a un grupo de seres humanos para que dejen la vida en la búsqueda de algo (recuerda el día D) ¿no puedes motivar a tu equipo para atravesar esto y dar el esfuerzo extra que se necesita? Tip: Ten valores que inspiren – los que sean – y vívelos tu antes que nadie – el puro rollo vale M.
  4. Reduce tus Gastos – Pero No en Todo: Reducir gastos es la reacción intuitiva en una situación de crisis – y sin duda tiene validez. Pero por si sólo no resuelve nada - ¿o tu crees que eres el único al que se le ocurrió? Hay algunos aspectos en los que opino que no hay que escatimar – marketing y ventas, retención de talento (lo peor que puedes hacer es ponerte a correr gente valiosa en éste momento), calidad. Por otro lado, ¿realmente necesitas esa computadora nueva? ¿ir al extranjero?
  5. Mejora tu Talento: Va a haber mucha gente valiosa sin trabajo. Triste pero inevitable y cierto. Es una oportunidad para mejorar el nivel de talento de tu organización. Quien tenga el mejor equipo va a sobrevivir y saldrá fortalecido.
  6. No Pierdas la Fé: Cuando todo parece perdido no lo está. Sólo parece perdido. Salte a dar una vuelta. Distráete. Vete a un bar con los últimos pesos (exagero un poco). Relájate, recárgate de energías, deja de pensar en el problema. Acude a quien te quiera. Hay más gente dispuesta a ayudarte de lo que crees. No Pierdas la Fé.


Nos vemos del otro lado. Eso espero. Fingers crossed.