Páginas

jueves, 27 de noviembre de 2008

La usabilidad de Facebook y MySpace

Con lo importante que es la usabilidad en la web 2.0, con la cantidad de empresas y profesionales que se ganan la vida con este noble oficio, con lo que vende Apple gracias a su diseño y gran experiencia de usuario... ¿Por qué la usabilidad y el diseño de dos símbolos de la web 2.0 como son Facebook y MySpace dejan tanto que desear? ¿Por qué?

Enterprise 2.0 o la web social en la empresa (Parte III)

Parte I
Parte II
Parte IV
Parte V

Herramientas Enterprise 2.0:

  • Wikis: Conocimiento colectivo. Una forma rápida y de bajo coste para reunir el conocimiento empresarial en un mismo formato, en un mismo lugar y abierto a todos los empleados.
  • Microblogging: Forma de informar del día a día de cada uno de los empleados y de esa forma conocer el estado de todos los proyectos. Más info aquí y aquí.
  • Blogs internos: Además de los blogs corporativos incluidos en la web de la compañía, añadir blogs internos para comunicar y transmitir conocimiento y experiencias dentro de la empresa y los proyectos.
  • Sindicación de contenidos: Todos los contenidos de la Intranet (noticias, blogs, calendarios, información de proyectos, documentos…) deben estar sindicados. De esta forma los usuarios pueden recibir notificaciones al instante de todos los cambios dentro de la Intranet.
  • Comunidades: Creación y administración por parte de los empleados de sus propios sitios dentro de la Intranet donde compartir información por proyecto, departamento o grupo de interés (por ejemplo, aficionados al trekking).
  • Colaboración: Disponibilidad en la compartición y versionado de los documentos.
  • Web Social: disponibilidad de herramientas dentro de la Intranet asociadas a la web social, como, por ejemplo, publicación de fotografías (tipo Flickr), gestor de favoritos (tipo del.icio.us), videos (tipo YouTube), redes sociales (tipo Facebook), etc.
  • Voting/Ranking: Capturar la opinión colectiva. Una forma de medir cuál es el estado de los empleados a nivel de intereses y opiniones relacionadas con la empresa.
  • Mashups: Reutilización de herramientas de terceros. Desarrollo e implantación sencilla y barata.

miércoles, 26 de noviembre de 2008

Cómo crear un aplicación web. Fase V. La gestión del proyecto.

Fase I. Toma de requisitos
Fase II. Prototipos
Fase III. Diseño gráfico + Diseño software
Fase IV. Programación

A lo largo de todas las fases del proyecto debe existir la figura del jefe de proyecto o gestor del proyecto. Este rol se ocupará de hacer el seguimiento de las diferentes fases de proyecto tanto por el lado de su equipo como por el lado del cliente. El gestor del proyecto debe dedicarse a:

  • Convocar y liderar reuniones
  • Ser el enlace del cliente con el equipo de desarrollo
  • Ser el enlace del equipo de desarrollo con el cliente
  • Ser el enlace del equipo de desarrollo con la dirección de su propia empresa
  • Consensuar con el equipo de desarrollo el planning de ejecución
  • Velar para que el planning se cumpla
  • Velar para que su equipo tenga todos inputs necesarios para crear los entregables
  • Velar para que el cliente tenga los entregables
  • Relaciones públicas con el cliente

Se pueden definir tres tipos de jefes de proyecto:
  • El que no conoce la tecnología que se va a utilizar en el desarrollo del proyecto
  • El que conoce la tecnología y toma decisiones técnicas
  • El que conoce la tecnología y delega las decisiones técnicas en los expertos de su equipo
En mi opinión, la tercera opción es la más saludable. Una persona que conozca la tecnología y sea capaz de detectar desvíos (bienintencionados o malintencionados) ya sea por parte de su equipo como por parte del cliente y a la vez delegue todas las decisiones en su equipo, ya sea en el arquitecto técnico, el arquitecto de la información, el director de arte o incluso en el programador junior. El jefe de proyecto debe demandar unos outputs para determinados inputs y valorar si esos resultados son satisfactorios tanto en la forma como en el fondo.

Aunque “cada maestrillo tiene su librillo”, existen muchas metodologías en cuanto a la gestión de desarrollo de software, por ejemplo ITIL o CMMI.

jueves, 20 de noviembre de 2008

Enterprise 2.0 o la web social en la empresa (Parte II)

Parte I
Parte III
Parte IV
Parte V

SLATES como punto de partida http://sloanreview.mit.edu/smr/issue/2006/spring/06/...

  • Search: un buen sistema de búsqueda para toda la información acumulada por la empresa. El conocimiento debe estar al alcance del que lo necesita.
  • Links: potenciar la habilidad de crear interconexiones entre pedazos de información dentro y fuera de la compañía.
  • Autorship: cada trabajador deberían tener acceso a las herramientas Enterprise 2.0 sin ningún tipo de formación ni restricción.
  • Tags: facilidad para que los empleados puedan estructurar la información que aportan a la comunidad.
  • Extensions: extensiones a las funcionalidades básicas de la intranet, por ejemplo, recomendar contenidos relacionados.
  • Signals: uso de la tecnología para enviar contenidos a las personas interesadas, por ejemplo, mediante suscripciones RSS.


... Evolucionando al FLATNESSES http://blogs.zdnet.com/Hinchcliffe/?p=143

  • Freeform: el sistema puede evolucionar libremente, convirtiéndose en lo que los usuarios quieran que sea.
  • Links
  • Autorship
  • Tagging
  • Network-Oriented: basado en el web, reutilizable y disponible.
  • Extensions
  • Search
  • Social: compartir información del tipo en qué se está trabajando, favoritos, cambios de estado, etc.
  • Emergence: algo complejo surge de interacciones relativamente simples. Por ejemplo, una documentación es el producto emergente de una wiki.
  • Signals

miércoles, 19 de noviembre de 2008

Enterprise 2.0 o la web social en la empresa (Parte I)

Parte II
Parte III
Parte IV
Parte V

Hace unos meses que ando investigando sobre Enterprise 2.0 y la web social en la oficina. Aprovecho para publicar aquí algunas anotaciones que he ido recogiendo.

Enterprise 2.0 (E2.0) no es más que la utilización de las últimas tecnologías y tendencias dentro de la empresa. Si con la web 1.0 las empresas se orientaron a implantar herramientas Enterprise 1.0, ahora con la Web 2.0 las empresas deben enfocarse en las nuevas herramientas Enterprise 2.0 (que son una extensión de las herramientas Web 2.0).

Enterprise 2.0 no es únicamente un cambio tecnológico, principalmente es un cambio en las prácticas y la cultura dentro de la empresa.

Para Andrew McAfee, “padre” del término “Enterprise 2.0”: "Enterprise 2.0 is the use of emergent social software platforms within companies, or between companies and their partners or customers. Social software enables people to rendezvous, connect or collaborate through computer-mediated communication and to form online communities.“

Otras definiciones de “Enterprise 2.0” en http://www.e20portal.com/index.php/7-essential-enterprise-2.0-definitions.html

Enterprise 1.0 vs. Enterprise 2.0
JerarquizadaOrganización horizontal
Flujo de información top-downLa información fluye de arriba abajo y viceversa
BurocraciaAgilidad en la creación de contenidos
Equipos localesEquipos globales
OpacidadTransparencia



Según un informe de AIIM http://www.aiim.org/ (“Enterprise 2.0: Agile, Emergent & Integrated”) basado en una encuesta a 441 personas, éstas definen E2.0 como:

  • Aplicación de las tecnologías y pautas Web 2.0 en la empresa
  • Nueva forma de Enterprise Content Management
  • Colaboración entre empleados
  • El uso de nuevas plataformas de software social en las empresas
  • Inteligencia colectiva en la empresa
  • Nueva forma de gestión del conocimiento
  • Una nueva forma de trabajar centrada en el usuario
  • Democratización de la información

Cómo aparecer en la primera posición de Google

Había una vez una empresa que deseaba aparecer en las primeras (perdón, “en la primera”) posición de Google. Ofrecía servicios, así que deseaba que los potenciales clientes al teclear alguno de los servicios que ofrecía, su web apareciera en la primera posición. Sus servicios digamos que, para hacerlo más fácil, eran servicios relacionados con Internet. El empresario tenía claro que debía hacer para posicionar su empresa, había leído decenas de webs donde expertos en posicionamiento ofrecían ideas y decenas de libros donde se explicaba cómo conseguir que tu web aparezca la primera en Google y así multiplicar tus ventas.

El primer e importantísimo paso era definir un listado de palabras clave. Las palabras por las que batallaría por aparecer el primero, las palabras por las que pagaría en Adwords y así aparecer en los enlaces patrocinados. El empresario se reunió con su equipo de confianza y, después de una larga jornada de brainstorming, dieron con las palabras exactas, ni más ni menos que los servicios que ofrecían: usabilidad, web 2.0, programación web, accesibilidad, diseño web, estándares, e-Business, Intranets… y, cómo no, posicionamiento web. Sí, ya eran expertos en posicionamiento web, ya que todos esos servicios van unidos, ¿no? ¿O una empresa que sabe de usabilidad no sabe de posicionamiento web o de programación web? Pero bueno, esto es harina de otro costal.

El empresario se gastó unos cuantos euros en AdWords y en contratar los servicios de un SEO, que se preocupó de posicionar la web de la empresa para las búsquedas de las palabras clave definidas por su cliente. Pasaron los meses y resultó que no se consiguió el número de visitas deseadas, mejor dicho, no consiguió el ROI deseado. Más visitas que antes tenía, pero no aportaban facturación para su negocio. Al empresario le resultó extraño, aparecía en la primera página de Google al buscar “posicionamiento web”, “web 2.0” y “usabilidad”.

Un buen día, cuando nuestro amigo estaba desesperado y acababa de prescindir de los servicios del SEO, se topó con un viejo amigo que trabajaba en el departamento de márketing de una gran editorial. Nuestro amigo le explicó el porqué de su estado de ánimo. Su viejo amigo no tenía conocimientos técnicos, pero le confesó que precisamente estaba investigando el tema de salir en las primeras posiciones de Google, ya que pensaba que sería una buena estrategia de ventas para su empresa editorial. Nuestro amigo le preguntó si cuando buscó “posicionamiento web” en Google encontró la web de su empresa. Su amigo contestó: “perdona, no sé que es el posicionamiento web. Yo busqué en ‘cómo aparecer en la primera posición de google’”.

martes, 18 de noviembre de 2008

Cómo crear un aplicación web. Fase IV. Programación.

Fase I. Toma de requisitos
Fase II. Prototipos
Fase III. Diseño gráfico + Diseño software

Cuando ya tengamos las pantallas de la aplicación maquetadas en HTML y la base de datos modelada podemos pasar a codificar (programar) la aplicación.

Dividiremos la aplicación en diferentes capas (N-capas). Cada una de esas capas se comunicará con las demás y será independiente de las demás. ¿Qué son las capas? Simplemente agrupación de clases y funciones.

Mi recomendación es que nuestra aplicación tenga las siguientes capas:

  • Capa de acceso a datos: lanzará consultas a la base de datos (o el repositorio de datos sobre el que debamos atacar, ya sea base de datos, archivos de texto o archivos de cualquier tipo). Debemos crear una consulta para cada uno de los casos de uso definidos anteriormente, por ejemplo, crear usuario, añadir fotografía, modificar perfil, etc. Las consultas sobre una base de datos relacional se realizan en el lenguaje estándar SQL, es muy recomendable crear procedimientos almacenados (no son más que funciones con parámetros de entrada/salida) en la propia base de datos y minimizarlos a la mínima expresión (select, delete, update, insert).
  • Capa de negocio: Es el lugar donde se lleva a cabo el core de la programación, donde se transforma los datos obtenidos por la capa de datos en datos que podrán ser mostrados por la capa de presentación, y viceversa.
  • Capa de presentación: en el caso de las aplicaciones web, la capa de presentación es la que muestra datos en la pantalla y recoge datos introducidos en los formularios.
  • Capa de acceso a aplicaciones de terceros: si nuestra aplicación necesita acceder a datos de terceros (APIs de aplicaciones públicas, XML de datos de otra web, servicios web, etc.) es recomendable que lo centralicemos en una nueva capa. De esta forma si cambiamos de proveedor o cambiamos la forma de obtener esos datos, será totalmente transparente a las demás capas.

Mi recomendación es ir programando las capas en este orden: primero el acceso a datos y de esa forma crear una batería de pruebas para comprobar si los datos se guardan correctamente en la base de datos. Una vez está testeado, crear la capa de negocio y continuar con las pruebas, para acabar con la capa de presentación. Si hemos realizado las pruebas correctamente y, puesto que ya tenemos los prototipos maquetados en HTML, la programación de capa de presentación será muy sencilla y rápida.

Todo este proceso puede dividirse en partes independientes e ir realizando entregas al cliente y así evitar una entrega única al final del proyecto.

viernes, 14 de noviembre de 2008

Planificación en los proyectos empresariales 2.0

Estas últimas semanas he leído varias noticias que me han inquietado. Por un lado la muy cacareada petición de financiación a la comunidad de usuarios para poder seguir emitiendo de Mobuzz (aquí, aquí, aquí o aquí). Por otro lado, la noticia (rumores) que Facebook necesita otra inyección de capital (sí, incluso después de la que le proporcionó la venta del 1,6% a Microsoft por 240 millones de dólares). Y cómo no, la ristra de despidos en las empresas tecnológicas, dando que pensar que estamos en una nueva “burbuja.com”.

Cómo ya comenté en este post, tengo dudas razonables sobre los planes que tienen ciertas empresas 2.0 como Twitter o Facebook al respecto de monetizar su éxito.

Estuve hablando sobre estas inquiteudes con mi buen amigo Carlos Sánchez (Técnico de Creación de Empresas en Barcelona Activa). Charlamos sobre la importancia de tener un buen plan de negocio y estar preparado tanto para el fracaso como para el éxito cuando te inicias en un nuevo proyecto empresarial. Estar preparados por si el éxito nos sorprende y, en ese momento, saber confiar en expertos para que no asesoren en la gestión del éxito.

A partir de esa charla, y teniendo en cuenta la experiencia que atesora Carlos en el asesoriamiento a emprendedores, le propuse que escribiera un artículo sobre la planificación en los proyectos empresariales 2.0. Aquí lo tenéis:

La planificación en los proyectos empresariales 2.0

Cuando hablamos de creación de empresas, Internet y financiación, son muchos los matices que debemos tener en cuenta y, con ellos, de la mano, los peligros que acechan a cualquier proyecto empresarial en su camino hacia la viabilidad. Como en todo aquello que funciona y además tiene eco mediático, el peligro de quedarse en el titular y no entrar en la letra pequeña es muy elevado. Y es que actualmente somos testigos del éxito de las redes sociales, de la llamada Web 2.0. Nombres como Facebook, LinkedIn o Xing nos son cada vez más familiares y somos muchos los que formamos parte activa o cuanto menos testimonial. Y es que precisamente, estas redes sociales basan su éxito y su enorme potencial en su capacidad para generar usuarios, es decir, en su capacidad para acumular datos y más datos sobre millones de personas, teniendo acceso directo o indirecto a aspectos tales como la edad, la formación, los gustos musicales, sus actividades de ocio, sus viajes o la gente con la que se relacionan. En el caso de proyectos empresariales basados en Internet, en la inmensa mayoría de los casos, el cálculo del valor y el potencial de dicho proyecto residen en su capacidad para generar usuarios. Generalmente, inversores privados o entidades financieras piden previsiones sobre cuántos usuarios podrá acumular el proyecto en los primeros dos o tres años de actividad. Pero, ¿qué ocurre cuando ese proyecto, convertido ya en realidad, acumula usuarios pero no genera los ingresos necesarios para sostenerse? En mi opinión, se pone de manifiesto la falta de previsión y planificación durante el proceso de desarrollo y maduración de la idea, durante la fase de elaboración del plan de empresa.

Hace poco salió a la luz el caso de Mobbuz, una plataforma de TV on-line que pese a tener una cantidad nada despreciable de fieles seguidores, había lanzado una petición desesperada a sus usuarios: una donación para poder mantener la web; de lo contrario se verían obligados a cerrarla. ¿Cómo puede ser que una web con tal cantidad de usuarios esté condenada al cierre? En otras palabras, ¿cómo es posible que una empresa que cumple con las previsiones que auguraban su viabilidad y rentabilidad resulte no ser rentable? Muy sencillo, simplemente el referente para determinar la viabilidad era erróneo, y además las expectativas de ingreso derivadas también. Y es que el silogismo usuarios igual a publicidad igual a ingresos no siempre se cumple. Alcanzar una cifra considerable de usuarios no implica que necesariamente la publicidad y, por tanto los ingresos, lleguen solos. Parto de la base de que un buen producto tiene que aportar valor a su potencial público objetivo, el cual a cambio de dicho valor tiene que estar dispuesto a pagar por ello, de manera directa o indirecta. ¿Estaríamos dispuestos a pagar por los servicios que nos ofrece actualmente Facebook? La mayoría seguramente no. Pero, ¿y si resulta que cuando en el muro de un amigo le explico que estoy buscando piso y automáticamente me aparece a la derecha el anuncio de una agencia a través de la cual encuentro el piso que estoy buscando? Entonces pensaré que Facebook no solamente es útil para relacionarme con mis amigos sino que además me ofrece un valor añadido: me ayuda a encontrar lo que busco. El problema es que no todas las redes sociales o las plataformas o webs 2.0 son tan buenas como para poder generar no sólo una cantidad significativa de usuarios con sus respectivos datos sino de proporcionar la calidad suficiente en esos datos.

Es importante cuantificar qué cantidad de usuarios podemos alcanzar en el primer año de actividad. Pero más importante es prever qué haremos en el caso que alcancemos ese número de usuarios. Dar por hecho que los ingresos por publicidad serán suficientes para sostener el negocio es mucho suponer en la mayoría de los casos. Es necesario escenificar diferentes escenarios, buscar y contemplar ingresos alternativos, dimensionar correctamente los costes fijos de la empresa y conocer en todo momento el nivel de ingresos necesarios para cubrirlos. Si desarrollamos y pivotamos un proyecto de negocio basado en Internet sobre la única base de los usuarios, estaremos tomando un referente equívoco que, por lo tanto, nos llevará a decisiones inadecuadas. Creceremos rápidamente para poder dar respuesta al nivel de usuarios que tenemos, contratando más personal, incrementando el gasto en publicidad y marketing y en definitiva incurriendo en costes adicionales que no podrán ser asumidos por nuestros ingresos. Hasta el momento en que el nivel de costes fijos será tan elevado que nuestra capacidad para hacer frente a nuestras necesidades de tesorería será muy limitada. En ese momento nos veremos obligados a soluciones imaginativas como la de pedir donaciones a nuestros usuarios o a algunas más tradicionales, como la de cerrar la empresa.

Algunos apuntes para planificar bien el proyecto empresarial

La elaboración del plan de empresa nos ayudará a desarrollar y madurar nuestra idea de negocio y a reflexionar sobre todos aquellos aspectos de nuestro proyecto que afectan de manera significativa a su viabilidad. Además de dedicar tiempo al plan de empresa en líneas generales (definición del negocio, público objetivo, elementos diferenciadores, análisis del mercado y de la competencia, plan económico-financiero, etc.), existen algunos puntos de vital importancia en el caso de empresas basadas en Internet:

Definir correctamente el público objetivo: teniendo en cuenta que el objetivo de la empresa deber ser la viabilidad y, por tanto, la generación de ingresos, debemos ser conscientes de quiénes son realmente nuestros potenciales clientes. Obviamente, el negocio debe estar orientado hacia los usuarios, haciéndolo atractivo hacia ellos, pero a no ser que se trate de una plataforma de pago, debemos determinar claramente de dónde obtendremos los ingresos. Si nuestra web es capaz de atraer a usuarios por sus contenidos o utilidad, ¿quién podría estar interesado en darse a conocer u ofrecer sus servicios entre esos usuarios? Y, atención, porque la publicidad no es la única vía. Es importante apostar por soluciones creativas como puede ser la cooperación empresarial o el intercambio de servicios. Por ejemplo, ofrecer promociones, cupones de descuento o condiciones preferentes.

Dividir el horizonte temporal de la empresa en fases: los proyectos empresariales basados en Internet quizás son aquellos en los que resulta más evidente la necesidad de establecer una serie de fases a lo largo de los primeros meses y años de actividad. Las prioridades y las acciones a llevar a cabo van variando según va avanzando el tiempo y es importante que tengamos claras cuáles son las decisiones a tomar en cada momento. En una primera fase puede ser importante dedicar todos los esfuerzos al diseño y desarrollo de la plataforma y los usuarios están todavía en un segundo plano. En una segunda fase, puede que sea necesaria una etapa de testeo, cerrada al público en general. Una vez tengamos un flujo importante de usuarios llegará el momento de introducir el producto en la escena y, por tanto, de poner en marcha la maquinaria comercial. Es necesario quemar cada fase antes de pasar a la siguiente y ni siquiera el éxito y el cumplimiento de las previsiones antes de tiempo debería llevarnos a saltarnos fases. La improvisación en la gestión de una empresa es muy mala consejera.

Establecer objetivos realistas para cada fase: la fijación de objetivos es un elemento clave en el desarrollo de un plan de empresa. Resulta mucho más cómodo trabajar el día a día de la empresa teniendo como referencia objetivos fijados previamente. De esta manera, analizar la situación del negocio en cada momento es mucho más sencillo. Pero la fijación de objetivos sólo resulta útil si estos son realistas. No tiene sentido establecer objetivos totalmente inabarcables y tampoco objetivos fácilmente alcanzables. Es recomendable tomar como referencia otros proyectos similares, en vez de construir hipótesis sobre datos estadísticos.

Planificar los recursos estrictamente necesarios para alcanzar la siguiente fase: además de los objetivos de cada fase, debemos fijar de antemano los recursos necesarios para su consecución y para el acceso a la siguiente etapa del proyecto. Si en la primera fase debemos centrarnos en la parte tecnológica de desarrollo, deberemos construir una plantilla sobre las necesidades exclusivas de esa fase. Por ejemplo, no necesitaremos dedicar recursos ni económicos ni humanos a temas como el marketing o la gestión de usuarios. Pero sí deberemos ser conscientes de en qué momento tendremos que hacerlo.

Buscar financiación en el momento adecuado: la búsqueda de financiación tiene que ir de la mano de las distintas fases en las que se haya dividido temporalmente el proyecto. Es importante determinar claramente la inversión necesaria para cada una de las fases del proyecto, teniendo en cuenta los recursos necesarios para cada una de ellas. No tiene sentido llevar a cabo una primera ronda de financiación por la inversión total del conjunto de las fases, ya que estaremos incurriendo en unos gastos financieros innecesarios y además podemos estar quemando opciones futuras por la inmadurez inicial del proyecto. Las posibilidades de obtener condiciones más favorables aumentan cuando el proyecto está más desarrollado y los argumentos a favor de su viabilidad son más. Además, si tenemos en mente ir a buscar inversores privados, sería bueno tener en cuenta que existen inversores que además de aportar su capital, tienen experiencia y conocimientos sobre el sector en el que queremos emprender y cuyos consejos pueden ser de gran ayuda.

En definitiva, un “negocio 2.0” no difiere tanto de los negocios más tradicionales, como puede ser una librería. El hecho de que mucha gente entre a nuestra librería no asegura que ésta sea rentable, a no ser que un elevado porcentaje de los que visitan la librería, además de eso, compren libros. ¿Por qué resulta obvio que si queremos abrir una librería debemos planificar qué debemos hacer para vender los suficientes libros y que ocurrirá si no vendemos los suficientes y en cambio en un negocio basado en Internet no? Seguramente el éxito de unos pocos ha provocado expectativas sesgadas en muchos inversores, los cuales han querido encontrar su Google particular, invirtiendo dinero en proyectos sin analizar detalladamente su viabilidad y sin exigir lo suficiente a sus promotores. Pero al final lo que vale son las cuentas de la vieja y es que para que una empresa sea rentable hay que ingresar más de lo que se gasta.

jueves, 13 de noviembre de 2008

Cómo crear una aplicación web. Fase III. Diseño gráfico + Diseño software

Fase I. Toma de requisitos
Fase II. Prototipos

Llegados a este punto del proyecto, podemos empezar a trabajar en paralelo. Por un lado, los diseñadores gráficos, a partir de los prototipos creados y aceptados por el cliente, pueden crear todas y cada una de las pantallas con la línea gráfica (colores, tamaños, tipos de letra, imágenes, etc.) que finalmente tendrá la aplicación. Lo normal es que los diseñadores trabajen con programas de tratamiento gráfico como, por ejemplo, Adobe Photoshop o Freehand.

Estas maquetas se van presentando al cliente y a medida que acepta la línea gráfica de cada una de las pantallas se pueden ir maquetando en XHTML + CSS. Es importante desde este momento que la maquetación en XHTML cumpla los estándares. Para ello podemos ir chequeando nuestro código en el validador de W3C.

Paralelamente al trabajo de los diseñadores gráficos, los diseñadores de software pueden comenzar su trabajo. A partir de los requisitos y de los prototipos creados, se debe ser capaz de diseñar el software. ¿Qué significa diseñar el software?

  • Modelar la base de datos: mediante el modelo entidad – relación se crean las tablas, los campos y las relaciones entre tablas.
  • Definir los casos de uso: qué actores participan en la aplicación (por ejemplo: usuario, administrador, vendedor, generador de informes, etc.), que acciones podrán realizar (darse alta, modificar datos personales, añadir un producto al catálogo, añadir un producto a la cesta de la compra, etc.).
  • Definir los estados: cuáles son los estados en que pueden estar las diferentes entidades (un usuario puede estar registrado o sin confirmar el registro, un documento puede estar en borrador o publicado, etc.).
Por un lado ya tenemos código XHTML+CSS, por el otro únicamente tenemos definición del software “en papel” (yo suelo utilizar el Microsoft Visio ya que la mayoría de mis proyectos se acaba generando una base de datos SQL Server y código en .NET, pero un primer paso es crearlo todo con papel y lápiz).

Aunque parezca que ha pasado mucho tiempo y todavía no nos hemos puesto a programar, es tarea del responsable del proyecto hacer ver al cliente que estos pasos de definición son necesarios para conseguir un producto estable y escalable. Recuerdo lo dicho en el post anterior, estamos construyendo un edificio y en esta fase dibujamos planos y levantamos cimientos.

miércoles, 12 de noviembre de 2008

Cómo crear una aplicación web. Fase II. Prototipos

Una vez tenemos aceptados los requisitos que la aplicación deberá cumplir (ver Fase I), la persona del equipo que tome el papel de arquitecto de la información deberá crear los wireframes y/o prototipos de todas las pantallas que tendrá la aplicación. Normalmente, el wireframe se utiliza simplemente para mostrar en qué partes de las pantallas se ubicarán diferente elementos: menú, formularios, textos, listados, etc. Los prototipos se les añade funcionalidad (ya comenté una buena herramienta para construir prototipos).

El cliente deberá ir validando las diferentes secciones de la aplicación (registro de usuario, listado de imágenes, módulo de fotos, etc.). Es recomendable validar con el cliente paso a pasos, empezando por un nivel superior donde se definirán las partes comunes de toda la aplicación (menú superior, menú lateral, pie de página…).

Es muy importante hacer ver al cliente la importancia de la validación de los prototipos. A partir de su aceptación, se comenzará a programar, maquetar y construir la base de datos, por lo que los cambios a partir de ese momento suponen un mayor impacto (más tiempo = más dinero = más insatisfacción) en el desarrollo de la aplicación. Es muy común que los clientes no validen funcionalidades al 100% hasta que la aplicación está en marcha y pueden registrarse, listar resultados y, sobretodo, apretar botones. Es normal. Es nuestro trabajo lograr que lo hagan exhaustivamente en este momento y hacerles ver la importancia de esta fase el proyecto.

Éste es el momento en el que estamos trazando las líneas maestras de la aplicación. Se están dibujando los planos del edificio. Cuando el edificio esté en pie será muy, muy complicado añadir un garaje donde hay un local o un balcón donde hay una pared maestra.

lunes, 10 de noviembre de 2008

Posicionamiento en buscadores: la importancia de tener un blog

Hoy en día la visibilidad de un negocio en Internet es básica para poder llegar a los consumidores. Hoy en día, en España, ser visible en Internet es equivalente a decir ser visible en Google.

Siendo esta la situación, son muchas las empresas que deciden contratar un servicio de consultoría en posicionamiento en buscadores. En todos los proyectos de este tipo en los que he participado, una de las acciones que recomiendo de manera impetuosa es la de tener contenidos que se actualicen de forma constante en la página web del negocio y donde se expliquen temas relacionados con el negocio. Una buena opción es implementar un módulo de noticias de la compañía y del sector en alguna de las secciones de la página corporativa. Pero, para mí, la mejor opción (y la más económica) es mantener actualizado un blog de la temática de nuestro negocio. Si quieres vender bicicletas, crea un blog para cicloturistas informando de nuevos productos, competiciones, etc.

Si además lo que deseamos es centranos en mejorar el posicionamiento en Google, la mejor opción es abrir un blog en blogger (como este blog) ya que blogger es el sistema de blogs propiedad de Google.

En este blog, he podido comprobar que el robot de Google indexa una nueva versión de esta página cada vez que publico un nuevo post, lo que permite que cada vez que pulso el botón publicar, después de pocos minutos los contenidos están disponibles si realizamos una búsqueda en Google. Esto no pasa con el resto de contenidos (si queremos ver la última vez que el robot de Google rastreó una web sólo hay que abrir la versión "En caché" que aparece en los resultados de la búsqueda en Google.

Además, los contenidos publicados están bien considerados por Google. Por ejemplo, la primera entrada de este blog se titula "Política y Youtube", términos bastante populares en Internet. Si probamos a buscar la cadena de texto "Política y Youtube" comprobamos que greenties.com aparece en la segunda posición (prueba realizada en el momento de escribir este post).

Recomendación:
  • Crear un blog en Blogger.com
  • Integrarlo dentro de tu web corporativa
  • Generar contenidos cada día
  • Que los contenidos contengan palabras clave relacionadas con los servicios/productos que vendes
ACTUALIZACIÓN: Google ha tardado 9 minutos en hacer este post visible en sus búsquedas

Cómo crear una aplicación web. Fase I. Toma de requisitos

El primer paso de cualquier proyecto que tenga como finalidad construir una aplicación informática es escuchar a los clientes y/o usuarios para saber qué necesitan. En una primera serie de reuniones simplemente  debemos escuchar y tomar notas de las funcionalidades que debe cumplir el nuevo sistema. No debemos juzgar si tal requisito se hará de tal manera o si ese requisito es innecesario. Debemos recordar que el trabajo de crear una aplicación web debe estar orientado a la consecución de los objetivos del cliente, no a la satisfacción de los creadores. La satisfacción de los creadores (arquitectos, jefes de proyecto y programadores) debe ser la de crear un producto sin errores, escalable, on-time y que cumpla al 100% las necesidades del cliente. 

Idealmente, la toma de requisitos debe realizarse antes del presupuesto en tiempo y dinero ya que es imposible presupuestar un proyecto del que no se sabe exactamente qué se desea. La fase de la toma de requisitos debe afrontarse como una coste comercial, ya que es posible que si no se ha firmado el contrato el proyecto finalmente no se gane. En la mayoría de los proyectos para administraciones públicas o grandes empresas donde se convoca un concurso mediante RFP se comete el error de presupuestar a partir de unos requisitos redactados por el cliente de forma poco exhaustiva por lo que es fácil que aparezcan desvíos tanto en tiempo de entrega, funcionalidades o precios desorbitados.

Una vez hemos tomado nota de los requisitos el siguiente paso, ya de manera interna es ordenar esas ideas. Una buena manera de ordenar ideas es crear, repito, de forma interna, una modelo de datos a partir de las decenas y decenas de ideas que el cliente nos ha transmitido. El cliente no tiene porqué saber (según un ejemplo de aplicación tipo Facebook) si los “amigos del usuario” puede ser lo mismo a efectos de programación que un “usuario”. Debemos ser capaces de reducir todas las ideas recogidas en la primera reunión en un modelo de datos (por ejemplo un modelo entidad-relación a alto nivel).

En la siguiente reunión tomaremos el control y a partir de la lectura de nuestro modelo de datos (traducción de cajas y líneas a prosa) debemos ir confirmado con el cliente que esas son las funcionalidades lo que su empresa necesita. En esa misma reunión debemos proponer temas que puedan aportar valor al cliente y basados en nuestra experiencia: integrar aplicaciones de terceros, formas de enfocar la arquitectura de la información, software existente, etc.

Esta fase y dependiendo de la envergadura del proyecto y/o del cliente puede convertirse en iteraciones de reuniones de toma de requisitos con diferentes responsables de áreas implicadas.

Generador de prototipos para aplicaciones web

Este fin de semana he estado probando una nueva herramienta para generar prototipos de aplicaciones. En mi caso, me he centrado en probar cómo crear esos prototipos para definir aplicaciones web.

Se trata del Visual Prototyper de la empresa española JustInMind. La verdad es que las sensaciones han sido muy buenas. De una forma muy intuitiva y en poco tiempo puedes generar toda una aplicación con sus botones, combos, listados, etc. y lo más importante, dotarlos de funcionalidad para que el cliente pueda probar lo que será su aplicación antes de tirar una sola línea de código. En muchos proyectos en los que he participado esos prototipos y wireframes se realizan con un simple PowerPoint o un Word, lo que provoca que el cliente no pueda sentir la experiencia de uso de su aplicación hasta que ésta está desarrollada.

Una de las funcionalidades que más me agradó fue la de poder montar el modelo de datos (como si de una base de datos se tratara) y que el porgrama te genere los listados y los formularios de alta, baja y modificación. Perfecto.

El Visual Prototyper es muy intuitivo, sencillo, sin decenas y decenas de opciones de menú, lo que se agradece, y a la vez consigue los objetivos que cualquier analista funcional y/o arquitecto de la información necesita antes de que los desarroladores comiencen a escribir el código.

Algunos preguntas/dudas que me gustaría comentar son:
  • La creación de la documentación podría ser más sencilla (?¿)
  • No fui capaz de crear acciones de decisión, es decir, si pasa A ejectuta una acción, si pasa B, ejecuta otra acción.
  • El manual de usuario es excesivamente liviano, aunque supongo que será una de las estrategias de la empresa ya que ofrece entre sus servicios formación en la herramienta.
De todas formas este producto es muy muy recomendable para los que nos dedicamos a definir aplicaciones (si generara código XHTML ya sería la bomba).

jueves, 6 de noviembre de 2008

En casa de herrero...

cuchillo de palo. Mientras estaba escribiendo un pequeño informe sobre un proyecto de posicionamiento me he dado cuenta de que la mayoría de las páginas de entrada de los sites que estaba estudiando no superaban el validador de HTML del W3C.

Y me he preguntado… ¿las consultoras y estudios que realizan proyectos web tienen sus páginas web corporativa correctamente creadas?

Para no hacer un listado aleatorio me he aprovechado del trabajo de recopilación de empresas consultoras y estudios de diseño y programación web que Javier Martín publicó en loogic.com hace un par de semanas.

El resultado ha sido el siguiente:

url de la empresa / errores de validación
http://www.the-cocktail.com/ 0
http://www.secuoyas.com/es/ 0
http://aspgems.com/ 6
http://www.ideup.com/ 1
http://www.territoriocreativo.es/ 22
http://dnxgroup.com/ 1
http://vivaestudio.com/ 6
http://customedia.es/ 9
http://neuseed.com/ 6
http://blogestudio.com/ 0
http://blogsmedia.com/ 0
http://studio.st/ 0
http://www.neuroticweb.com/ 0
http://www.brandeastudio.com/ 21
http://www.bermilabs.com/ 10
http://www.inmabermejo.com/ 1
http://armandososa.com/ 9


Únicamente un 35% de las webs consultadas supera la validación del W3C…

NOTA: este blog (greenties.com) creado en Blogger (Google) y utilizando sus plantillas, no supera el validador.

Cómo crear una aplicación web

Son malos tiempos para la economía, de eso no hay duda. Son malos tiempos para el sector servicios, consecuencia de lo primero. Las empresas que tenían planeados proyectos que concernían a las tecnologías de la información del estilo: crear una intranet corporativa, comenzar a vender sus productos en Internet, crear un site efímero publicitando la salida al mercado de un nuevo producto, o una aplicación para ofrecer servicios a futuros clientes (Flickr, Twitter, etc.), están intentando ajustar presupuestos o directamente posponiendo esos proyectos hasta 2010 (o sine die).

Se acabaron los tiempos de los grandes proyectos mal gestionados y mal ejecutados a precios desorbitados. Que tomen nota las grandes consultoras. Siendo así, pienso que se abre un resquicio de esperanza para las pequeñas empresas que hagan las cosas baratas, y eso no significa mal., todo lo contrario, significa bien: ajustando precios, sirviendo los proyectos on-time y evitando desvíos que supongan costes en la facturación. Equipos pequeños y cohesionados, las cosas claras y las ganas de hacerlo bien.

Siempre he pensado que el desarrollo de una aplicación web estándar es sencillo. Que lo complicado es la gestión de las expectativas del cliente, o la infraestructura de los sistemas (si crece desmesuradamente) o puede resultar complicado si nosotros, como creadores de la aplicación, nos complicamos la vida innecesariamente. Keep it simple, stupid!!

Me atrevo a decir que hacer una aplicación como Facebook es sencillo. Comienzo aquí una serie de posts en las que doy mi opinión de cómo debería encararse el desarrollo de una aplicación web desde cero. Una aplicación estándar. Lo haré teniendo en cuenta y poniendo como ejemplos la creación de una aplicación tipo Facebook. Veamos.

Sea admiten, cómo no, opiniones críticas constructivas.

miércoles, 5 de noviembre de 2008

Ocho horas en la oficina son molto longo

Una reflexión superficial:

Trabajamos 8 horas, como 30 años atrás. Hace 30 años no existían las TIC (Tecnologías de la Información y la Comunicación). En 1978 no había, ni mucho menos, ordenadores en todos los puestos de trabajo, no había Internet. En 1978 se escribía a máquina ("me equivoco, repito"), se llamaba por teléfono en vez de enviar mails ("no está? volveré a llamar"). Ahora, con las nuevas tecnologías podemos ser más rápidos y mejores en nuestro trabajo... por tanto... ¿por qué seguimos trabajando 8 horas?

ACTUALIZACIÓN: Justamente hoy se publica un post en El blog salmón titulado "¿Qué es la productividad?". Destaco este párrafo al respecto de este post:
"En el sector de servicios también se ve el efecto de una máquina más, por ejemplo, con la inversión en informática, que hace que el trabajo de cada trabajador es mucho más eficiente y cada trabajador puede producir mucho más que antes."

Artículo sobre Política y Web 2.0 en la revista IDP

Continuando con el tema de Política 2.0 del que ya hablé en el post Política y YouTube, aprovecho para comentar que se ha publicado en el número 7 de la revista IDP (Revista de Internet, Derecho y Política) de la UOC un artículo titulado "La experiencia de las elecciones generales del 2008", donde se analiza la utilización de las herramientas Web 2.0 por los partidos políticos en las pasadas elecciones de marzo de 2008.

De las conclusiones me quedo con:
  • El uso, aunque simbólico, de Twitter.
  • Utilización de métodos de crowdsourcing con el objectivo de captar voluntarios.

Comparándolo con las conclusiones de mi trabajo, éstas son más postivas, ya que consideran que aunque sea marginal, el uso de la Web 2.0 supone un cambio de tendencia, y digo yo, lógica ya que en 2004 no existía prácticamente ninguna de esas herramientas.

Podéis encontrar el artículo aquí:

PEYTIBI, F. Xavier; RODRÍGUEZ, José A.; GUTIÉRREZ-RUBÍ, Antoni (2008). «La experiencia de las elecciones generales del 2008». En: «IV Congreso Internet, Derecho y Política (IDP). Software social y Web 2.0: Implicaciones jurídico-políticas» [monográfico en línea]. IDP. Revista de Internet, Derecho y Política. N.º 7. UOC.
<http://www.uoc.edu/idp/7/dt/esp/peytibi_rodriguez_gutierrez.pdf>

lunes, 3 de noviembre de 2008

Publicidad en Facebook

A raíz de lo que he comentado de la publicidad en Facebook. Eeste fin de semana estuve charlando un rato con un buen amigo que tiene un buen (gran) negocio en Internet. Siempre al quite, me hablaba de crear una aplicación en Facebook con la intención de generar tráfico y visiblidad a su negocio.

Me pareció una buena idea. Facebook tiene tres cosas básicas que le convierten en un sitio apetecible donde vender tus productos (o conseguir clientes):

- Millones de usuarios (2,5 millones solo en España)
- Los usuarios pasan más tiempo que el habitual en otras webs. Según elpais.com "un usuario de Facebook emplea 1 hora y 37 minutos al mes en mantener su cuenta"
- El perfil de los usuarios. Según el mismo artículo: "el 96,76% son mayores de 18 años, el 34,22 % tienen estudios universitarios finalizados y la mayoría de sus usuarios trabajan de administrativos en una oficina (hasta el 15,67%)" (¿¡qué mejor perfil para ser un potencial consumidor?!)

Ya le he dicho que, por supuesto, colaboraré con él en este proyecto. Veremos que sale de esto, seguro que es un buen experimento para ver como funcionan los usuarios de Facebook.

La situación actual de la publicidad on-line

He podido ver escuchar mientras hacía multitasking el video de Jaime Ferre en Iniciador titulado “Vídeo-Resumen Iniciador Barcelona Octubre, sobre Publicidad Online”. A bote pronto me quedo con dos comentarios y una opinión:

Por un lado la idea repetida del “less is more” o el equivalente “keep it simple, stupid (KISS)” del que tengo unas ganas terribles (y la intención) de hablar en este blog próximamente, además de ser un tema recurrente en mis “pensamientos sobre desarrollo de aplicaciones”. Una chica del público ha comentado que lleva desde 1983 en el mundo de la informática, y los informáticos nunca se han centrado o no han sabido centrarse en el usuario. Comparto esa opinión al 100%. Con la entrada de Internet en nuestras vidas se ha democratizado el uso de los ordenadores y ahora se impone en las empresas, no en todos casos, la mano de un experto en usabilidad o un experto en diseño gráfico, o incluso un sociólogo o psicólogo. Es así, en empresas donde la tecnología es un medio y no un fin. Por mi experiencia, en muchas empresas de desarrollo de aplicaciones, la tecnología es el fin y el usuario nunca es la finalidad última de esas aplicaciones. La finalidad última es hacer que la aplicación haga lo que en la toma de requisitos se firmó pero sobretodo demostrando que esos ejecutores son unos expertos en el lenguaje de programación o en el sistema informático de turno, dejando claro que el usuario es un estúpido incapaz de utilizar sus sistemas.


Por otro lado, se habló de que los portales con información de los usuarios serán los que tengan la llave en la publicidad online, ya que si saben nuestra edad, donde vivimos, nuestros gustos y, además de eso, toda esa información de nuestros amigos y familiares. Además, si conocen el comportamiento de gente de nuestro perfil pueden prever nuestro comportamiento futuro. Si hay mucha gente que ha hecho A, y después B, y después C, es probable que si yo he hecho A y luego B, mi siguiente paso sea C.


Siendo así, si Facebook sabe mi edad, mi estado civil, mi lugar de residencia, si viajo mucho o poco y dónde, lo que comento con mis amigos, los grupos (intereses) a los que pertenezco, entonces, ¿porqué no me ha vendido (directa o indirectamente) nada todavía?