¿Cuánto cuesta poner en marcha un ecosistema de desarrollo software? II

Hace unos días publicábamos una entrada con el título ¿Cuánto cuesta poner en marcha un ecosistema de desarrollo software? Hoy vamos a continuar con el tema e intentaremos aportar nuevos datos. A comienzos de junio presentábamos públicamente Clinker Virtual Appliance, una máquina virtual basada en VMWare preparada para entrar en producción.

Revisemos la tabla anterior partiendo de que disponemos de esta appliance:

[table id=14 /]

Si nuestra opción sigue siendo tener nuestro ecosistema en casa, en este caso nos habremos ahorrado el coste puntual del mes que estimamos para la instalación y configuración del ecosistema. Con esta propuesta conseguimos:

  1. Tener en producción un ecosistema en el mismo tiempo que se tarda en desayunar. Simplemente necesitamos desplegar una imagen virtual de VMWare mediante VMWare Player u otras soluciones más avanzadas. Recientemente hemos realizado pruebas y hemos conseguido migrar con éxito la imagen a la solución de virtualización de RedHat.
  2. Disponer de una solución diseñada e implementada por klicap, una empresa que se dedica profesionalmente a los ecosistemas de desarrollo software. Esto por otro lado brinda una serie de opciones que están recogidas en un catálogo de servicios alrededor de la solución Clinker. Toda esta información estará disponible a finales de verano en el sitio web de producto.
  3. Obviamente, disfrutar de la propia solución. Es decir, sus herramientas (subversion, trac, redmine, nexus, hudson, sonar, alfresco), comodidad en su administración (monitorización, backups, organización, configuración), plugins exclusivos (Sonar PDF Report Plugin, Stractistics Trac Plugin, CMIS Trac Plugin) y un Single Sign-On.
  4. Posibilidad de preguntar y proponer libremente a través de una plataforma que se ha habilitado.

Con esta simple propuesta hemos conseguido ahorrar el coste fijo de 2.875,00 €. Te animamos a usar Clinker Virtual Appliance, su coste es cero y su licencia de publicación es Creative Commons. Nuestro siguiente objetivo es eliminar todos esos costes y sustituirlos únicamente por un único coste mucho más bajo consiguiendo además muchas más ventajas que las obtenidas con esta y la anterior propuesta. ¿Crees que lo conseguiremos?

¿Cuánto cuesta poner en marcha un ecosistema de desarrollo software?

En los últimos años hemos participado en varios proyectos de diseño e implantación de ecosistemas de desarrollo software. En todos hubo un denominador común, el cliente quería explotar su ecosistema en su propia infraestructura. Con el objetivo principal de que podamos reflexionar sobre el tema, vamos a publicar algunos datos que nos permitan ubicar el coste de un proyecto de estas características. No debemos ser muy rigurosos con los datos porque sino complicaríamos en exceso el mensaje que se pretende transmitir.

Poniendo los números sobre el papel:
[table id=13 /]

Algunas consideraciones sobre los datos que se muestran en la tabla:

  1. El hardware es un DELL PowerEdge R710, con 2 Intel Xeon E5504 (2.0Ghz, 4M Cache), 8GB de RAM y 2 HD de 750GB a 7200 rpm.
  2. El coste puntual de un administrador de sistemas proviene de estimar que haría falta un mes para implantar algo similar a Clinker.
  3. El coste del suministro es una aproximación teniendo en cuenta las facturas, consumo de la fuente de alimentación y coste KW/h.
  4. En el apartado de conexión a internet se ha tomado como referencia nuestra conexión simétrica de 2Mbits, 1 IP fija, línea de teléfono/fax y 300 minutos incluidos en llamadas nacionales.
  5. El coste mensual de un administrador de sistemas proviene de estimar que haría falta un 10% de su tiempo para tareas propias de mantenimiento.

Es fácil rebatir todas estas consideraciones y estimaciones:

  1. No necesitamos que nuestro ecosistema esté accesible desde fuera de nuestra empresa.
  2. Ya contamos con hardware que podemos reutilizar para este fin
  3. Tenemos un técnico de sistemas que poco a poco puede ir configurando todas las herramientas que necesitamos

Sin embargo es más difícil plantear soluciones a:

  1. ¿Qué pasa si el número de usuarios y proyectos crecen? ¿Estás preparado para crecer?
  2. ¿Qué pasa si sucede una catástrofe y se estropea un disco duro? ¿Estás preparado para eso?
  3. ¿Cómo haces backups y dónde?
  4. Montar un servidor web o ftp no tiene nada que ver con poner en producción Sonar o Hudson para 50 proyectos. ¿Tienes este perfil?
  5. Si tu negocio no gira alrededor de los ecosistema de desarrollo software, ¿Te compensa invertir un solo euro?

Antes de poner en marcha un proyecto de estas características es importante escribir algunos números y analizar qué camino elegir. Si necesitas ayuda, puedes contar con nosotros. Estamos trabajando para que esos números disminuyan para ti.

Buenas prácticas en el envío de emails desde una app web

No es la primera vez que nos encontramos con que los correos electrónicos enviados por una aplicación web son marcados como spam por algún sistema anti-spam. Para evitarlo debemos conocer cuáles son las medidas que utilizan la mayoría de sistemas anti-spam para filtrar los correos. Muchas de estas medidas son las descritas en la RFC822Standard for the format of ARPA internet text messages“, si nuestros emails cumplen (de forma general) las propuestas del estándar tienen muchas probabilidades de pasar la mayoría de los filtros.

Por supuesto hay otros muchos aspectos que se tienen en cuenta, como el ratio entre imágenes y texto que contiene el correo, enlaces, etc… Evidentemente si lo que estamos enviando no es spam, cumpliremos también con todos estos baremos, y si no los cumplimos la única solución es revisar el contenido de los correos, seguro que algo hay que corregir.

Esta es la teoría, ahora la práctica.

Dejando a un lado las medidas no “sistemáticas”, o de formato del contenido, hay un conjunto de medidas “sistemáticas” aplicables a las cabeceras del correo, las cuales podemos controlar fácilmente si usamos un framework como Spring junto a Java Mail (javax.mail) correctamente. Algunos puntos a tener en cuenta:

  • Incluir la fecha de envío (cabecera “Date”)
  • Si la cabecera “Content-type” es HTML, que el contenido sea un HTML, no texto plano
  • El formato de las cabeceras “from”, “to”, “reply-to” debe adecuarse a la RFC822

La clave está en el uso de la clase InternetAddress para modelar cada uno de los implicados (from, to y reply-to). Esta clase se encarga de modelar correctamente cada uno de los atributos anteriores.

Este es el código fuente (simplificado) que prepara un correo antes de ser enviado:

InternetAddress recipient = new InternetAddress("john.doe@jondoe.com", "Jon Doe");
recipents.add(recipient);
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, Constante.DEFAULT_ENCODING);
message.setFrom("joe.blow@joeblow.com", "Joe Blow");
message.setReplyTo("joe.blow@joeblow.com", "Joe Blow");
message.setSentDate(Calendar.getInstance().getTime());
message.setSubject(mail.getSubject());
message.setTo(recipients);

Para los más curiosos, este fragmento de código iría dentro de la implementación de MimeMessagePreparator de Spring Framework.

La comunidad sin papeles

En la última década, especialmente estos últimos años, hemos oído hablar mucho sobre Oficinas Sin Papeles, Administración pública Sin Papeles y alguna que otra cosa más sin papeles. De hecho, el impulso por parte de la administración pública ha sido notorio y significativo. Otra cuestión son los resultados.

Los objetivos detrás de esta estrategia son:

  1. Prevenir y controlar el consumo de materias primas mediante el uso de la tecnología
  2. Permitir el acceso telemático de los ciudadanos a los servicios públicos, mejorando así la agilidad y calidad de los mismos
  3. Fomentar la investigación dirigida a desarrollar y difundir nuevas tecnologías de la información y comunicaciones
  4. Establecer un marco reglamentario y normativo que fomente la competencia
  5. Favorecer el desarrollo de aplicaciones y contenidos y apoyar iniciativas que capaciten y estimulen a todos los ciudadanos para sacar provecho de la sociedad de la información y participar en ella.

Supongo que habrá muchos más objetivos, pero creo que son suficientes para que todos entendemos en qué consiste esta estrategia. Pues bien, si cambiamos el foco y nos centramos en lo que sucede en el día a día de una comunidad de vecinos podemos detectar muchos ejemplos (procesos) que justifican mivecindad.com como proyecto. Son ejemplos en los que la tecnología nos ayuda, agiliza y facilita las cosas. A continuación podemos ver algunos de estos ejemplos:

  1. Notificar de la convocatoria de una Junta de Propietarios. Los canales habituales suelen ser mediante un carta (sin pasar por correos), tablón de anuncios comunitario y en el mejor de los casos correo electrónico. Predomina el medio escrito con soporte físico.
  2. Notificar de la convocatoria de una Junta Extraordinaria. En ese caso a diferencia del anterior, suele haber una premura y quizás alguno de los canales anteriores no sea posible.
  3. De cara a la preparación de una Junta en la que se vayan a presentar presupuestos, la Junta Directiva debe proporcionar esos presupuestos previamente para que los propietarios los estudien.
  4. Situación económica. La transparencia en lo económico es importante y necesario. Cualquier propietario tiene derecho a solicitar el estado de cuentas o a estar informado con una cierta periodicidad.
  5. Notificación de cambio de datos. Cuando un inmueble cambia de propietario, o bien algunos de los datos del propietario cambia, hay que notificarlo al administrador de fincas para que los datos que se gestionen tengan una cierta calidad. Lo normal es notificarlo a la oficina del administrador de fincas a través de correo electrónico o con una llamada de teléfono.
  6. Las actas en las comunidades de vecinos crecen año tras año. Estos documentos tiene que estar firmados por el secretario y el presidente de la comunidad. Son documentos con un carácter histórico, es decir, deben estar accesibles desde la constitución de la comunidad para que cualquier propietario actual, o futuro comprador, pueda solicitar información de las decisiones que han tomado.
  7. Hay sucesos que deberían comunicarse a los propietarios con carácter urgente y que por no disponer de los medios adecuados, se genera cierta desinformación.
  8. La morosidad es una realidad en las comunidades de vecinos. La primera medida debe ser conciliadora e intentar proponer un plan de pago. El siguiente es un monitorio que implica que previamente se haya comunicado (carta certificada o burofax) la deuda y solicitar al propietario ponerse al día con la comunidad.

Más adelante iremos completando este listado. A corto plazo, mivecindad.com será algo más que una herramienta social para dar paso una completa plataforma que facilite el camino hacia “la comunidad sin papeles“. Se está trabajando en distintas líneas:

  1. Dar más cobertura a información de interés: información meteorológica, información municipal, gestión de contenido multimedia, etc.
  2. Notificaciones digitales con validez legal. Aportarán un importante ahorro en cartas certificadas y/o burofaxes
  3. Certificación de hora. Justificar legalmente el instante en el que un documento y/o notificación se genera y/o modifica.
  4. Firma digital de documentos. Ahorraremos tiempo y dinero en papel.

Estas son unas pinceladas de lo que será este segundo semestre en mivecindad.com