Outsourcing o no outsourcing, los dilemas continúan

Lo llamamos «Subcontratación» en español, pero cuando pienso en subcontratación, pienso mas en hacer construir una nueva cocina en la casa, que en hacer desarrollar código en algún país exótico…


En fin, continuando con los dilemas de la semana, otra de las discusiones (a veces acaloradas) que tienen lugar cada vez mas en la empresa donde trabajo es que tan interesante es para nosotros «subcontrar» el desarrollo de código. La discusión viene y va con el tiempo, pero en estos días estamos empezando a planear la nueva versión de una aplicación bastante grande que tenemos construida para trabajar con SharePoint 2003; la nueva versión será hecha, por supuesto, para que trabaje con SharePoint 2007. No estamos hablando de una u otra WebPart, sino de una aplicación que contiene mas de diez NameSpaces, y que consta de innumerables paginas personalizadas, varias plantillas propias, un montón de WebParts y WebControls, y unos 60.000 renglones de código… es decir, algo grande de verdad…


La primera versión fue desarrollada completamente por nosotros en la empresa. La segunda versión (hace dos años), fue subcontratada con otra empresa fuera del país. Para esta segunda versión, nosotros solamente aportamos el diseño funcional y el apoyo en cuanto a conocimientos del producto; después de un par de meses, recibimos el software funcionando, pero cuando tuvimos que empezar a hacer modificaciones y mejoras, empezamos a ver que el diseño técnico no era precisamente algo para estar orgulloso: el Modelo de Objetos utilizado no es consecuente, la separación (especialmente) entre las capas de lógica y presentación no es tan buena como deseábamos, el sistema de WebServices simplemente no funciona… no quiero decir que es un desastre, pero podría ser mejor…


Ahora estamos planeando la versión 3, como decía, y estamos en el dilema de desarrollar todo en casa, o subcontratarlo. O un camino intermedio. Para desarrollar todo en casa, necesitamos utilizar todos los desarrolladores, arquitectos, etc. de que disponemos por un par de meses, lo que significa que no podemos hacer nada por y para los clientes que tenemos, o que podemos conseguir en este tiempo. La ventaja principal es que todo sucedería como queremos que suceda. Si lo subcontratamos, perdemos probablemente calidad, pero ganamos en tiempo y recursos propios, fuera de que probablemente será (mucho) mas barato.


Mi punto de vista, si es que a alguien le interesa, es precisamente el camino intermedio: nosotros hacemos el diseño funcional (de todas formas esta en nuestras manos) y el diseño técnico. El outsourcing hace el trabajo de programación; mejor dicho, nosotros estipulamos la arquitectura, el Modelo de Objetos, la comunicación de los diferentes objetos entre si y entre las diferentes capas, yendo tan lejos como, por ejemplo, generar los esqueletos de las clases necesarias. Y la compañía que subcontratamos «solamente» tiene que meter el código en las clases para que hagan lo que tienen que hacer. Y nosotros producimos nuestras propias clases de prueba (unit test, regressive test, compilation) de tal forma que cuando nos llegue una clase completamente programada, podamos ver inmediatamente si funciona como nosotros esperamos. Ventajas es que la parte técnica la mantenemos en nuestras manos. Desventajas es que no seria tan barato como un outsourcing «completo».


Un dilema mas para charlar largo y tendido…


Gustavo – http://www.gavd.net/servers


Escriba un Comentario que me haga reir…

Dilemas nos da la vida …

Utilizar SharePoint 2007 o no? Dilemas nos da la vida …


Gran discusión esta mañana en la oficina sobre que debemos recomendar a nuestros clientes, que cada vez nos están pidiendo mas y mas que utilicemos la nueva versión de SharePoint para sus instalaciones, en lugar de la «vieja» versión 2003.


En pocas palabras, el campo esta dividido en dos: los que quieren recomendar ir inmediatamente por la nueva versión, y los que no quieren correr demasiados riesgos y seguir con la versión conocida. Pero si un cliente viene y te dice: «queremos utilizar SharePoint en nuestra organización, pero no queremos utilizar software envejecido, así que instáleme la nueva versión», no le puedes decir, «no señor, no hay nueva versión todavía, el asunto esta en Beta y se demorara todavía meses y meses». . . (probablemente el cliente esta pensando: «yo soy el que pago, así que usted hace lo que yo digo», y nosotros estamos pensando: «se lo instalamos, y dentro de un par de meses perdemos el cliente si el asunto no funciona», pero ninguno de los dos lo dice claramente, pues después de todo, estamos en un país civilizado, en donde las cosas se piensan pero no se dicen …).


Para mi, si es que me lo preguntan, la cosa es bastante clara: si quiere una instalación para empezar a trabajar inmediatamente, y que no requiere demasiado trabajo de personalización (un par de WebParts no son problema), utilice la versión actual, y dentro de unos meses se la migramos a la nueva versión si lo desea. Si es un proyecto a largo plazo, que no necesita estar en el aire en unas cuantas semanas, y requiere algún trabajo de personalización intensivo, hágalo directamente con la versión Beta de la próxima versión, y cuando tengamos una versión mas definitiva, migramos todo el asunto y estamos listos.


El problema para mi es mas fácil (yo lo miro desde el punto de vista técnico), que para los colegas que tienen que tomar decisiones de negocios. El asunto es que en el momento ya estamos trabajando en algunos proyectos para clientes con la nueva versión (por ese lado no hay problema, pues son clientes que siempre quieren utilizar lo mas nuevo que exista, aunque todavía no exista), y es muy difícil decirle a otros clientes que no les queremos dar lo mas nuevo, pues pueden pensar (y con razón): «porque a ellos si y a nosotros no?».


Técnicamente, la versión Beta actual no esta mal, es bastante estable y se puede trabajar con ella, pero no tenemos ninguna garantía de Microsoft de que un sistema pueda soportar una carga de 10 o 20.000 usuarios sin necesidad de utilizar un servidor por cada 10 usuarios. Funciona, si, funciona, e inclusive funciona bastante bien, pero es una versión lenta, que utiliza demasiada memoria y tiempo de procesador … al fin y al cabo, es un Beta y no esta optimalizado. Pero como se lo haces entender a un cliente? Al fin y al cabo, el también tiene razón en no querer utilizar un software que dentro de medio año nadie mas querrá utilizar … Dilemas nos da la vida …


Gustavo – http://www.gavd.net/servers


Escriba un Comentario que me haga reir…

WinFS esta muerto, que viva SharePoint

Finalmente, después de una agonía de años, WinFS ha fallecido de muerte natural. Para aquellos que dentro de la maraña de abreviaturas que invaden nuestras charlas cotidianas no pueden encontrar que es (era) WinFS, ese fue el intento de Microsoft para crear un sistema que reemplace el obsoleto e ineficiente sistema de archivos de Windows. En la pasada conferencia de desarrolladores (PDC, Septiembre 2005 en Los Ángeles), me acuerdo de haber visto una demostración de su funcionamiento, y también me acuerdo que en el momento pensé que el cambio de pronto era demasiado radical con respecto al funcionamiento del sistema actual.

De regreso a casa, entre las muchas estupideces que instalé (hay que hacer algo con todos esos DVD’s que te regalan, no es cierto?), metí el Beta de WinFS en una maquina de prueba, con la sorpresa consabida: no paso nada… en teoría se podía hacer funcionar a Windows con WinFS y con el sistema de archivos tradicional al mismo tiempo, y supongo que por debajo de la mesa estaba funcionando, pero no se veía por ninguna parte. Así que la maquina de prueba sufrió la suerte de las maquinas de prueba, y ahora debe andar por el cielo de las instalaciones fracasadas.

La idea de WinFS es brillante: crear relaciones entre todos esos archivos que tenemos regados por nuestros computadores. Imagínese que pueda preguntarle al computador: «deme todo lo que tenga que ver con información enviada a Perenjano en tal fecha», y que como resultado encuentre E-mails, documentos Word, KPI’s de Score Card Manager, presentaciones PowerPoint, reportes de Reporting Service… genial. Desafortunadamente no lo veremos en acción.

Así que seguiremos con información archivada de una forma jerárquica, como en el sistema de archivos de Windows, o como lo hacemos en SharePoint. Uno de los grandes problemas de SharePoint actualmente es que los usuarios se pierden por el camino, y, si no tienen experiencia usando el sistema, no pueden encontrar nada (es asombroso cuantos usuarios no tienen ni idea que SharePoint usa la maquina de búsqueda mas poderosa de Microsoft, y que encontrar información es de lo mas sencillo).

Algún sueño que se me ocurrió alguna vez fue que si WinFS se pudiera acoplar a SharePoint, tendríamos el sistema de archivo mas increíble que alguien se pudiera imaginar… que tal el siguiente escenario: conectas tu visor panorámico (unas gafas que te permiten ver una pantalla inmensa), te enchufas el conector de la interface mental (usar un teclado? Primitivo… hablar con un computador como en Star Trek? Yo no hablo con maquinas idiotas…), y le envías un comando mental a SharePoint 2032: «Revise los documentos de mi departamento que han cambiado en las dos ultimas semanas, crée un reporte condensado en forma gráfica y preséntemelo visualmente en 3D»… Lastima que WinFS ya no exista…

Gustavo – http://www.gavd.net/servers


Escriba un Comentario que me haga reir…