El Algoritmo del Avestruz en SharePoint

Haciendo una revisión de la arquitectura de un par de sistemas bastante grandes de SharePoint en las últimas semanas me he acordado de un momento a otro del «Algoritmo del Avestruz» («Ostrich Algorithm», la traducción no es muy difícil en este caso) y me he estado preguntando si estamos llegando al momento de tener que implementar este algoritmo en nuestro servidor favorito.

En el mundo de IT y computadores en donde vivimos, el Algoritmo del Avestruz es una estrategia para ignorar problemas potenciales basándose en la premisa de que serán extremadamente raros (tomado de la definición de la Wikipedia, http://en.wikipedia.org/wiki/Ostrich_algorithm) . Esto asume que es mucho más efectivo desde el punto de vista económico permitir que el problema ocurra que intentar prevenirlo. Este es un algoritmo utilizado para trabajar con puntos muertos en programación si se considera que el impase será muy raro y el costo para prevenirlo muy alto.

En realidad el nombre y la definición del algoritmo estaban metidos en algún rincón olvidado de mi memoria, almacenado allí en alguna de las innumerables y aburridoras lecciones de diseño de sistemas operativos en interminables tardes de estudio, hace ya más años de los que me quiero acordar. El algoritmo es utilizado en sistemas operativos, por ejemplo, para chequear el riesgo de que el sistema deje de funcionar porque un programa está pidiendo demasiados recursos (de CPU o memoria, por ejemplo). En este caso, el algoritmo primero le pregunta al programa cuantos recursos piensa utilizar, lo compara con los recursos disponibles en el sistema y los que serán necesarios para los otros programas que están ejecutando y toma algunas decisiones; una de ellas puede ser decidir que el problema podría ocurrir, pero no es muy probable que suceda, «meter la cabeza en un hueco» y hacer como si el problema no existiera: el Algoritmo del Avestruz.

Volviendo al cuento de SharePoint y de los proyectos que comentaba anteriormente, una de las cosas que estaba revisando eran los «casos de uso» (paginas y paginas y paginas de documentación describiendo las diferentes formas en que usuarios podrían interactuar con el sistema, mi trabajo es a veces mas aburridor de lo que estoy dispuesto a reconocer), tratando de buscar los puntos flacos, de identificar posibles problemas y dándoles una «calificación» basada en diferentes aspectos (que tan frecuente va a suceder, que tan difícil va a ser para el sistema manejar la situación, que tan grande es el riesgo que el proceso corre, etc). Y de repente me di cuenta que estamos construyendo sistemas de SharePoint que son tan complejos, tienen que funcionar con tantas variables conocidas y desconocidas, que es prácticamente imposible de abarcar todos los casos de uso y sus posibles consecuencias.

SharePoint ya no es más el depósito de documentos que usábamos hace algunos años. Tampoco es la herramienta divertida que le deja crear nuevos sitios a usuarios sin tener que rogarle a programadores y administradores de sistemas por meses. SharePoint se ha convertido (o se está convirtiendo) en el centro estratégico donde se recopila toda la información de la empresa, se permite manipularla, modificarla, comprobarla, presentarla en pantalla en mil y una formas diferentes… el sistema que se está comunicando con todos los otros sistemas básicos en la compañía y que no solo les pide información, sino también que los controla y maniobra para que funcionen de una manera apropiada. En resumen, SharePoint está pasando de ser el depósito de información a el cerebro que no solo mantiene el conocimiento sino que también toma las decisiones.

Y revisando los casos de usuarios de la historia que les estaba contando, a muchos les vamos a tener que aplicar el Algoritmo del Avestruz irremediablemente. No porque no queramos hacer un sistema excelente, sino porque será practica y económicamente imposible solucionar todos los problemas a los que nos enfrentamos con sistemas de este tipo; si además le agregamos la variable humana, 70, 80, 100 mil usuarios interactuando con el sistema, cada uno en su forma particular de trabajar con computadores e información, de buscar formas diferentes para realizar el mismo trabajo, de intentar, probar y rebuscar, le agregamos aun mas complejidad al problema…

A veces, cuando me meto (o me meten, como en este caso) en problemas de esta magnitud, me dan ganas de aplicarme el Algoritmo del Avestruz a mí mismo, meter mi cabeza en un agujero y dejarla metida allí hasta que algún otro solucione el problema…

Gustavo – http://www.gavd.net
Escriba un Comentario que me haga reir…

Conferencia de SharePoint 2009 – Las Vegas, USA

Del 19 al 22 de octubre 2009 se celebrara la conferencia de Microsoft sobre SharePoint en Las Vegas, Estados Unidos. Esta es la conferencia más importante de los próximos años en el campo de SharePoint, así que es casi obligatorio estar presente. Si tiene planes para asistir y deseos de conversar sobre nuestro servidor favorito al calor de una cerveza fría, envíeme un email o deje un mensaje es este mismo sitio y buscamos alguna manera de encontrarnos.

http://www.mssharepointconference.com/Pages/default.aspx

Nos vemos en la Conferencia.

Gustavo – http://www.gavd.net
Escriba un Comentario que me haga reir…

Es La Nube una bendición o una maldición? – SharePoint

Desde hace ya un año o algo mas no se oye hablar más que sobre «La Nube», de un momento a otro todo el mundo está seguro que La Nube es el futuro y que todos tenemos que conseguir lo más rápidamente posible un abono o resignarnos a que nos deje el tren…

Primero que todo, y sobre todo para mí mismo, de que estamos hablando cuando ponemos a «La Nube» por las nubes. Según la Wikipedia (la enciclopedia británica de nuestro tiempo), «Claud Computing» no es más que «una metáfora para describir a Internet» o «un paradigma sobre computación escalable dinámicamente, proveído como un servicio sobre Internet». Así que estamos hablando sobre Internet, pero Internet lo estamos usando intensivamente desde hace ya 15 años o algo por el estilo, y nunca lo habíamos llamado La Nube. Continuando con la Wikipedia, vemos que «generalmente incorpora combinaciones de Infraestructura como un Servicio (IaaS), Plataforma como un Servicio (PaaS), Software como un Servicio (SaaS) y otras tecnologías que se basan en Internet para satisfacer necesidades de computación de usuarios. Cloud Computing provee aplicaciones de negocios online que pueden ser accedidas por medio un Navegador de Web mientras que el software y los datos están guardados en servidores» ()

Si no fuera por que busqué explícitamente por «Cloud Computing», estaría pensando que estoy leyendo la descripción de SharePoint: software, plataforma e infraestructura como un servicio para ser usado online por medio de un Navegador y que usa servidores para guardar y ejecutar el software y los datos. Pero SharePoint existe desde hace también casi 15 años, y nunca nos habían contado que estábamos trabajando todo el tiempo con «La Nube» sin darnos cuenta.

Leyendo un poco mas aparece algo que es nuevo: «usuarios de Cloud Computing generalmente no son dueños de la infraestructura física sino que alquilan el uso prestado por otras compañías: el usuario consume recursos como un servicio y paga solamente por lo que usa»; de la misma forma que electricidad, o agua potable, yo no genero la electricidad que uso, simplemente compro la que uso de la compañía respectiva. Bien, aquí si hay una diferencia: hasta ahora si quiero usar SharePoint tengo que tener mi servidor propio, darle mantenimiento, etc., etc. Aunque hay que decir que hay compañías de hosting que me alquilan SharePoint por un pago mensual, aunque en realidad el servicio sea bastante limitado, como mucho me dan una Aplicación Web de SharePoint, aunque la mayoría solamente proporcionan una Colección de Sitios. De nuevo, SharePoint está en La Nube desde hace tiempos sin que lo llamáramos de esa forma. Pero de todas formas, este es un concepto nuevo, y es lo que Microsoft está intentando introducir con su MOS (Microsoft Office Services).

El asunto de comprar solo lo que usas parece atractivo, pero confiaría los datos empresariales y los datos personales de mis empleados a una empresa extraña? Hummmm… que garantía me dan de que mis datos seguirán siendo MIS datos y no los venderán a otros? Le confiaría todos mis datos importantes (como los que tengo guardados en mi sistema local de SharePoint) a una empresa en los Estados Unidos, Inglaterra, Francia o Rusia? Hummmm… Y si llega allí un presidente paranoico (como el ultimo que tuvo USA) y obliga a la compañía de hosting que le entregue todos sus datos sin que me cuente a mi?

Y qué seguridad me darán sobre usabilidad del sistema? Todos los servidores de Google se cayeron hace un par de semanas por 100 minutos, si mi sistema estuviera allí, significaría que mis empleados no podrían trabajar por 100 minutos; si tengo un sistema de SharePoint con 50.000 usuarios (por decir algo) que no pueden trabajar por dos horas, mi empresa está perdiendo probablemente un par de millones de dólares. La empresa que me está haciendo el hosting me va a pagar esa suma? Peor aún, si los servidores se dañan, son destruidos, les cae un avión encima, se los roban, la empresa que se va a la quiebra es la mía, pues todos mis datos van a desaparecer, no la empresa que está haciendo el hosting. Todo esto también me puede pasar a mi si yo mantengo mis propios servidores, pero en ese caso se podría decir que es menos doloroso pues si todo se pierde es por mi propia estupidez…

Si se aburre o quiere divertirse un rato, hay un documento en Internet («Hey, You, Get Off of My Cloud: Exploring Information Leakage in Third-Party Compute Clouds», ) que explora las diferentes formas en que Nubes pueden ser atacadas: de solo darle una mirada rápida se te ponen los pelos de punta. En fin, para terminar, no tengo ni idea si La Nube es una bendición o una maldición, pero de lo que si estoy seguro es de que en principio estamos trabajando con nubes desde hace años. Y también me parece que es uno más de los términos de moda que vienen y se vuelven a ir, de tal forma que dentro de unos años, si empezamos a hablar de La Nube, todo el mundo se va a poner a mirar para arriba…

Gustavo – http://www.gavd.net
Escriba un Comentario que me haga reir…

Diferencias entre tener y usar: SharePoint

En donde estamos con SharePoint? La próxima versión está tocando a la puerta, el producto tiene ya 10 años de existencia (como «SharePoint», aunque sus orígenes son más extendidos) y la masa crítica de usuarios, es decir, el numero mínimo necesario para garantizar que seguirá existiendo por mucho más tiempo y no va a desaparecer así no mas ha sido alcanzada entre las versiones 2003 y 2007.

Hemos hablado, y lo seguiremos haciendo, muchísimo sobre la parte técnica de SharePoint: que puede hacer y que no puede, en lo que es un buen producto y en lo que es malo. Inclusive (un signo de madurez), ya tenemos el campo de los que odian a SharePoint y el campo de los que lo adoran, algo por el estilo a Windows versus Mac versus Linux. Es improbable que alguien que trabaje con una compañía de cierta envergadura no haya tenido que utilizar a SharePoint en una u otra forma, e inclusive pequeñas compañías lo tienen instalado (WSS al menos).

Pero aquí viene el dilema del título: hay una diferencia muy grande en tenerlo instalado y utilizarlo. Los ejemplos son múltiples y no los quiero aburrir con historias personales, pero toda esta especulación ha salido de conversaciones con el cliente con el que estoy trabajando en el momento: una instalación grande de SharePoint (granjas distribuidas en diferentes continentes, 50.000 usuarios en 14 países, aproximadamente dos años de trabajo) y, a pesar de hacerle propaganda internamente al proyecto de forma intensiva, el número de usuarios «reales» es realmente (preocupantemente) bajo. La discusión es muy simple: tenemos un sistema que funciona bastante bien, con una capacidad muy alta, que puede ayudar a mejorar el trabajo de mucha gente… como convencemos a esa misma gente a que lo utilice…

«Obligar» es una manera… cualquier administrador de sistemas puede hacer que los computadores utilicen una determinada versión de explorador y que siempre inicie en la misma página, la de la intranet, por ejemplo. O no aceptar agregados en emails, de tal forma que el intercambio de documentación tenga que ser hecho por medio de la intranet. Trucos por montones, pero la idea de un sistema de este tipo es que los empleados tengan más y mejores posibilidades para realizar su trabajo, no limitar las posibilidades ya existentes.

«Educación» es otra manera… darle a todo el mundo algo de entrenamiento sobre cómo usar el sistema, sus ventajas, sus imposibilidades. Identificar algunos «super-usuarios» y darles algo más de entrenamiento para que ellos motiven y ayuden a sus colegas. Esta es probablemente una manera mejor y mucho más efectiva que la primera.

«Auto-descubrimiento» o no-hacer-nada-y-dejar-que-ellos-descubran-el-sistema-por-si-mismos. Es también una estrategia… no cuesta nada, y se explota la curiosidad natural que todos tenemos por el hecho de ser homo-sapiens. Con toda seguridad mejor que la primera opción y los resultados puede que sean similares a los de la segunda, aunque tomará algo más de tiempo para ver los resultados.

«Combinaciones» de las diferentes maneras, cierta cantidad de obligación (explorador abre siempre en la primera pagina de la intranet), educación y esperar a ver qué pasa, es la estrategia que mi cliente va a utilizar. En cualquier caso, lo más importante es evitar que los usuarios «odien» el sistema, y eso puede ser un reto. En la empresa se ha utilizado Documentum, EDoc y @Work por algunos años, y los empleados están acostumbrados a utilizarlos… es inevitable que cuando comiencen a usar SharePoint comiencen a hacer comparaciones («pero si era tan fácil de hacer con el sistema antiguo, porque es ahora tan difícil…», «antes me costaba 37 clics para subir un documento, y ahora 38…»). O sea, un cierto grado de resistencia al uso es de esperarse, y que algunas persones terminen alineándose al lado de los «SharePoint-odiadores» es inevitable. Pero hay que tratar de mantener el daño reducido y evitar que se propague.

Probablemente la lección más interesante es que planear y diseñar un sistema de SharePoint significa mucho, mucho más que saber cuántos servidores se van a utilizar, que carga va a tener la red, escribir un montón de software… un sistema sin usuarios es un sistema que se puede tirar directamente a la basura… si el proyecto fracasa técnicamente, no hay sistema, si el proyecto fracasa humanamente, tampoco hay sistema. Si no hay sistema, tenemos que buscar otro trabajo…

Gustavo – http://www.gavd.net
Escriba un Comentario que me haga reir…