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.

11.05.2008

Software Gratis de Microsoft para Empresas Nuevas

Microsoft ha anunciado ya en Estados Unidos su nuevo programa de apoyo a startups. Es un excelente programa donde por tres años tienes acceso a una amplisima gama de software Microsoft para operar tu negocio GRATIS.

La mejor noticia es que sabemos de muy buena fuente que el programa si se ofrecerá en México con algunas variantes menores. Se llama "BizSpark".

¿Para qué empresas es?

  • Empresas con menos de tres años de creación.
  • Ventas actuales menores a USD 1 millón por año.
  • Empresas que crren software o servicios (o software + servicios).
Tiene un costo de sólo 100 USD que pagas al final del periodo. El programa incluye uso ilimitado para producción de Windows Server, SQL Server, Biztalk y Office Sharepoint (todo con licencia de acceso por Internet), Systems Center para manejar tus servidores y licencias de desarrollo de Visual Studio Team Suite.

Aun no se definen los detalles de operación para México, pero vale la pena que vayan conociendo la guía del programa para Estados Unidos en http://download.microsoft.com/download/4/d/4/4d41081a-d8d9-407a-9bae-5127e6e931ca/BizSpark%20Startup%20Program%20Guide.pdf

En lo personal me parece una EXCELENTE idea de Microsoft para posicionarse como una alternativa viable frente a Open Source para empresas realmente innovadoras. ¿Qué opinas?

10.28.2008

Desde el PDC 2008: Primeras Impresiones de Windows 7

Mi primera impresión de Windows 7 es muy positiva. Me parece que Microsoft definitivamente “aprendió la lección” de Windows Vista. Lo que más me llamó la atención fue la actitud de la presentación. Se reconocieron con mucha franqueza los errores cometidos. Veo un enfoque más fresco en el equipo de desarrollo de Windows (yo creo que la salida de Allchin fue positiva – independientemente del gran trabajo que hizo antes ya se necesitaba sangre fresca).

El foco está en la simplicidad, el desempeño y la facilidad de uso. Creo que las prioridades que se fijaron para Windows 7 son las adecuadas. Algunos ejemplos:

· Una barra de herramientas más poderosa (y algo parecida al Dock de la Mac – pero mejorado).
· Posibilidad de ajustar con facilidad que tan intrusivo (y seguro) quieres que el UAC funcione.
· Control total sobre el system tray – que iconos quieres ver, que mensajes quieres que te salgan – tu decides.
· Soporte a multitouch - esto va a revolucionar las interfases de usuario.
· Va a funcionar en la nuevas mini-notebooks.
· Librerias de coumentos que te permiten organizar tus archivos, fotos, música, etc en tu red personal y fácilmente a través del explorador, media player y media center.
· Detección automática y configuración automática al conectarte a la red de tu casa o del trabajo.

Para desarrolladores, hay varios elementos que lo hacen un sistema operativo muy atractivo:

· Microsoft está buscando que sea más eficiente, con menos consumo de memoria y uso de disco
· Soporta montar de manera nativa discos virtuales vhd y bootear directamente de estos preservando su estado
· Mucho mejor manejo multimonitor en Windows y a través de remote desktop también.
· .NET 3.5 SP1 preinstalado.

¿Saben que es lo mejor? El build que presentaron hoy se ve muy estable. Yo creo que Microsoft nos va a dar una sorpresa y Windows 7 va a salir antes de lo esperado…..

10.27.2008

PDC 2008 en Vivo – Windows Azure, La Plataforma de Servicios de Microsoft

Hoy en Los Angeles inició el Microsoft Professional Developer Conference. Esta es la conferencia para desarrolladores más importante que Microsoft organiza más o menos cada dos o tres años cuando la empresa tiene algo importante que decir. Los anuncios de hoy reflejan la decisión de Microsoft para convertirse en el proveedor de servicios de cómputo líder en Internet. Se anunció una plataforma de desarrollo para la nube: Windows Azure.

¿Qué significa este anuncio para los desarrolladores de software?

· Vamos a poder “desplegar” nuestras aplicaciones con gran facilidad a la infraestructura de servidores de Microsoft. Este proceso va a ser muy sencillo y a través de configuración se hará realidad el cómputo bajo demanda. Podremos especificar cómo debe escalar nuestra aplicación y podremos solicitar más (o menos) capacidad a través del tiempo de acuerdo con nuestras necesidades de negocio. Todo esto de forma muy simple.

· Podremos aprovechar varios servicios bajo demanda con funciones de alto nivel para simplificar el desarrollo de aplicaciones con gran valor de negocio.

¿Qué servicios están disponibles?

Microsoft .NET Services: Hoy se anunciaron los 3 primeros componentes de estos servicios. Con ellos podemos resolver nuestras necesidades de identidad federada y de control de flujos de actividades con WF.

· Service Bus
· Access Control
· Workflow Services

Microsoft SQL Services: Servicios de datos que podemos aprovechar bajo demanda.

· Base de Datos, Sincronización, Reporteo, Data Mining, ETL

Live Services: Servicios centrados en el usuario individual, para administrar su información a través de múltiples dispositivos y lugares.

· User Centric Data Store – Identity, Contacts, Files, Calendar
· Sync
· App Management
· Device Management

¿Cuándo podremos usar estos servicios?

Aquí en el PDC se está liberando un CTP (Community Technology Preview) que se puede usar para fines de prueba desde hoy. Yo esperaría que Microsoft lograra un lanzamiento comercial hacia fines del 2009.

9.12.2008

Actualizar mi iPhone 3G de Telcel a Software 2.1 "Destruyó" mi SIM

Hola,

Como buen nerd que soy hoy actualicé my iPhone 3G de Telcel (no está hackeado) a la versión 2.1 del software de Apple usando iTunes desde mi Mac con OS X 10.5.4.

Para mi sorpresa al final de la actualización el iPhone tenía el mensaje de "No SIM". Intenté limpiar el SIM y siguió sin funcionar. Al llegar a mi oficina "intercambié" SIMs con un amigo que tiene un iPhone 3G idéntico (comprado el mismo día) pero sin actualización a 2.1. Mi SIM ya no funciona en su iPhone y su SIM si funciona en mi teléfono. Mi conclusión es que el proceso de actualización por alguna razón está dañando algunos SIMs. No soy el único, otros usuarios de México, Colombia y España han reportado lo mismo. Los reportes están aquí:

http://discussions.apple.com/thread.jspa?threadID=1706328

Mañana al centro de servicio Telcel a hacer fila para que resuelvan esto......uffffffffffff!!

iPhone 2.1 Software Upgrade Fried my SIM Card

Being the geek I am, as soon as I learned about the new iPhone 2.1 software upgrade, I installed it on my almost brand new iPhone 3G (not jailbroken) purchased from Telcel in Mexico a couple of weeks ago.

After upgrading, I got a "No SIM" message. I reset the iPhone. Still the same message. I took out the SIM and cleaned it. Same message.

When I later got to the office, I "traded" SIMs with a friend who got his iPhone 3G at the same time. He hasn't "upgraded" yet. His SIM works on my phone. My SIM does not work on his phone.

So, upgrading to 2.1 somehow "fried" my SIM card. I am not alone:

http://discussions.apple.com/thread.jspa?threadID=1706328&tstart=0

I run iTunes on Mac OS X 10.5.4 on a Mac Pro (early 2008).