Esto es un ejemplo de especificación funcional, parte de Joel on Software, sitio web sobre proyectos software. Está pensada con fines educativos, no para referirse a un producto concreto, en caso de que no te hayas enterado de lo estúpido que es todo esto. Atención inversores, especialmente los duros de mollera: este producto puede ser implementado por 5 millones de dólares, para una pre-OPA de 20 millones.


QuéHoraEs.com
Especificación Funcional

Joel Spolsky
Última actualización: 27 de septiembre, 2000

- C O N F I D E N C I A L -

2000 Fog Creek Software, Inc. Todos los derechos reservados.


Generalidades

QuéHoraEs.com es un servicio, vía web, que le dice a la gente la hora que es.

Esta especificación no está terminada ni por asomo. Todo el texto del interfaz deber ser revisado varias veces antes de darse por acabada. Los gráficos y formato de las pantallas se muestran únicamente para ilustrar la funcionalidad en que se apoyan. El aspecto final se desarrollará a lo largo del tiempo, en colaboración de los diseñadores gráficos y del estudio de las reacciones de los usuarios.

Esta especificación no estudia los algoritmos utilizados en el motor de cálculo del tiempo, los cuales se estudiarán en otra parte. Trata simplemente de lo que ven los usuarios cuando interaccionan con QuéHoraEs.com.

Escenarios

Cuando se diseñan productos, es útil imaginarse unas pocas historias de la vida real, de cómo los usará la gente real (estereotipos) . Veamos dos escenarios:

Escenario 1: Mike.
Mike es un ejecutivo muy ocupado. Es el presidente de una compañía grande e importante que fabrica productos para niños, basados en la dinamita, que se venden a través de cadenas, como Toys'R'Us, a nivel nacional. En el transcurso de un típico día, tiene muchas reuniones con gente importantísima. A veces viene un hombre del banco para acosarle por no haber pagado el interés de su línea de crédito, que lleva un retraso de tres meses. Otras veces, viene otro hombre de otro banco para intentar que firme otra línea de crédito. A veces sus inversores de capital riesgo (la buena gente que dio a Mike el dinero para lanzar su negocio) le visitan para quejarse de que gana demasiado dinero. "¡Una hoguera!", piden. "¡A Wall Street le gusta ver hogueras!"

Estos visitantes se enfadan mucho si Mike había prometido reunirse con ellos a cierta hora, pero, cuando llega esa hora, no se le encuentra por ninguna parte. Esto ocurre porque Mike no sabe qué hora es. Siguiendo la recomendación de su secretaria, Mike abre una cuenta en QuéHoraEs.com. Ahora, en cuanto Mike se pregunta qué hora será, entra en QuéHoraEs.com, introduce su nombre de usuario y su contraseña, y se entera de la hora actual. Visita el sitio varias veces al día: para enterarse de cuándo es hora de ir a comer, para comprobar si llegará tarde a la próxima reunión, etc. De hecho, hacia el final del día, a partir de las 3:00 p.m., comprueba el sitio cada vez con mayor frecuencia para ver cuándo llega la hora de irse a casa. A eso de las 4:45 prácticamente no hace otra cosa que pulsar "Actualizar" una y otra vez.

Escenario 2: Cindy. Cindy es una adolescente que está en el instituto. Va a un instituto público bastante patético, y ella es bastante lista, así que cuando llega a casa a eso de las 2:00 pm, el hacer los deberes de álgebra sólo le lleva unos 7 minutos de media. Ninguno de sus otros profesores se molesta siquiera en ponerle deberes. Su hermanito pequeño (hermanastro) está hipnotizado frente a la tele viendo los Teletubbies, así que Cindy pasa la tarde (desde las 2:07 hasta eso de las 6:30, cuando su nueva madre sirve la cena) navegando por la web y chateando con sus amigas en AOL. Siempre está buscando sitios nuevos, que sean interesantes. Como resultado de teclear "¿Qué hora es?" al azar en un buscador (por error, pues ella quería preguntárselo a una de sus amigas usando Instant Messenger) se mete en QuéHoraEs.com, y crea una nueva cuenta. Elige un nombre de usuario y como contraseña "RyanPhillipe", selecciona su zona horaria, y voilá -- descubre la hora que es.

No objetivos

Esta versión no incluirá las siguientes funciones:

Diagrama de flujo de QuéHoraEs.com

Ya tendremos tiempo más tarde de meternos en detalle, pero, por ahora, veamos un rápido diagrama de flujo del servicio, para que tengas una visión global. Este diagrama no está completo, pero te dará una idea correcta del uso de QuéHoraEs.com:

 


Especificación pantalla por pantalla

QuéHoraEs.comconsiste de unas cuantas pantallas diferentes. La mayoría seguirán un formato estándar, con un aspecto general que será diseñado en el futuro por un diseñador gráfico. Este documento se ocupa más bien de la funcionalidad y del diseño de la interacción, no del aspecto y composición exactos.

Todas las pantallas se hacen en HTML. (La única excepción es la Pantalla de entrada, creada usando Shockwave de Macromedia).

Cada una de las pantallas en QuéHoraEs.com es conocida por un nombre canónico. Ésta siempre aparecerá subrayada en este documento, para que así puedas saber cuándo nos referimos a ella, por ejemplo, Página principal.

Pantalla de entrada

Animación Shockwave, molesta y gratuita, que reproduce música estúpida y vuelve loco a cualquiera. La Pantalla de entrada será subcontratada a una carísima boutique de animación gráfica, situada en un loft del Soho, por gente que se trae sus perros al trabajo, llevan colgando de las orejas, con imperdibles, cosas encontradas por ahí, y van a Starbucks cuatro veces antes del almuerzo.

Después de que la animación se ha reproducido durante unos 10 segundos, un enlace que dice "SALTAR ESTO" aparecerá gradualmente en la esquina inferior derecha. Para evitar que la gente lo vea y haga click en él, SALTAR ESTO estará tan abajo y tan a la derecha que la mayoría de la gente no lo verá. Deberá estar al menos 800 pixeles del límite izquierdo de la animación, y 600 pixeles del límite superior.

Hacer click en SALTAR ESTO va a Página principal. Cuando la animación termine, redirigirá el navegador automáticamente a la Página principal.

Asunto pendiente
Si Marketing lo permite, deberíamos poner una cookie en el ordenador del usuario, si éste hace click en SALTAR ESTO, lo cual causará que en el futuro la animación siempre se salte. Los visitantes frecuentes no deberán ver la animación más de una vez. Se lo comenté a Jim de Marketing y va a proponer formar un comité de Ventas, Marketing y Relaciones Públicas para discutirlo.

Página principal

Mostrada cuando termina la animación Shockwave, la Página principal cumple tres propósitos:

  1. Permite a la gente conocer lo que es el servicio y considerar si quieren apuntarse.
  2. Permite entrar a los miembros que se han apuntado previamente.
  3. Permite crear una cuenta a la gente que quiere apuntarse.

La Página principal se parece a esto:

QuéHoraEs.com
¡Bienvenido a QuéHoraEs.com, el servicio que le dice exactamente la hora que es!

(El resultado que obtenga puede variar. No somos responsables de los retardos en la transmisión o en su ordenador, que pueden causar que la hora real sea un poco posterior a la hora mostrada. Este servicio se presta tal como es y sólo con propósitos de entretenimiento, no para cálculos temporales de precisión. No se introduzca ni se limpie la oreja con QuéHoraEs.com).

¡QuéHoraEs.com es fácil y divertido. Si no es miembro, apúntese hoy y comience a descubrir qué hora es!

¿Ya es miembro? ¡Haga click aquí para entrar!

¿Todavía no es miembro? ¡No se preocupe - la afiliación es gratis! ¡Sí, es cierto, GRATIS! ¡Simplemente haga click aquí para apuntarse, y en unos minutos será capaz de descubrir qué hora es!

Nota sobre Privacidad | Sobre Nosotros | Trabaje con nosotros | Contacte con Nosotros | Sobre QuéHoraEs.com

En esta, y en todas las pantallas, hacer click en el logo QuéHoraEs.com en la esquina superior izquierda lleva de vuelta a la Página principal.

Nota técnica
Por la gran similitud entre las distintas pantallas, algún sistema de includes deberá ser usado en el servidor, así, si el nombre del servicio cambia, o si no podemos adquirir el nombre de dominio que queremos, podremos cambiar todas las pantallas en un solo lugar. Sugiero Vignette Story Server. Sí, es matar moscas a cañonazos. ¡Sí, cuesta 200.000 dólares. Pero es condenadamente mucho más fácil que, utilizar includes en el servidor!

Hacer click en el enlace que dice "haga click aquí para entrar" va al Formulario de entrada. Hacer click en el enlace que dice "haga click aquí para apuntarse" va al Formulario de inscripción. Los otros cinco enlaces muestran páginas con texto estático que serán proporcionadas por la dirección, y que están fuera del ámbito de esta especificación. No tendrán que cambiar muy a menudo.

Formulario de entrada

El Formulario de entrada es usado por los miembros actuales para entrar en sus cuentas con el fin de averiguar la hora actual. Se parece a esto:

QuéHoraEs.com
Por favor, introduzca su dirección de e-mail:


Introduzca su contraseña:


¿Ha olvidado su contraseña? Introduzca su dirección de e-mail y se la enviaremos por e-mail.

¿Todavía no es miembro? ¡No se preocupe - la afiliación es gratis! ¡Sí, es cierto, GRATIS! ¡Simplemente haga click aquí para apuntarse, y en unos minutos será capaz de descubrir qué hora es!

Nota sobre Privacidad | Sobre Nosotros | Trabaje con nosotros | Contacte con Nosotros | Sobre QuéHoraEs.com

La parte derecha de la pantalla se comporta del mismo modo que la Página principal, previamente descrita.

El cuadro de e-mail permite escribir hasta 60 caracteres. El cuadro de contraseña permite escribir hasta 12 caracteres. Para ocultarlos y prevenir la piratería informática, según el usuario escribe en el cuadro de contraseñaa, aparecerán asteriscos (*) en lugar de los caracteres que escriba.

Nota tcnica
Esto se consigue usando <INPUT TYPE=PASSWORD>

Cuando el usuario hace click en Entrar, las siguientes comprobaciones tienen lugar en el servidor:

  1. Si se había introducido la dirección de e-mail, pero que no era una dirección de e-mail real porque no tiene el formato correcto (no está el signo @ o contiene caracteres no permitidos en direcciones de e-mail por RFC-822), el servidor devuelve otra página muy parecida al Formulario de entrada, sólo que esta vez, se inserta un mensaje de error en rojo sobre el cuadro de dirección de e-mail, diciendo "La dirección de e-mail que usted ha escrito no es válida. Por favor, compruebela otra vez". Aunque este texto está en rojo, el texto "Por favor, introduzca su dirección de e-mail" sigue apareciendo en negro. La dirección de e-mail incorrecta que el usuario haba escrito originalmente aparecerá rellenando el cuadro de edición.
  2. Si se había introducido la dirección de e-mail, pero no corresponde a un miembro registrado, el servidor devuelve otra página muy parecida al Formulario de entrada, sólo que esta vez, se inserta un mensaje de error en rojo sobre el cuadro de dirección de e-mail, diciendo "La dirección de e-mail que usted ha escrito no pertenece a un miembro. Por favor, compruebela otra vez. Para hacerse miembro, haga click en el enlace de la parte derecha de la pantalla". Aunque este texto está en rojo, el texto "Por favor, introduzca su dirección de e-mail" sigue apareciendo en negro. La dirección de e-mail incorrecta que el usuario había escrito originalmente aparecerá rellenando el cuadro de edición. [Pregunta a los desarrolladores. ¿Podermos usar JavaScript en este caso, si el usuario pulsa en el enlace para hacerse miembro, automáticamente se rellena la dirección e-mail en el formulario de inscripción?].

  3. Si se había introducido la dirección de e-mail, y corresponde a un miembro registrado, pero no se ha escrito ninguna contraseña, enviamos un e-mail que contenga la contraseña a esa dirección. El asunto del e-mail es "Su afiliación a QuéHoraEs.com". El e-mail estará sólo en texto plano. La redacción exacta de este e-mail todavía es objeto de vivo debate por la junta de directores y será comunicado antes de la entrega. [Desarrolladores: por ahora sugiero usar una palabra asquerosa. Eso encenderá una hoguera bajo el asiento de Chuck].

  4. Si se había introducido la dirección de e-mail, y corresponde a un miembro registrado, y se había introducido una contraseña, pero ésta es incorrecta, el servidor devuelve otra página muy parecida al Formulario de entrada, sólo que esta vez, se inserta un mensaje de error en rojo sobre el cuadro de contraseña, diciendo "La contraseña que usted ha introducido no es válida. Por favor, compruebela otra vez. Recuerde, en las contraseñas las mayúsculas y minúsculas son letras diferentes ". Si la contraseña escrita no contiene ninguna letra minúscula, añadimos este texto al mensaje: "Quizá ha pulsado usted la tecla de TODO MAYÚSCULAS accidentalmente". Siempre que la contraseña sea incorrecta, el Formulario de entrada vuelve a aparecer con el cuadro de contraseña vacío.

  5. Si la dirección de e-mail y la contraseña están bien, salta directamente a Mostrar la hora.

     


Asunto pendiente
Se necesita decidir lo del JavaScript en el caso 2.

Asunto pendiente
Se necesita la redacción del CEO para el e-mail con la contraseña.


Vuelta a Joel on Software