nexblu y… ¿greenblade?

nexblu va a ser una aplicación de Internet que ofrecerá a sus usuarios una colección de funciones (crecientes y a su gusto, como comentamos el primer día), accesibles tras su autorización mediante usuario y contraseña: facturación, contabilidad, estadísticas, etc.

Pero nosotros, como organización que pone en marcha y distribuye la aplicación nexblu, necesitamos un sistema propio para gestionar a sus usuarios. Por lógica de diseño, no podemos incorporar esta segunda aplicación dentro de nexblu, aunque tienen que poder comunicarse entre si en determinados momentos. Por ejemplo:

  1. Cuando un usuario intente entrar en nexblu, alguien tiene que saber que puede entrar o no, qué funciones debe encontrar disponibles o en qué idioma va a trabajar.
  2. Queremos también hacer un seguimiento estadístico de la actividad de cada usuario, entre otras cosas para poder saber qué funciones son más utilizadas, cuáles dan más molestias, etc. En caso de poner en marcha un sistema de pago por uso, está claro que esta información de seguimiento será imprescindible.

Todas estas funciones, independientes de nexblu pero que actuarán, dentro del sistema global, como metafunciones sobre nexblu, las hemos agrupado en una segunda aplicación que hemos bautizado como… greenblade.

La comunicación entre greenblade, que será un sistema completamente interno, y nexblu la haremos mediante APIs. Hoy en día crear APIs es algo muy común, y su importancia ha ido creciendo conforme lo hacían las aplicaciones distribuidas en Internet. De hecho, una de las ventajas que ofrece Ruby on Rails sobre otros lenguajes y entornos de programación  es la facilidad para el desarrollo de APIs.

Es el ejemplo también de Twitter o de Facebook, aunque en nuestra opinión es preferible el de Twitter porque es mucho menos intrusivo: al fin y al cabo todo lo que da Facebook es una excusa para fagocitarnos a su interior, cosa que Twitter, al menos hoy por hoy, no intenta.

Nosotros hemos preferido utilizar APIs en lugar de, por ejemplo, Servicios web porque éstos últimos son demasiado complicados para lo que acaban aportando. En realidad, las APIs son servicios web pero con menos “parafernalia técnica” (recordemos que montar un servicio web requiere tres protocolos distintos: SOAP, WSDL y UDDI, ¡ahí es nada!), lo que les hace la solución perfecta cuando no se trata de establecer comunicaciones complejas.

Cualquiera que haya usado los estupendos Servicios Web de Amazon, o haya tratado con aplicaciones REST-ful, sabe lo fácil que resulta desarrollarlas y ponerlas en marcha en comparación con los servicios web convencionales.

Ahora mismo estamos en pleno desarrollo de las primeras APIs de comunicación entre greenblade y nexblu, imprescindibles para que el módulo de login funcione como es debido y cargue todo aquello que un usuario ha solicitado. Como decíamos más arriba, funciones disponibles, lenguaje, etc.

Un abrazo desde Nex-Software.

¡Ronda 0.0.1 en marcha!

Esta semana hemos completado la primera ronda de trabajo en el proyecto. Hay que decir que llamamos ronda al conjunto compacto de funciones que consideramos como un todo unificado.

En el caso de desarrollar compilando, como ocurre cuando se trabaja en un proyecto con .Net o Java, por ejemplo, hablaríamos de compilación. Pero como hacemos uso de PHP, HTML, CSS, JS, base de datos, etc, y nada de esto se compila, pues nos hemos apropiado de la palabra ronda para referirnos al paquete de cambios que incluye cada quincena de trabajo.

Nos organizamos desarrollando durante dos semanas y probando una tercera, con lo cual podemos establecer un cslendario, flexible, porque somos pocos, de renovación total cada tres semanas, como prometimos el primer día.

Esta primera ronda apenas hace nada. Como, por cuestiones técnicas, tenemos dos bases de datos independientes que se comunican vía APIs, esta vez nos hemos ocupado sobre todo de poner en marcha ambas bases de datos (mySQL) y desarrollar una primera versión simplificada de login.

Muy pronto, más.

Un abrazo desde Nex Software.

La metáfora de nexblu

desarrollo agil de software

Desarrollo ágil de software

Cualquiera que haya leído un poco sobre desarrollo ágil de software sabrá a qué se refiere el título de esta entrada: una visión más o menos concreta acerca de lo que pretende llegar a ser nexblu, el software que queremos desarrollar.

Esta visión puede tener en cuenta diversos puntos de vista y, en general, según cual sea el punto de vista adoptado, la metáfora puede llegar a ser muy diferente porque el conjunto de los detalles que contenga dependerá de ese punto de vista.

Por ejemplo, si estamos pensando en la experiencia de usuario nos saldrá una visión y si pensamos en las funciones del software nos saldrá otra visión, pero entre si ambas visiones son complementarias porque, en el fondo, todas estas metáforas son sólo aspectos parciales de una única metáfora global.

De hecho, es imprescindible tener en cuenta todos estos aspectos tan pronto como sea posible (en nuestro caso, ¡ahora!) porque de lo contrario surgirán tarde o temprano, sin avisar, y, como diría Pastora, buscando follón.

En resumen, trabajamos con visiones parciales porque resulta más sencillo y ayuda a centrarse en un aspecto autónomo del trabajo. Naturalmente, ser capaz de integrar estas visiones parciales en un todo coherente es una tarea clave que alguien, si no todos, en el proyecto debe saber hacer.

Por ejemplo, y ya hablando de nexblu, nuestra visión acerca de lo que queremos que sea la experiencia de usuario nos lleva a pensar en una interfaz:

  • rápida.
  • eficaz.
  • fácil de usar.
  • móvil.
  • adaptable a diferentes perfiles de usuario.

Los requerimientos de rapidez y movilidad nos llevan a pensar en una interfaz basada en el navegador y que haga un uso intensivo de AJAX y HTML5. Lo cual no creo que sorprenda a nadie, ya que hoy en día lo dice todo el mundo. Para muestra, la propia Microsoft en su evento en marcha sobre Windows 8: Build Windows.

Los otros tres requerimientos tienen más miga ya que condicionan no sólo el desarrollo técnico de la UI sino también el desarrollo funcional de toda la aplicación: cómo espera nexblu que se hagan las cosas, o, en otras palabras, como propondrá nexblu a sus usuarios que hagan uso de sus funciones.

De hecho la propuesta a los usuarios que haga nexblu será un indicador determinante, literalmente hablando, para su futuro: una propuesta equivocada, en un mercado en el que no es posible (al menos, éticamente hablando) mantener a los clientes cautivos, implicará la muerte de la aplicación.

Nosotros queremos construir un software con una curva de aprendizaje de muy baja altura y que sea capaz de satisfacer a usuarios de perfiles distintos: abogados, consultores, conferenciantes, diseñadores, emprendedores en general, son todos ellos clientes potenciales de nexblu a los que habrá que dirigirse usando mensajes diferentes porque también lo son sus perfiles profesionales.

¿Lograremos encontrar soluciones versátiles, adaptables a cada usuario, y que satisfagan razonablemente bien los requerimientos que planteaba más arriba?

Es nuestro trabajo conseguirlo.

Un abrazo desde Nex Software

Pero, ¿qué es nexblu?

Lo que viene a continuación es una exposición de nuestro propósito al publicar este blog.

Nuestra principal intención es dejar constancia escrita, a quien pueda interesar, del progreso de una nueva aplicación de software en la nube: nexblu.

Nexblu nace (o quizá sea más apropiado decir que “nacerá”) con el propósito de intentar demostrar un lema:

Siempre hay una forma mejor de hacer las cosas

Más concretamente, nexblu pretende ser una aplicación de gestión para autónomos y microempresas (hasta 10 empleados). Empezaremos, como todo el mundo, con un módulo de facturación, para luego ir incorporando más funcionalidad progresivamente.

¿Qué distinguirá a NEXBLU del resto de aplicaciones en la nube que sirven, sobre el papel, para cumplir con el mismo objetivo? Pues tres cosas:

  1. Pretendemos llevar a la gestión de las empresas muy pequeñas lo que sabemos, por haber trabajado más de diez años en ellas, de la gestión de las empresas muy grandes: estadísticas, indicadores de actividad, automatización de tareas, etc. En pocas palabras, inteligencia de negocio, algo que nuestros clientes potenciales, hoy por hoy, no pueden contratar a nadie. Al menos, no al precio al que se podrá contratar nexblu.
  2. Nexblu crecerá continuamente. A día de hoy, todas las aplicaciones de gestión en la nube son estáticas (se limitan a ampliar el número de países o tipo de negocio al que se dirigen, a corregir errores y a añadir de vez en cuando alguna función más) o bien crecen como lo han hecho tradicionalmente los programas de gestión para grandes empresas (los ERPs). Nexblu ampliará sustancialmente sus funciones cada 21 días (tres semanas). Y cuando decimos “sustancialmente” queremos decir “sustancialmente”. Como dicen, ver para creer.
  3. Nexblu crecerá de acuerdo a lo que soliciten sus usuarios. Esto quiere decir que mantendremos una lista de peticiones abierta permanentemente, y cada usuario podrá votar por aquellas que crea que valen la pena apoyar en cada momento. El orden decidido por los usuarios será el orden de desarrollo e implantación que nosotros seguiremos.

Y hasta aquí lo que podemos decir por el momento. Supongo que se os habrán ocurrido preguntas o comentarios al respecto de lo que acabamos de decir, no dudéis en escribir lo que os parezca oportuno aquí abajo.

Un abrazo desde Nex Software.