domingo, diciembre 31, 2006
Betanzos en la red
domingo, diciembre 31, 2006 por Martín
Por suerte hay una serie de recursos en Internet que ya hacen el trabajo por mi, y me mantienen actualizado. el pasatiempo es probablemente uno de los más actualizados, con posts bastante frecuentes. A partir de ahí, hay otra serie de blogs con diferentes contenidos. Podría recopilarlos aquí, pero ya lo han hecho por mi.
El caso es que no deja de ser curioso como el movimiento de los blogs, reciente donde los haya, ha hecho aumentar exponencialmente el número de páginas relacionadas con Betanzos, cuando hace varios años se contaban con los dedos de una mano. Aún más curioso es ver como muchos de los blogs tienen una clara tonalidad política, para un lado, para el otro, o para el medio. No es algo que me moleste especialmente, aunque sí que confieso que no leo ese tipo de posts.
En fin, de cualquier modo aprovecho para desearos a todos los que os pasáis por aquí un Feliz Año 2007. Por mi parte toca ir a cenar ya, tomarse las uvas, y un año más salir por una de las mejores ciudades (sí, desde el 1467) españolas para celebrar el fin de año.
¡Feliz 2007!
miércoles, diciembre 27, 2006
Cuatro años bloggeando
miércoles, diciembre 27, 2006 por Martín
El caso es que al final me pregunté: Y yo, ¿cuánto tiempo he estado bloggeando? Y cual fue mi sorpresa al descubrir que ¡mi cuarto aniversario fue ayer! La verdad es que no me esperaba que fuese hace tanto tiempo, pero se ve que el tiempo pasa muy rápido. Mis comienzos fueron curiosamente (no creo) los mismos que Aitor, pidiendo de prestado en freeroller.net. Mi final, sigue siendo de prestado pero ahora en blogger. Mi camino es mucho menos traceable que el de Aitor porque siempre ha sido muy irregular, de hecho he alternado blogging en inglés y español, y en diferentes servidores. Atrás queda un ya irecuperable blog en blog-city (¡no me acordaba de eso!), otro en javahispano, otro más, éste en inglés, en jroller, otro que está ahora mismo en estado de coma en blogspot (el hermano de éste, pero en inglés), y por último éste que estáis leyendo.
Que emocionante leer los posts de hace cuatro años. En cierto modo es como cuando hace años leías cartas que habías recibido o que no llegaste a enviar. En fin, ¡que recuerdos! :)
domingo, diciembre 24, 2006
Vacaciones y Irish seals
domingo, diciembre 24, 2006 por Martín
Bueno, dejando a un lado el marisco, lo que realmente me sorprendió es que cuando estaba en el puerto me acerqué a la orilla porque oía unos ruidos y me encontré frente a frente con este personaje:
Fue muy simpático porque yo había oido ruidos, pero me esperaba algún pescado chapoteando, no una genuina Irish seal. Las focas irlandesas son una especie autóctona de aquí pero aún no había tenido la oportunidad de ver una, y la verdad es que me pilló desprevenido. Esto no hace más que reafirmarme en mi opinión de que no pienso ir a bañarme el día 25 de Diciembre después de ir a misa, como algún amigo de la oficina me ha propuesto. No por las focas, sino por la temperatura del agua.
El caso es que he subido el video a YouTube para hacer famosa mi amiga la foca. :-)
martes, diciembre 19, 2006
Juegos en la empresa
martes, diciembre 19, 2006 por Martín
Cuando un producto está llegando a su fecha de lanzamiento empieza el periodo estresante de pruebas exhaustivas. Normalmente, el producto se cerrará en cuando a código fuente y a partir de ahí entrará en proceso de integración y pruebas por parte del equipo de tests. Una vez que termine este período, podremos lanzar nuestra tan esperada versión. Obviamente, nos interesa que cuando el producto llegue a manos del cliente, éste se encuentre impecable y totalmente libre del más mínimo error, problema de rendimiento, agujero de memoria, o cualquier otro efecto indeseable.
Si nuestro proceso de pruebas e integración es extraordinario, todo irá como la seda. Pero la realidad es que las cosas no suelen ser así. Aunque nuestro proceso de pruebas sea perfecto desde el punto de vista formal, la realidad es que siempre existe un factor importantísimo que no podemos controlar: el factor humano.
El factor humano es importantísimo a la hora de probar un producto, porque por muchos tests unitarios, de integración, de rendimiento o funcionales que tengamos, ¿saben realmente nuestros desarrolladores lo que están probando? Es más, ¿saben nuestros desarrolladores como funciona el producto?, ¿saben como es el interfaz de usuario?, ¿saben como se comunican los componentes?, ¿se han puesto alguna vez en la piel del usuario final? Probablemente la respuesta a todas estas preguntas sea afirmativa si estamos hablando de un producto pequeño, pero sin embargo, cuando hablamos de un equipo de cientos de desarrolladores, de productos con decenas de módulos diferentes, y de grupos de desarrollo diversos (incluso deslocalizados), entonces la respuesta será un conjunto de noes.
Una de las formas de afrontar este problema es jugar. Sí, jugar, como leéis. Dependiendo de la aplicación se podrán crear diferentes tipos de juegos. No todas las aplicaciones son "jugables". Unas lo son más que otras. Por ejemplo, si estamos creando un juego para un periódico nos será sencillo el crear un juego virtual dentro de la empresa; si estamos trabajando en un producto para invertir en el mercado bursatil, podremos crear un juego de inversión en bolsa; si estamos creando una tienda online podemos crear un juego en el que ganaría el que más compras realize, o el que más dinero gaste, o cosas así; si estamos creando una aplicación de gestión de un servicio médico, podemos premiar a los que más pacientes traten o examinen completamente, a los que más informes creen, etc. etc. En fin, hay muchísimos ejemplos, unos más sencillos, otros más complejos.
Una vez que tenemos definido el juego es importante crear el entorno de ejecución del mismo. Este entorno debería simular de algún modo el entorno de producción real. Como la carga de usuarios será menor, se debería escalar este sistema para alcanzar algún tipo de relación con la carga de usuarios esperada. En general el sistema será mucho más pequeño que el de producción, pero debería ser lo suficientemente significativo como para generar problemas que podrían aparecer en producción.
Una vez que tengamos definido todo esto, llega el momento de jugar. Pero bueno, a estas alturas estaréis pensando, pero éste realmente se piensa que la gente va a ponerse a jugar con todas las cosas que tienen que hacer. Tenéis toda la razón del mundo. Todo esto no es suficiente si no se toman algunas medidas muy importantes:
- Premios en metálico.
- El juego debe ser obligatorio.
Como apunto en la lista, el juego debe tener obligatoriamente premios, y si es posible debería haber premios en metálico para todo el mundo. Por ejemplo, en el ejemplo de la tienda, se podría ofrecer a los empleados el 5% del importe de todo lo que compren hasta un límite de 1000€; o en el juego de la bolsa, pues el 5% de las ganancias que consigan + 5€ por operación realizada hasta 1000€.
Tener premios sin duda estimulará a la gente a participar. Una opción interesante es contactar con el cliente para conseguir ese dinero en metálico. Este tipo de juegos suele atraer la atracción del cliente final, ya que muestra que existe una intención real de hacer una prueba extensiva del producto. De hecho, si el cliente final es una organización, probablemente les interese a ellos mismos realizar un juego interno posterior dentro de la propia compañía.
También es muy importante que el juego sea obligatorio. Este tipo de prácticas ofrecen una enorme oportunidad para simular el comportamiento real de la aplicación, con personas reales y en un entorno similar al entorno de producción. Por eso es tan importante que participe la mayor cantidad de personas como sea posible. Adicionalmente, este tipo de juegos sirve para que los desarrolladores se familiaricen con la aplicación, para que entiendan como funciona, para que se pongan en la piel del usuario final y se enfrenten al interfaz de usuario, para que se den cuenta ellos mismos de los diferentes problemas. En fin, son demasiado valiosas como para que no se realicen. Por ello debe obligarse a los desarrolladores (y a testers, y soporte técnico, y managers, y a todo el mundo) a participar en el juego.
La participación no tiene porque ser constante, ya que también queremos que las personas trabajen. Se pueden organizar periodos de participación durante el día, o quizás ofrecer herramientas que automatizen el juego para que no haya que estar todo el día mirando para la pantalla para ganar.
Este año, he tenido la oportunidad de participar en uno de este tipo de juegos y la verdad es que la experiencia fue increiblemente positiva, y todo el mundo coincidió en lo mismo. Son experiencias que no sólo te ayudan a aprender como funciona el producto, sino que ofrecen un enorme abanico de posibilidades a la hora de probar realmente las aplicaciones.
Me pregunto si alguien tiene expriencias que compartir sobre este tema que personalmente me parece muy interesante. Ahí queda la oferta.
lunes, diciembre 18, 2006
Irlanda: Otro mundo en cuanto a Internet
lunes, diciembre 18, 2006 por Martín
Una de las cosas que más me ha sorprendido es que prácticamente todo el mundo tiene su página web. Que vas al gimnasio, tienen página web. Que vas a la iglesia, tiene página web. Que tienes que comprar pescado, el pescadero tiene página web (obviamente no llegan al nivel de la compra online, pero al menos sabes donde está). Tu pub preferido, todos tienen página web. El de las cortinas, página web. Te pasas por el centro comercial y recoges el periódico gratuito de la zona, y todo los anuncios que salen vienen con su página web. Y es que aquí tienen muy claro que si tienes un negocio, tienes que estar en Internet.
Y es que no en vano Irlanda es el pais de Europa que que más se dinero se gasta en la compra online, llegando a gastar el doble que cualquier europeo. Nada más y nada menos que un 24% de los usuarios de la web en Irlanda afirman comprar en Internet, y un 47% planean hacer la compra estas navidades. Y es que como se puede leer en el informe State of the net este es un negocio en el que una compañía de procesado de transacciones online puede llegar a mover 15 millones de euros diarios.
Claro, a eso ayuda que prácticamente el 50% de la población esté conectado a la red y que de ese 50% el 78% de los usuarios de internet estén utilizando banda ancha, algo que no sucede en todos los paises.
Una de las cosas más curiosas que también he notado es la adicción que tiene esta gente a eBay. Todo el mundo en mi trabajo compra cosas en eBay. Vale, comprar en eBay no es algo raro, pero, ¡¿qué todo el mundo compre?! Y es que aquí hay auténticos profesionales de la compra online. De hecho no es raro encontrar alguna tienda en la que simplemente dejas tus cosas y ellos te las venden en eBay.
Una de las consecuencias de todo esto es que uno tiene la sensación de que hay oportunidades realmente interesantes. Probablemente Irlanda sea uno de los mejores paises para crear un negocio online realmente productivo. Y es algo que lo notas constantemente, en la calle, en el metro, en la televisión. Tienes esa sensación de que realmente Internet es un canal de marketing y ventas realmente importante.
En fin, que es una cosa a analizar :)
sábado, diciembre 16, 2006
Comet, reinventando términos
sábado, diciembre 16, 2006 por Martín
El streaming HTTP es la técnica más básica de cualquier compañía que se dedique al mundo de la bolsa, comercio de divisas, o en resúmen cualquier mundo en el que se necesita empujar datos al cliente a velocidades de vértigo. Por ejemplo en el mundo del intercambio de divisas todos los interfaces se basan en este concepto ya que la volatilidad del mercado es brutal y cuando estas operando con monedas con mucha volatilidad, unos pocos segundos pueden significar cientos de miles de dólares.
El streaming HTTP se puede realizar tanto desde un cliente web como desde una aplicación de escritorio tradicional. No es algo que esté ligado para nada con AJAX. Por ejemplo, puedes tener tu aplicación de escritorio interactuando con un banco a través de HTTP y mantener dicha conexión abierta para que el servidor te esté continuamente haciendo streaming de datos. Como he dicho, esto es algo que se ha estado haciendo durante años. En estos casos, el usar una técnica como esta y mantener la conexión habierta es algo básico ya que es físicamente imposible el soportar una comunicación mediante polling. Si alguno se está preguntando porque utilizar HTTP, simplemente debe pensar que estamos hablando de bancos, y los firewalls son muy importantes en los bancos :-), especialmente cuando tu objetivo es el retail, es decir, el público de a pie.
Existen muchos recursos actualmente sobre Comet, AJAX, NIO, etc. y este año ha sido uno de los mejores para este terreno. Servidores web como Jetty o Apache Tomcat 6 soportan ya el mantener conexiones persistentes con el cliente a través de Java NIO, pero el caso es que la historia no se ha acado todavía ahí. El problema más importante ahora mismo es que aunque escales en la capa Servlet, todavía tienes que escalar en el Apache que los bancos te suelen ofrecer como entrada, ya que no sirve de nada liberar threads en tu contenedor web si están bloquedas en el servidor HTTP. Existen opciones como Grizzly, que es un servidor HTTP que utiliza NIO por debajo, pero la realidad es que es poco probable que estas organizaciones te permitan instalar este tipo de software en su puerta de entrada al mundo exterior.
Ante esta situación sólo queda esperar. Probablemente el próximo año se harán muchos avances en este sentido, así que promete ser un año emocionante.
Pruebas proactivas, tests de integración y equipos de tests
sábado, diciembre 16, 2006 por Martín
¿Qué es una prueba proactiva? : Una prueba proactiva es aquella cualquier prueba que no tendríamos obligatoriamente que realizar pero que nos permite adelantarnos a los acontecimientos. La principal ventaja de las pruebas proactivas es que nos permiten crear software mucho más sólido previniendo problemas no esperados desde un punto de vista unitario, integracional o funcional.
Ejemplos de pruebas no proactivas serían aquellas que es obligatorio realizar para mantener un software saludable, como los tests unitarios, tests de integración o tests funcionales.
Ejemplos de pruebas proactivas pueden ser los tests de rendimiento, tests de carga y tests de integración.
Ahora bien, si miráis la lista veréis que los tests de integración están tanto en la lista de pruebas proactivas como en la lista de pruebas obligatorias. ¿Por qué? El problema es que los tests de integración yacen en el limbo de los tests.
En una empresa normalmente tenemos diferentes equipos de desarrollo que trabajan con diferentes componentes. Los desarrolladores de estos equipos tienen la responsabilidad de ofrecer componentes lo suficientemente probados a través de tests unitarios. Por otra parte, hay muchas empresas que tienen un equipo completo de testers que se encargarán de realizar todas las pruebas funcionales de cara al usuario final.
El punto más peliagudo es el de los tests de integración. Los tests de integración se encargan de comprobar que los diferentes componentes de nuestro sistema funcionan como es debido, y que interactuan como se espera dentro de sistemas que imitan al entorno de producción que nos vamos a encontrar. Nótese que la palabra integrar aquí adquiere un significado algo ambiguo y se refiere tanto a integrar dos piezas de software que se deben comunicar entre sí, como a integrar esas piezas de software en un entorno de ejecución determinado.
¿Quién hace y cómo se hacen estas pruebas de integración? Sin lugar a dudas, lo ideal es mantener un equipo de desarrollo de tests de integración que se encargue de desplegar los componentes en un sistema similar al de producción y de probar la integración de estos componentes. Aquí es donde entra la proactividad. Estos equipos de producción deben realizar el test del producto olvidándose del usuario final. Esto permite eliminar la dependencia de los casos de uso y alcanzar una cobertura mucho mayor en nuestro software, ya que incluso aunque estuviésemos cubriendo el 100% de los casos de uso definidos en la arquitectura, la realidad es que probablemente los casos de uso no estan cubriendo el 100% de las acciones que nuestros usuarios realizarán.
El problema de mantener los tests de integración orientados al usuario final es que uno no puede realmente estar seguro de que su software es sólido y fiable. Es muy común por ejemplo en los entornos de tests el realizar las pruebas de integración utilizando robots web o robots de GUI, que se encargan de simular el comportamiento del usuario final. ¿Es esto una prueba de integración real entre componentes? No. Esto son pruebas funcionales, y nunca se deberían tratar como pruebas de integración. El problema es que se tratan como tales debido a falta de presupuesto para contratar equipos de test de integración, a falta de conocimiento por parte de los equipos de testing funcional o a falta de tiempo por parte de los desarrolladores para asumir semejante carga.
En resúmen, ponga un equipo de ejecución y creación de tests de integración en su vida y será mucho más feliz :-)
martes, diciembre 05, 2006
¿ Debería despedir a su arquitecto ?
martes, diciembre 05, 2006 por Martín
A pesar de que estoy de acuerdo con él en algunos puntos, por ejemplo el 1, el 5 y el 6 (no en los despidos), espero que no despidiesen a alguien por no confiar demasiado en SOA ;)
Todo esto via nuevamente InfoQ.
Ron Jeffries sobre metodologías ágiles
martes, diciembre 05, 2006 por Martín
Es una entrevista no demasiado larga que se hace bastante amena gracias a las explicaciones que Ron Jeffries va dibujando en su pizarra.
viernes, diciembre 01, 2006
Interfaces de usuario: ¿Construcción manual o automática?
viernes, diciembre 01, 2006 por Martín
La verdad es que este es un tema recurrente sobre el que creo que cualquiera pude opinar, ya que asumo que todos los que estamos en este mundillo del software hemos desarrollado algún interfaz de usuario en algún momento de nuestras carreras, ya sea hace años cuando los Visual Basic era una revolución a la hora de crear aplicaciones, ya sea más recientemente en Java con herramientas como Matisse, o ya sea en el mundo web con los diseñadores visuales para frameworks Java Server Faces. Asimismo, probablemente todos hemos en algún momento determinado creado, o intentado crear, esas mismas interfaces de un modo manual, ya sea porque nos apetecía, porque no teníamos otra cosa a mano, o por cualquier otra razón.
Ante una situación como esta, donde cada cual tiene su propia opinión en base a su experiencia, creo que es un poco inútil el caer en discusiones sobre ésta u ésta otra tecnología es mejor, así que intentaré describir lo que en mi opinión son los tres factores más importantes a tener en cuenta, en orden de importancia, a la hora de elegir uno y otro camino:
- Experiencia de la gente que disponemos: Lo más importante que se debe tener en cuenta es el tipo de gente con la que contamos en el equipo de UI. Y ante este punto lo más importante es ser realistas y recordar que no debemos elegir en base a nuestras preferencias si no en base a su experiencia y habilidad.
Si en el equipo de UI cuento sólo con personas con poca experiencia, que no han hecho interfaces visuales previamente, o que vienen de otros lenguajes y no conocen Java, o .NET, o lo que sea, entonces en este caso no tendría demasiado sentido forzarles a programar todo manualmente, ya que les resultará muy complicado. Incluso aunque a nosotros nos parezca una tarea muy fácil, la realidad es diferente: para ellos no lo es.
Por otra parte, obligar a un grupo de expertos programadores a utilizar un diseñador gráfico puede ser contraproducente, ya que estas personas pueden no sentirse cómodas con estas herramientas, pueden tener ya una serie de procesos que los hagan más productivos y el añadir una herramienta nueva puede significar reemplazar todos esos procesos por algo totalmente nuevo, y finalmente esto puede llegar a causar frustración y desánimo en el equipo. - Complejidad del interfaz de usuario: El siguiente punto a tratar sería la complejidad del interfaz que estamos planeando. Los diseñadores visuales suelen soportar un conjunto limitado de componentes, y en cuanto añades componentes que no esperan el resultado puede ser diferente al que no esperamos. Si nuestro interfaz va a utilizar componentes personalizados, entonces debemos plantearnos seriamente la posibilidad de utilizar una aproximación híbrida o simplemente olvidarnos de utilizar ninguna herramienta.
Mediante una aproximación híbrida, diseñariamos la mayor parte de componentes con herramientas visuales y posteriormente añadiriamos los componentes propios. El punto crítico aquí es que el proceso de añadir componentes propios debe ser lo menos intrusivo que sea posible, ya que de otro modo las probabilidades de que la herramienta gráfica sea incapaz de volver a recear nuestro interfaz son muy altas.
Si el número de componentes personalizados es alto; o si estos componentes personalizados se encuentran muy arriba en la jerarquía de componentes ( no es lo mismo personalizar un frame que un botón ), entonces lo mejor sera olvidar directamente las herramientas visuales. - Valorar entre diseñadores visuales y frameworks: Hoy por hoy los diseñadores visuales son muy potentes. Por ejemplo, en Java, hay diseñadores excelentes tanto para Swing como para SWT. Por otra parte, tenemos que de manera alternativa siempre aparecen una serie de frameworks que ofrecen un enorme valor añadido, como pueda ser JGoodies en Java (o incluso los componentes de futuros jdk que van apareciendo en java.net). La mala noticia es que los diseñadores visuales no suelen soportar estos componentes, lo que significa que si realmente necesitamos alguno de estos componentes, entonces tendremos que abandonar la idea de utilizar el diseñador.
Si por el contrario, no hay ningún framework que nos ofrezca algo realmente valioso, entonces la opción de usar diseñadores vuelve a adquirir valor.
En esta lista los dos primeros puntos son excluyentes y decisivos. Si no tenemos gente experta, lo mejor es ir a las herramientas, mientras que si nuestro interfaz va a ser muy complejo y personalizado, lo mejor es ir al código manual. En caso de empate en esos dos puntos, el tercero debe decidir.
Me dejo muchos aspectos deliberadamente, porque la verdad es que este sería todo un tema para un libro. Otro aspecto importante podría ser la volativilidad del equipo. Por ejemplo, si hoy tengo un equipo muy bueno, y la gente se me va, mañana quizás un equipo menos experimentado tendrá que mantener el código del primer equipo, y en ese caso el trabajar con un diseñador visual facilita las cosas porque para los segundos les será sencillo ver lo que han hecho los primeros. Pero, por ejemplo, por el contrario, forzar a los programadores a no utilizar un diseñador, es equivalente a forzarlos a aprender como funciona una determinada API, lo que siempre es bueno porque aporta conocimiento sobre la plataforma.
En fin, sea como sea, ante todo lo más importante es ser consistente con la decisión tomada. Si elegimos utilizar una herramienta, debemos utilizarla y cuidarnos de que los interfaces se puedan seguir manteniendo con esa herramienta. Si comenzamos a crear pantallas, y posteriormente añadimos mucho código personalizado a estas pantallas, seguramente no las podramos volver a editar gráficamente. La consecuencia es que parte de nuestro interfaz gráfico se modificará con un editor y la otra parte se modificará manualmente, lo que no deja de ser un desastre.
Y para acabar me mojo. Yo prefiero no utilizar herramienta. Siempre que comienzo algún proyecto, intento empezar con alguna, pero al final acabo escribiendo todo a mano. Que se le va a hacer :)
martes, noviembre 28, 2006
SOA, la buzzword más despreciada
martes, noviembre 28, 2006 por Martín
Es curioso como otra histórica buzzword como Web Services sólo acapara un 4% en el índice de desprecio. Los servicios web han pasado la barrera de buzzword a realidad, y poco a poco se van implantando. Eso sí, nada que ver con lo que nos vendían hace años.
Por fin etiquetas
martes, noviembre 28, 2006 por Martín
domingo, noviembre 26, 2006
Sobre menus, elecciones y Microsoft
domingo, noviembre 26, 2006 por Martín
jueves, noviembre 23, 2006
Scrum en 5 minutos
jueves, noviembre 23, 2006 por Martín
Este PDF está pensado para presentar rápidamente las bondades de Scrum, especialmente a analistas de negocio, directivos, jefes de departamento, que no tengan tiempo para asimilar todas los detalles de la metodología. El documento realizan un análisis muy visual y didáctico de las características de Scrumm, así que siempre será bueno tenerlo a mano :)
Multi-core CPUs y Java
jueves, noviembre 23, 2006 por Martín
La lectura resulta muy interesante, no sólo el post principal sino también las respuestas. Personalmente, no creo que esta arquitectura sea mala para Java sino todo lo contrario. Obviamente, los productos que hayan sido diseñados deficientemente deberían sufrir teóricamente una bajada en su rendimiento. Pero probablemente muchos productos mejorarán, incluidos servidores de aplicaciones, servidores web, las propias máquinas virtuales y sus algoritmos de recolección de basura, etc.
Java fue el primer lenguaje que apostó seriamente por explotar la concurrencia de las aplicaciones desde que fue creado. Y esto hará que la evolución no sea tan complicada como podría ser para otros lenguajes. Al final, lo cierto es que con ese artículo me ha entrado el gusanillo por uno de estos multi-cores :)
sábado, noviembre 18, 2006
Java es libre, ¿y ahora qué?
sábado, noviembre 18, 2006 por Martín
Recuerdo haber viajado al menos por Santiago, Madrid, Barcelona, Gandía, Alicante, Cáceres y Madrid hablando sobre las maravillas de Java, y por qué era interesante esta plataforma para las empresas y los usuarios individuales. Intentando eliminar el mito de que Java en sí no era libre (lo siento, lo que han liberado son las herramientas de Sun, bueno y Duke). Que tiempos aquellos, mostrándole a la gente que no era tan sencillo el decir "Java no es libre, no lo uso"; que había otras máquinas virtuales alternativas; que el modelo de especificación era abierto y había organizaciones de software libre como Apache trabajando ya en él.
Supongo que este pasado Lunes esto ha terminado. Punto final. La discusión se ha acabado. ¿Y ahora qué? Pues por el momento habrá que esperar acontecimientos. Por ahora el JDK (que es lo realmente interesante) no se liberará hasta la versión 6 y 7, pero es que la versión 6 ya está a la vuelta de la esquina, así que no tardaremos mucho en verlo. Pronto se incluirá el JDK de Sun y Glassfish ( el servidor de aplicaciones ) dentro de las distribuciones de Linux, aunque habrá que ver si con el nombre de Java (ya que las marcas no han sido liberadas) o con otro nombre clave diferente, lo que se podría decir que marcaría el primer fork.
Será muy interesante ver también lo que pasa con otras implementaciones libres. Ahí están los kaffe, classpath o Harmony. Especialmente este último resulta interesante por algunas de las funcionalidades que ofrece y que no están presentes en las implementaciones actuales de Sun (por ejemplo Harmony es muy modular, está basado en osgi y puedes desplegar una máquina virtual sólo con ciertas partes de la misma). Por otra parte, no deja de estar bastante claro que Harmony ha sido uno de los detonantes de la reacción de Sun, ya que es una máquina virtual que aunque no terminada, si que está muy cerca de la certificación; y sin lugar a dudas la participación de IBM en este proyecto también habrá espoleado de alguna manera a los responsables de Java en Sun.
Desde el punto de vista de negocios, el movimiento de Sun ha sido magistral. Si hubiera esperado más habría llegado tarde. Java estaba en un momento de declieve en estos momentos en comparación con otros lenguajes Open Source como Python o Ruby, siendo este último claramente el lenguaje de moda. No es un secreto que ahora mismo existe actualmente una migración de talentos desde Java a Ruby, y el movimiento de Sun ayudará a aumentar todavía más la base de usuarios de la plataforma.
Sun ha sido listo también con la licencia aplicada al JDK. Ha escogido GPL v2 (+ classpath, para algunas partes), lo que le permitirá que ninguna empresa privada pueda distribuir "sabores" de Java sin que los desarrolladores puedan ver su codigo fuente. Es decir, si alguien quiere distribuir otro JDK, tendrá que mostrar el código fuente, así que los desarrolladores estarán avisados de antemano si alguna compañía se ve tentada a crear un engendro diabólico que acabe con la fama de la plataforma.
IBM ya ha mostrado su descontento por la licencia escogida. Ellos querían adoptar la licencia de Apache, o algo más libre. En cierto modo no deja de ser una pelea empresarial. Harmony ya tiene licencia Apache, y ahora podrá avanzar más rápidamente, así que si lo desean podrán tener su propio JDK con licencia Apache en relativamente poco tiempo. A este nivel empresarial, cuando eres rival de alquien, es dificil llegar a un acuerdo, porque tiene muchas consecuencias (le estoy dando la razón, reconozco que hacen bien las cosas). Y seguramente lo mismo sucederá por parte de Sun, y alguna influencia habrá tenido la opinión de IBM. Emitir juicios en este sentido siempre es algo arriesgado.
Sea como sea, los desarrolladores estamos de enhorabuena.
viernes, noviembre 10, 2006
¿Son útiles las certificaciones?
viernes, noviembre 10, 2006 por Martín
Personalmente creo que las certificaciones son algo muy útil, tanto para las plataformas, como para las empresas, como para las personas. Pero antes de exponer porque, me gustaría decir que para mi el estudio de eweek apenas tiene valor. Yo no creo que el valor de las certificaciones esté en que vas a ganar más dinero. De hecho yo nunca le pagaría más dinero a alguien por el mero hecho de estar certificado en algo. Yo tengo varias certificaciones Java y conozco mucha gente que sabe muchísimo más que yo.
Beneficios para una plataforma: Las certificaciones son una buena medida de la salud de una plataforma. En cierto modo es un círculo vicioso. Las personas buscan certificarse porque ven que una plataforma es activa y hay demanda en las empresas, y las empresas demandan una plataforma porque ven que hay movimiento en la misma y gente interesada. Normalmente las certificaciones más exitosas y con más gente certificada, te indicará las plataformas que más éxito tienen. Claros ejemplos de esto son Cisco o Microsoft.
Si una plataforma, digamos Eclipse que está muy de moda, saca un camino de certificación, lo normal es que la gente comience a certificarse. Esto llevará a las empresas a valorar estas certificaciones, lo que a su vez llevará a más personas a certificarse, y a más personas que no conocían la plataforma a interesarse por ella por verle salida laboral.
Beneficios para las personas: Una certificación puede darte un trabajo. Así de claro. Puede que no te de un gran sueldo, y seguramente no te va a dar más dinero que otras personas (al menos mucho más), pero una certificación siempre es un punto adicional en el curriculum, que directa o indirectamente se valorará en algún punto del proceso de contratación en una empresa.
Las certificaciones tienen otra serie de beneficios en cuanto a formación, que a veces no se tienen en cuenta. Las certificaciones te proporcionarán una introducción a una tecnología, ya que normalmente se centran en los aspectos básicos. Para las personas como yo, que siempre están con mil cosas, son además un modo de obligare a centrarte en algo y estudiar, lo que siempre es beneficioso. Eso sí, es importante no hacer trampas. Por ejemplo, en su época (no sé si ahora es lo mismo) las certificaciones de microsoft fueron famosas porque las respuestas las podías encontrar en cualquier parte.
Beneficios para las empresas : Para una empresa siempre es bueno que vengan personas con certificaciones a las entrevistas. Estas personas no tienen que ser muy inteligentes, o superestrellas. No existen las certificaciones-para-super-estrella-de-la-programación. Muchas personas no certificadas, atacan a las certificaciones con el argumento de que no demuestran la inteligencia de las personas, que no quiere decir que sean mejor que ellos, etc. Esto no dejan de ser llantos de colegial. Claro que no lo hacen. Las certificaciones no son para demostrar que yo tengo algo que demuestra que soy más listo que tu. Las certificaciones son para garantizarle a una empresa que una persona ha estudiado algo; que al menos tiene unos conocimientos básicos; y sobre todo, y por encima de todo, que una persona no está mintiendo cuando dice "conocimientos de Java".
Ahí está el verdadero valor para las empresas. Hoy en día, cuando te llegan montones de curriculums de gente buscando encontrar trabajo, el tener curriculums con certificaciones significa que al menos esas personas no están mintienedo. Significa que en cierto momento de su carrera estudiaron algo. Eso ya es algo importante. Ahora bien, ¿son inteligentes?, ¿valen para el trabajo? Eso ya lo veremos cuando tengan que venir a la entrevista. Pero vamos, que algún comentario que he leido del estilo "yo no miro para nada las certificaciones, a mi eso no me interesa, las paso por alto". Pues bueno, todo el mundo es libre de pasar por alto la información que quiera, pero hay pocas cosas que te certifican algo como las certificaciones, valga la redundancia.
Por otra parte, el disponer de perfiles con certificaciones es un beneficio para algunas empresas que ofrecen servicios. Esta es la razón de que muchas de ellas obligen a las personas a certificarse. Si la empresa puede ir a un cliente diciendo tengo 100 perfiles certificados en .NET, siempre será indicativo para el cliente. Como decía arriba, quizás no sean 100 cracks, pero por lo menos son 100 personas que cuando dicen que han estudiado algo, no mienten.
Bueno, espero no tener que volver a escribir sobre esto, porque es un tema tan repetido y recurrente. ¿Alguna vez se acabará esta eterna discusión?
domingo, noviembre 05, 2006
J2SE 6.0
domingo, noviembre 05, 2006 por Martín
Sea como sea, yo no quería escribir sobre el libro en sí. Al acabar de leerlo, he recordado hace seis o siete años cuando leias sobre el JDK 1.1 y el JDK 1.2, y vaya, ¡como ha cambiado todo! Incluso si comparamos Java 6, con el JDK 1.4, la diferencia es abismal. Soporte de lenguaje de scripting, las APIs de servicios web, JAXB, XML streaming, XML Digital Signature, el API de compilación, las novedades de Swing, las nuevas anotaciones y el soporte para crearlas, ...
Uno llega a plantearse si esto es realmente racional. Quizás es que llevé muchos años programando con el JDK 1.4 (incluso con las APIs de XML que tantos problemas dan), pero parece que desde ese momento las cosas no han hecho más que complicarse para los desarrolladores nuevos. Incluso cuando el objetivo principal de cada una de las nuevas releases siempre ha sido incrementar la productividad y hacer la plataforma más fácil. Pero lo cierto, es que yo cada vez dudo más que lo hayan conseguido.
Que no se me entienda mal, ahora por ejemplo tengo la oportunidad de programar con el JDK 1.5, y me lo paso en grande. Disfruto como un enano con las nuevas funcionalidades; y probablemente en unos años pase lo mismo con Java 6. Pero si uno se pone a pensar en las personas que entran al lenguaje. ¡Vaya!. Afrontar Java 6 no es como afrontar Java 1.2. Al final supongo que realmente será todo una cuestión de marketing y competencia. ¿Realmente necesitamos que las APIs de servicios web estén en el paquete completo? ¿Realmente hace falta que el soporte de firma digital de XML esté en el JDK?
La verdad, es que después de leer el libro, te das cuenta de que los principales cambios de Java 6 se produjeron ya al menos un año atrás, y que Java 6 lo que hará será incluir todos esos JSRs en lo que poco a poco se está convirtiendo en un enorme bundle cada vez mayor.
Lo cierto es que hace años te podías estudiar varios libros y decir soy un experto en JavaSE. Con el JDK 1.5 nos pusieron las cosas un poco más difíciles, pero tampoco demasiado, porque ni el API de profiling o la de JMX molestan demasiado. Pero lo cierto es que ahora, con todas estas APIs, va a ser difícil que alguien pueda decir, lo sé absolutamente todo sobre J2SE. Pero bueno, eso creo que era algo que prácticamente ya no se podía decir desde hace muchos años.
Lo difícil que es comenzar en una empresa de software
domingo, noviembre 05, 2006 por Martín
Hace unos días, tuvimos el "induction course", que básicamente consiste en irnos presentando a los nuevos, los diferentes managers que hay en la jerarquía de la empresa. Al terminar este curso, los nuevos tuvimos la oportunidad de expresar nuestras opiniones, en corro, al más puro estilo alcohólicos anónimos. Lo más destacado de los comentarios que hubo, fue el ver que prácticamente todo el mundo se quejaba de lo difícil que resultaba ser productivo en los primeros meses de nuestra empresa. Eso tiene una consecuencia muy importante, ya que al pasar tres meses te tienen que valorar tu trabajo para decidir si pasas el periodo de pruebas. Como consecuencia, había mucha gente que decía que tras dos meses en la empresa, sólo habían podido empezar a rendir después de los dos primeros meses, y que por lo tanto la medida podía resultar bastante injusta.
La verdad es que puedo dar fe de que no mienten. La cantidad de esfuerzo que hay que hacer para configurar nuestro sistema es enorme (de hecho, una de mis labores de la que hablaré en cuanto tenga un rato fue la de hacer una herramienta para la creación automática de clusters Weblogic) en cuanto a tecnologías que tienes que aprender, en cuanto a conocimientos, en cuanto a configuración del entorno (varios productos, varias versiones y subversiones, +100 proyectos Eclipse, ...). Y a todo esto le tienes que sumar todas las APIs que tenemos definidas: sistema de caché, notificaciones distribuidas, replicación, y el resto de APIs que tienen que ver con el negocio.
Una vez explicado el escenario voy a hablar de lo que yo creo que es el problema en este caso. En mi opinión, en las empresas de software, parece que hay una tendencia a pensar que los programadores son auténticas máquinas de conocimiento, personas que por el mero hecho de programar un ordenador, ya lo saben absolutamente todo. Esta tendencia hace que cuando una persona llega a una empresa se le diga "ahí tienes tu PC, ahora te decimos todo lo que tienes que configurar y empiezas a trabajar". ¿Cuántas veces habéis visto esto? ¿Cuántas veces habéis visto que al nuevo se le da su PC, se habla con el una horita, y a trabajar?
Curiosamente, esto no sucede, o no parece suceder, en otros entornos. Si vas a un banco, verás que al nuevo no le dejan dar dinero, o recoger ingresos, o ... nada; si vas a un hotel verás que al nuevo no le dejan hacer una entrada, o una salida, o ... nada; si vas a una recepción verás como el nuevo está detras de otro recepcionista atentamente escuchando y mirando lo que pasa. Así podría seguir con otros ejemplos. El caso es que en todas estas situaciones, la persona pasa por un proceso de aprendizaje, que puede durar días, o incluso varias semanas. ¿Por qué en el mundo del software, el nuevo puede empezar a tocar código sin recibir ni siquiera unas simples directrices? ¿Somos realmente tan buenos los programadores para poder darnos ese grado de confianza ciega?
La solución es simple, aunque estemos hasta el cuello de trabajo, habría que dedicar al menos una semana en explicar todo lo que "el nuevo" necesita saber para ser realmente productivo en su trabajo. Esa semana, se puede dividir entre los diferentes miembros de un equipo, pero sería muy importante que durante esa semana se hiciera una experiencia del estilo "pair programming", igual que en otros sitios hacen "pair recepcioning", "pair banking", o "pair hotelling". A la larga, estamos perdiendo un poco de productividad a corto plazo, para obtener una productividad mucho mayor, porque con un poco de suerte esta persona podrá empezar a ser productiva tras esa semana de entrenamiento.
lunes, octubre 30, 2006
¿Hay algo mejor?
lunes, octubre 30, 2006 por Martín
Pero, ¿y si el problema no está en esos sitios web? Y si el problema es simplemente que la gente que busca trabajo en la actualidad no es como la gente que buscaba trabajo hace diez años. Yo pertenezco a una generación en la que creo que la gente soñaba con ser programador, con poner a tus pies estos aparatos que en muchísimos de nosotros hasta no nos podíamos permitir. Para mi, ir a clasede informática de niño, era lo mejor que me pasaba en la semana porque podía tener en mis manos un aparato que ni en sueños podríamos comprar. Con ese aparato lo máximo que podías era programar en basic, editar textos con el wordstar, poner algún casette con algún juego cuando los profes te dejaban, ... era tan bonito.
Pero me temo que si miras la situación de la cantera informática del futuro (10..20), me temo que la cosa está muy negra. Ahora mismo hay tantos juegos, tanto software, que probablemente a un chaval se le quiten las ganas de "quiero hacer eso". Una persona "quiere hacer eso" cuando es algo especial, pero hoy por hoy, me temo que hacer programas ya no es algo tan especial como hace años. Esto ayuda mucho a que se haga más débil el concepto de "vocación".
Por otra parte, hoy por hoy los ordenadores y las videoconsolas se han convertido en el centro de ocio de la juventud, superando claramente a la televisión. Las personas se pasan horas, dias o meses chateando compulsivamente, jugando a decenas de juegos, divirtiéndose en mundos imaginarios y tremendamente adictivos como los de los MMORPGs, etc. En esta situación, es muy difícil que la gente se dedique a aprender. Hace años un joven con un ordenador, probableente fuera lo suficientemente avispado como para crear un bonito programa de contabilidad con su turbo pascal y divertirse con ello. Hoy, lo que se lleva es tratar de descargarse la mayor cantidad de películas posibles y echar unas partidas con tus colegas al world of warcraft.
No creo que esto sea un arrebato de "nosotros eramos los mejores". Comentando con amigos de mi época y que ahora son profesores de Universidad, todos comentan lo mismo. Ha habido un bajón enorme en la calidad de la enseñanza que se daba en las universidades de informática, y no porque los profesores sean malos, sino porque los alumnos no pueden asumir la información que podían asumir antes. Y con el tiempo, esto se tiene que notar en el mercado laboral. Obviamente, sería estúpido generalizar, siempre hay gente apasionada como la que busca Joel, pero me temo que la situación pinta muy mal en estos momentos, al menos en el mercado español.
sábado, octubre 28, 2006
Futbol gaélico
sábado, octubre 28, 2006 por Martín
La verdad es que esto del fútbol gaélico es una auténtica religión aquí en Irlanda. Ahora mismo acaba de acabar el partido e Irlanda ha ganado 48-40 a Australia. Por ahora no hay videos de esta final, pero si alguien no conoce como se las gastan estos equipos, que le eche un vistazo a este video.
El martes es Halloween
sábado, octubre 28, 2006 por Martín
Será mi primer Halloween aquí en Dublín, y hay que reconocer que aquí lo viven. Lo que no tengo todavía muy claro es cuando se celebra, porque curiosamente el día festivo aquí es el lunes, y no el martes 31.
Y es que esto es una de las cosas que me ha chocado aquí en Irlanda. Todos los festivos (salvo Navidad y Epifanía) se mueven siempre al lunes de la semana en la que se celebre el festivo. No está mal la fórmula, de hecho hay mucha gente que así aprovecha y coge el viernes anterior y se va de vacaciones. Además, como sabes que eso pasa así con todos los festivos, pues puedes planificar viajes bastante interesantes a largo plazo.
Esperemos que no vengan muchos niños por la puerta, porque con eso del "o me das algo o te hago una travesura", pues casi que va a haber muchas travesuras por aquí :-)
Lo importante de saber cuando ser ágil.
sábado, octubre 28, 2006 por Martín
La verdad es que esto es algo con lo que me he encontrado varias veces, pero esta semana me ha hecho mucha gracia. Estabamos rediseñando un modelo de datos y básicamente yo promovía un modelo de datos algo más abstracto basado en interfaces y clases abstractas para intentar escudar un poco la implementación, mientras que mi compañero simplemente prefería tener implementaciones planas. Y resulta que todo esto era porque no le gustaba ver muchas clases en el entorno de desarrollo, que era un lío, que era muy fácil perderse, y que las metodologías ágiles decían que las cosas tienen que ser lo más simples posibles.
Asombrado me quedé. En fin, ante estas situaciones supongo que lo mejor es ser diplomático e intentar buscar una solución intermedia como la que encontramos, pero no me deja de ser curioso algo como esto. En definitiva, ágil no quiere decir trivial, y creo que eso es importante a la hora de diseñar sistemas.
Por suerte, al final el diseño quedó bastante bien :)
sábado, octubre 21, 2006
Finalmente, desde Dublín
sábado, octubre 21, 2006 por Martín
Finalmente estoy escribiendo esta entrada sentado en mi casa, y ya era hora, porque ha resultado que obtener una línea de Internet en esta ciudad, no es algo tan sencillo como me imaginaba. La verdad es que tienes un monton de opciones: modem tradicional, cable por TV, ADSL, wireless, satelite. Pero el proceso de darse de alta es realmente retorcido.
Sea como sea, aqui estamos, con una conexión de 3Mb y 100 canales de TV (de los que se salvarán 2, como en España), por 30 y pico euros, que creo que no está nada mal.
Bueno, poco a poco iré hablando sobre como es la vida aquí, el trabajo, etc. No quiero que este blog se vaya a convertir en un diario sobre la vida en Dublín, pero empezaré a dejar caer cosillas por aquí.
Hasta pronto.
domingo, agosto 06, 2006
Cambio de aires: ¡Porco killin!
domingo, agosto 06, 2006 por Martín
A veces es muy difícil tomar este tipo de decisiones. Sobre todo cuando tienes un horario envidiable, un buen salario, un buen ambiente de trabajo, cuando careces de presión laboral, cuando tu cliente te da total libertad para realizar labores extralaborales o incluso pagarte de su bolsillo la formación, cuando tu empresa deposita su confianza en ti y te otorga responsabilidad. En fin, podría seguir con la lista de ventajas de mi todavía trabajo actual.
Pero lo cierto es que las personas parece que nunca tenemos suficiente. Desde hace años tenía muchísimas ganas de ir a trabajar al extranjero, y al final es lo que he decidido hacer. Me voy a Dublin a trabajar a una compañía importante dentro del mundo de las finanzas y la bolsa. Cambio tranquilidad por estrés, horario de mañana por horario europeo con alguna hora más, buen ambiente por ambiente indeterminado, una gran confianza por empezar desde cero, y tranquilidad por aprendizaje.
Empiezo una época de aprender. Hacía muchos años que no me sentía como me siento ahora mismo, con una ilusión enorme por ir a trabajar. Y es eso lo que me dice en cada momento que he hecho lo adecuado. Esa sensación de descubrir un nuevo mundo, de aprender nuevas cosas, de experimentar nuevas sensaciones, de tener que coger diez libros que no conocías y empezar a empaparte de cosas nuevas. Todo eso que hice cuando empezaba en mi actual trabajo y que estoy deseando volver a hacer.
Eso sí, quizás al final resulta que todo se viene abajo y que las cosas no eran tan bonitas como parecían. Entonces será igual, será como recibir una catalización de formación. Experiencia.
Por cierto, me llevo muchos recuerdos a Irlanda. El Viernes fue mi comida de despedida con mis compañeros. Los mejores compañeros del mundo. Y gracias a ellos voy a ir con mucha fuerza a Dublin. Me los voy a comer a todos. Porco killin!
martes, agosto 01, 2006
Escoge tu modelo de datos
martes, agosto 01, 2006 por Martín
El Maradona de Amsterdam
martes, agosto 01, 2006 por Martín
En Amsterdam, como en otras ciudades, es muy común encontrarse con personas que realizan actuaciones callejeras para ganarse algún dinero. En los cuatro días que estuve en esa ciudad pude ver grupos de música, actuaciones de capoeira, payasos, solitas, duetos, pero el que más me impacto fue sin duda al que en YouTube denominan como el Maradona de Amsterdam.
Este es un enlace a un video subido a YouTube con la actuación de esta persona. Es realmente espectacular lo que es capaz de llegar a hacer con un balón. Y os puedo asegurar que todo es verídico, incluso la parte final que es simplemente impresionante.
Disfrutarlo.
jueves, julio 13, 2006
El outsourcing en decadencia en Estados Unidos
jueves, julio 13, 2006 por Martín
Pero quizás los más preocupante del estudio es la tendencia, según DiamondCluster, de estos clientes de outsorcing a mover los proyectos fuera de su país migrando a un modelo offshore. Según esta compañía los clientes encuentran más beneficios en los sistemas offshore debido a sus bajos costes y a la facilidad para conseguir certificaciones como CMMI por ejemplo.
En el estudio se puede leer también que los destinos más atractivos para externalizar fuera de Estados Unidos están siendo China y Europa del Este, y con un sorprendente aumento también de sistemas migrados hacia Canada.
¿Veremos esto en España? Parece poco probable siendo uno de los países más baratos de la Europa occidental.
miércoles, julio 12, 2006
MySpace, el rey de las redes sociales
miércoles, julio 12, 2006 por Martín
Y es que según lo que he leido hoy en esta entrada de GurusBlog, parece que es verdad. MySpace se ha convertido en la web más visitada en Estados Unidos. Si señor, ni un periódico, ni un buscador, ni un portal de servicio, sino que una red social. Los datos de estadística son simplemente impresionantes y me tomo la licencia de copiarlos aquí:
* Más de 75 millones de usuarios
* 15 millones de usuarios únicos diarios
* 250.000 nuevos usuarios por día
* 30.000 millones de páginas vistas diaris
* <10.500 páginas vistas por segundo
* >Como hemos visto anteriormente, 4,45% de todas las visitas en las webs de EE.UU, superando a Yahoo Mail, Yahoo Hone page, Google y MSN Hotmail.
* Crecimiento del 4300% en el número de visitas de los dos últimos años, y del 132% en el último año.
* MySpace ha capturado casi el 80% de cuota de mercado de las “redes sociales”, seguido muy de lejos por Facebook con un 7,58%, y Xanga con un 3,81%…La red
social de Yahoo, 360.yahoo.com, sólo alcanza un paupérrimo 1,13%, y la de Google, Orkut, se queda en un 0,30%.
* El tráfico generado en internet por la búsqueda de términos relacionados con MySpace (myspace, myspace.com, my space, www.myspace.com, myspace layouts), representan el 1,85% de todas las búsquedas, estando las 5 entre los 20 términos más buscados.
¿Por qué no acaban de despuntar estas cosas aquí? Pues probablemente porque no hay todavía esa cultura de ordenador entre los adolescentes. Pero eso cambiará en cinco o seis años. Ahora son pocos los que no se conectan al messenger a menudo, y pronto darán el salto tecnológico a las redes sociales. Entonces triunfarán.
viernes, julio 07, 2006
Programadores baratos en barcos por California
viernes, julio 07, 2006 por Martín
Evidentemente, lo del crucero es ironía, la realidad es que SeaCode, la compañía que trata de alterar el modelo de contratación offshore lo que intenta es abaratar el coste para las empresas americanas al tiempo que evitar la burocracia de tener que obtener visados para los trabajadores.
Vaya .... esto ..... despreciable.
El enlace a la noticia.
miércoles, julio 05, 2006
martes, julio 04, 2006
Software bajo demanda de verdad
martes, julio 04, 2006 por Martín
Vaya, que si vais a la página de Yoxos os encontraréis con una especie de Eclipse en web (mucho AJAX hay ahí) en el que podéis seleccionar todas las partes de Callisto que queréis y configuraros así vuestro entorno de desarrollo preferido. Por si fuese poco, en la parte de abajo podréis encontrar montones de plug-ins de terceros para de este modo crearos una super-distribución-personalizada-de-Eclipse. ¡Y encima el sistema te chequea las dependencias de manera automática!
Enhorabuena para Yoxos. Gran sistema, gran idea y gran producto.
Eclipse pone en evidencia a Microsoft
martes, julio 04, 2006 por Martín
Eclipse, mucho más que un entorno de desarrollo de Java (sistemas embebidos, arquitectura, C/C++, PHP, ...) está metiendo cada vez más presión al entorno de desarrollo de Microsoft, Visual Studio. Según datos de la consultora Evans Data, Eclipse es ahora mismo el segundo entorno entorno de desarrollo más utilizado, por detrás de la suite de herramientas de Microsoft.
Pero mientras que los productos de Microsoft como Vista o Microsoft Office acumulan retraso tras retraso, la Fundación Eclipse ha conseguido coordinar todos sus equipos de desarrollo para realizar un lanzamiento con puntualidad británica. Mike Milinkovich, CEP de la fundación afirmó a The Register que la plataforma Eclipse debe ser ante todo predecible y fiable, y que con este lanzamiento lo han demostrado. Erich Gamma y John Wieland ofrecieron una presentación en la Java One 2006 en la que se explican los esfuerzos necesarios para coordinar este tipo de lanzamiento distribuido.
¿Debe tomar nota Microsoft?
viernes, junio 30, 2006
Forrester: Proyectos Open Source en el 2006
viernes, junio 30, 2006 por Martín
Los proyectos líderes:
- MySQL
- Eclipse IDE
- Apache HTTP Server
- Apache Tomcat
- JBoss Application Server
- PHP
- Hibernate
- Apache Velocity
- PostgreSQL
- Spring Framework
- Apache Struts
- Apache Cocoon
- Apache Geronimo
Por cierto, si alguien quiere acceder al informe completo pues tendrá que pagar los US$1995.00 que cuesta el acceso. Vaya, que el dólar está bajo pero que todavía no tanto para que me lo pueda permitir.
miércoles, junio 28, 2006
Ganas de probar pentaho
miércoles, junio 28, 2006 por Martín
Pero bueno, la verdad es que ya no recuerdo las veces que habré bajado mondrian y jpivot y que nunca los probé. Creo que la primera fue hace dos años, cuando eran productos cuasi-abandonados. Realmente me ha sorprendido como estos dos productos han ascendido de las cavernas de sourceforge.net hasta conertirse ahora mismo en productos de moda. Lo más seguro es que fueran productos internos de algunos de los miembros de la actual pentaho y que éstos últimos decidieran dar el salto y fundar su compañía, dándole un importante acelerón al código fuente base, porque la verdad es que la diferencia en cuanto a actividad, marketing y movimiento ha sido enorme.
En fin, que habrá que probarlo tarde o temprano porque parece muy interesante. Por cierto, en TodoBI tienen tres artículos sobre el tema: Introducción a Pentaho, Pentaho 1: reporting y Pentaho 2: Análisis OLAP.
Technorati Profile
Programadores, marketing y weblogs
miércoles, junio 28, 2006 por Martín
El caso es que en algunas de las entradas pone:
- A diferencia de los programadores mediocres, los comerciales mediocres en ocasiones tienen fortuna. Cuando lo consiguen acaban con un éxito que les permitirá alardear durante toda una generación. Pero eso no significa que lo vuelvan a conseguir.
Y es que los weblogs se han convertido en un método de auto-promoción increible. Ahroa mismo cualquiera puede crear un weblog, comenzar a escribir de algún tema técnico específico, escoger los canales de promoción adecuados, y de pronto tendrá grandes posibilidades de obtener buenas ofertas de trabajo sin siquiera ser un programador brillante.
La verdad es que a mi sólo me pasó una vez. Me ofrecieron una muy buena oferta para trabajar en Londres en un banco, pero bueno, no era el momento de saltar el charco. Lo que sí que me ha pasado más veces es recibir correos de recruiters buscando gente interesada en algún puesto de trabajo en concreto (supongo que eso indirectamente se podrían considerar como ofertas a mi).
En fin, que bravo por los que sean listos. Los demás seguiremos trabajando :-)
martes, junio 27, 2006
Quiero esta formación
martes, junio 27, 2006 por Martín
Come attend training in the Java Programming Language surrounded by beautiful beaches, warm weather and great food. Bring your family along and spend quality time with them alongside excellent learning.
Se trata de unos cursos que se realizan en la isla de Creta y en los que en el precio se incluye el alojamiento en un hotel de cinco estrellas con desayuno incluido. Eso sí, el vuelo y coche no se incluyen en el precio. Por si queréis intentar convencer a vuestro jefe, podéis ver las razones que argumentan.
Yo casi que no voy a probar ;)
lunes, junio 26, 2006
Motivación: Jefes de proyecto con valor añadido
lunes, junio 26, 2006 por Martín
Hace menos conocí otro caso de una persona que dejaba su empresa para ir a trabajar en un camping porque le salía más rentable: cobraba más y se lo pasaba mejor.
Estos dos sucesos, aunque no lo parezca, tienen una relación. ¿Cómo puede motivarse un equipo de desarrolladores mal pagados para que permanezcan en la empresa durante un tiempo razonable?
Las metodologías ágiles promueven una serie de medidas para solucionar estos problemas como el realizar jornadas de trabajo de las horas necesarias, no realizar horas extras, mantener un buen ambiente de trabajo, trabajar en equipo, etc. etc. Todo esto está realmente bien, especialmente para no engañar a los trabajadores ( no es lo mismo cobrar 300€ a la semana por 40h que 300€ por 48h ), pero quizás donde algunas metodologías ágiles no se adentran todo lo necesario es en la figura de jefe de proyecto y sus consecuencias para el equipo. Algunas metodologías incluso promueven los equipos autónomos, sin ningún jefe de proyecto real que marque pautas, iteraciones, tareas, etc., pero bueno, eso ya es otro tema.
Muchas empresas se ven obligadas a contratar personas con unos salarios irrisorios, por diversas razones en las que tampoco voy a entrar. La cuestión es, ¿cómo mantener a estas personas en nuestra empresa cuando la realidad es que pueden cobrar más en cualquier camping y pasarse un verano fenomenal? Vaya, visto así, no parece demasiado sencillo, ¿verdad? :-)
La clave para mi está en la motivación, y uno de las personas que tiene la responsabilidad de tratar de motivar a estas personas es el jefe de proyecto. ¿De qué sirve tener un jefe de proyecto que sepa gestionar muy bien las tareas si no le va a ofrecer nada a sus desarrolladores? Normalmente estas situaciones terminarían en comentarios como "pepito no tiene ni idea", "tengo que hacer esto pero no me han dicho con qué", "vaya con el pepito, tenemos que resolver esto, le hemos preguntado como, y dice que lo busquemos en google".
La relación entre la empresa y el empleado en este caso ha de ser un acuerdo en el que los dos ganen algo. Ya que el empleado no va a cobrar mucho, al menos debe sacar otros beneficios. Por suerte, la época en la que la mejor quiniela en España era un trabajo ha pasado, al menos en este momento en el mundo de las TI. El acuerdo podría ser algo del estilo: "Mira, lo siento, me encantaría poder pagarte más pero ahora mismo es imposible. Nuestra oferta es para trabajar en este proyecto donde no vas a cobrar mucho pero vas a aprender un montón, trabajás con tecnologías actuales y se respetará el horario laboral".
El único modo de satisfacer esta propuesta es tener al mando de los equipos de desarrollo personas que realmente sepan lo que hacen, con un nivel técnico alto a la vez que capacidades de gestión de equipos. Poniéndome en el papel de una persona que cobre un salario bajo y que entre a trabajar en una factoría de software, o en cualquier cliente, bajo el mando de un jefe de proyecto, esto es lo que me gustaría encontrarme para que realmente me compensase el no irme a la playa a trabajar:
- Altos conocimientos técnicos: Puede llegar a ser difícil respetar a una persona que teóricamente es tu jefe y que sabes que no tiene los conocimientos técnicos para abordar el trabajo que tiene asignado.
Del mismo modo, un proyecto necesita realizar una serie de decisiones técnicas, no sólo a su inicio, que no se deben delegar en terceras personas no relacionadas con el proyecto o incluso en el equipo de desarrolladores que quizás no tengan la experiencia necesaria para abordarlas.
No confundirme en este último punto. Siempre se debe tener en cuenta la opinión del equipo de desarrollo. Esto es fundamental. Pero, en mi opinión, la decisión debería ser un consenso entre ambas partes. Sea como sea, es muy importante que el jefe de proyecto sepa realmente de lo que se está hablando.
- Hacer ingeniería: Es importante que un jefe de proyecto sea capaz de forzar buenas prácticas, patrones de diseño, que sea capaz de enseñarle a sus desarrolladores a adaptarse a una metodología, que siga buenas costumbres como la integración continua o el desarrollo orientado a pruebas. Todo esto hará realmente que los desarrolladores vean su trabajo como lo que es, como un arte, y no como una chapuza de tres al cuarto.
- Mantenerse al día: El jefe de proyecto debería ser el encargado de guiar a los desarrolladores y de saber discernir entre las últimas tendencias realmente útiles a los proyectos y los bluffs. Es muy importante que los proyectos utilizen tecnologías fiables, al tiempo que lo suficientemente novedosas para mantener alto el espíritu del equipo. ¿A quién no le gusta estar trabajando con lo último de lo último? Ahora bien, hay que saber distinguir el "último de lo último" que puede ser realmente útil al proyecto del mero artefacto de marketing.
- Capacidad de formación: El jefe de proyecto debería ser capaz de compartir sus conocimientos con las personas que tienen a su cargo. Esto hace que las personas se sientan bien porque están aprendiendo cosas y por lo tanto no sentirán que están perdiendo su tiempo en un lugar donde no se aprende nada.
El estar trabajando con una persona que ves que cada día te ofrece algo nuevo y de la que continuamente estás aprendiendo algo, es una de las mejores sensaciones que puede tener una persona que comienza en esto de la informática, experiencia, por otra parte, probablemente extrapolable a cualquier otro sector.
- Ser capaz de bajar al nivel más bajo: Ser capaz de pringarse. Sí. Ser capaz de coger un ordenador, descargarse el código fuente del proyecto y mostrarle a un desarrollador del proyecto los errores que ha cometido. Esto evidentemente no quiere decir que el director tenga que solucionarle los problemas a los programadores, corrigiendo sus bugs, etc. Pero está muy bien el sentir la sensación de que hay una persona detrás de ti que tiene esa capacidad, lo que debería aumentar el respeto y la confianza del equipo de personas que está trabajando para ti.
- Habilidades como gestor de equipos: En todo equipo pueden surgir riñas, discusiones, conflictos, peleas, etc. que el jefe de proyecto debe ser capaz de afrontar y solventar. De nada sirven unas altas capacidades técnicas si después no eres capaz de mantener un buen entorno de trabajo.
- No forzar horarios: Y esto va en línea con todas las metodologías ágiles. Cuando tu equipo de personas ya se encuentra en una situación bastante precaria, de nada va a ayudar el hacerlos trabajar dos horas más al día.
Sí, es cierto, a lo mejor resulta que el proyecto tiene que estar para ayer. Pero forzar la situación puede hacer que se te vaya de pronto la mitad del equipo a la competencia, así que igual la solución al problema está en otra parte de la jerarquía de la empresa.
Evidentemente esto exige que el jefe de proyecto se deba a su equipo, sea un compañero más, y se encargue de velar de la estabilidad de la jornada laboral de sus subordinados
No sé si me he olvidado de algo, pero creo que es un ladrillo suficientemente grande :-)
sábado, junio 24, 2006
Noite meiga
sábado, junio 24, 2006 por Martín
Ayer había especialmente mucha gente. Ayudó mucho la marea llena. He buscado fotos en flickr, pero se ve que nadie estaba todavía lo suficientemente recuperado como para subir algo, así que he recuperado alguna foto del año pasado para los que no conozcan la fiesta.
viernes, junio 23, 2006
El modelo de negocio Second Life
viernes, junio 23, 2006 por Martín
Para los que no conozcan Second Life, resumiendo un poco, se trata de un juego de realidad social, donde las personas crean un personaje y se dedican a interactuar con un mundo que puede ser modelado. Así las personas pueden alquilar una casa, tener un trabajo y comenzar a ganar dinero... virtual... ¿o no?
Dicho así, parece el clásico juego masivo multijugador y online. ¿Pero cual es la diferencia y la clave del negocio?: Que el dinero virtual lo puedes canjear por dinero real y viceversa. Y ahí está lo genial del modelo de negocio. Más de 200.000 personas jugando en un mundo en el que se genera dinero de verdad. Gente que cambia decenas, cientos o miles de dólares para poder comprarse una casa virtual, o gente que se dedica a especular inmobiliariamente en un mundo virtual obteniendo dinero real.
Tal ha sido el impacto de este negocio que compañías reales han abierto sucursales virtuales para así darse publicidad y, por qué no, ganarse unos duros, de los que les gustan, de los reales.
Imaginaros las ganancias que puede estar generando, y que generará, esta idea para los creadores de este juego, los creadores de un mundo virtual donde se mueve dinero real...
Nuevo blog, nuevos aires
viernes, junio 23, 2006 por Martín
Llevo varios años como blogger, de hecho tengo un par de blogs en español e inglés activos. El caso es que estos blogs están en otro proveedor, difícil de mantener, y están muy orientados a temas técnicos, así que he decidido abrir otro blog más donde poder tratar otras temáticas diferentes. Además, parece que blogger es un sistema que funciona bastante bien, y a mi me encanta eso de que las cosas funcionen y no tener que tocar nada :-)
Otra de las razones importantes para esta andadura es el volver a comenzar con algo de anonimato. Seguramente este anonimato se perderá muy pronto, pero esto me da libertad para tocar temas que de otro modo no podría tocar. Es un poco difícil bloggear cuando tus amigos, compañeros de empresa, y jefes, se dan vueltas por tu blog.
Así que ala, echas las presentaciones, ahora toca comenzar a escribir.
Subscríbete al feed
Regístrate con Feedburner y recibirás por email todas las novedades
Comentarios Recientes
Recent Comments
Etiquetas
- programación (190)
- Arquitectura (90)
- java (78)
- Otros (76)
- empresa (62)
- sistemas (61)
- escalabilidad (56)
- agile (54)
- emprendedores (48)
- Irlanda (42)
- Open Source (31)
- google (27)
- empleo (26)
- humor (24)
- amazon (22)
- eventos (22)
- metodologías (22)
- fun (21)
- rendimiento (21)
- software (21)
- dublin (20)
- testing (18)
- startups (17)
- galicia (15)
- hadoop (15)
- spring (15)
- datacenter (14)
- seguridad (14)
- unit testing (14)
- web 2.0 (14)
- cloud computing (13)
- grails (13)
- jobsket (13)
- libros (13)
- Ingeniería (12)
- eclipse (12)
- facebook (12)
- bases de datos (11)
- virtualización (11)
- yahoo (11)
Archivo de Entradas
-
►
2011
(58)
- ► septiembre (5)
-
►
2009
(61)
- ► septiembre (3)
-
►
2008
(129)
- ► septiembre (11)
-
►
2007
(217)
- ► septiembre (17)
-
▼
2006
(42)
-
▼
diciembre
(10)
- Betanzos en la red
- Cuatro años bloggeando
- Vacaciones y Irish seals
- Juegos en la empresa
- Irlanda: Otro mundo en cuanto a Internet
- Comet, reinventando términos
- Pruebas proactivas, tests de integración y equipos...
- ¿ Debería despedir a su arquitecto ?
- Ron Jeffries sobre metodologías ágiles
- Interfaces de usuario: ¿Construcción manual o auto...
-
▼
diciembre
(10)
Mi CV
Cosas que leo
List
También tenemos una tienda de Colchones y Sofás en Betanzos