¿Cuánto es el tiempo de carga de una página web que consideramos aceptable?

La verdad es que es una pregunta que cada vez me tengo que hacer más a menudo, y es que no hay duda de que a la hora de realizar el análisis del rendimiento de una aplicación web, o bien, a la hora de definir los requisitos mínimos de rendimiento que ésta debe cumplir, este es uno de los datos,  más importante que tenemos que definir.

El tiempo de carga o tiempo de respuesta de nuestra aplicación web va a depender de numerosos factores, siendo un hecho que el rendimiento de la aplicación va a disminuir a medida  que damos servicio a un mayor número de usuarios concurrentes. En el siguiente gráfico muestro un ejemplo de como puede variar el rendimiento de una página web a medida que más usuarios se conectan a ella:

clip_image002[4]

Para este caso concreto, vemos como el rendimiento de nuestra página web empieza a degradarse a partir de 200 usuarios concurrentes. En ese punto, el tiempo de respuesta empieza a crecer de una manera exponencial y es ya superior a los 10 segundos. La pregunta aquí es, ¿por qué establezco 10 segundos como límite? ¿Podría haber dicho 8 o 4? La verdad es que sí, el hecho de elegir un valor u otro puede ser demasiado arbitrario, depende de los requisitos de nuestra aplicación y carece del respaldo de un criterio ampliamente aceptado sobre este dato.

¿Cómo establecemos este dato? En alguno de los primeros proyectos en los que participé, el tiempo de respuesta máximo que se estableció estaba en torno a los 2 segundos. Este era un tiempo que parece razonable para un administrador de una página o para un usuario “impaciente”, pero en la mayor parte de los casos está alejado de la realidad, en cuanto a que un usuario que se encuentra navegando en nuestro sitio, va a poder encontrar igualmente aceptable un tiempo de 4 segundos.

Vemos cómo el tipo de usuario al que va destinado nuestra aplicación es un primer elemento a tener en cuenta a la hora de definir estos tiempos máximos.

En segundo lugar, ¿tiene importancia el tipo de acción que el usuario está realizando en el tiempo de respuesta aceptable? La respuesta es claramente sí. Todos nosotros sabemos que el tiempo máximo que estamos dispuesto a esperar en la página de login no es el mismo que en un página en la que hacemos una consulta muy pesada sobre una base de datos para la obtención de un informe mensual.  La calidad que el usuario percibe sobre nuestra página puede verse afectada si en la página de login de hacemos esperar 20 segundos, provocando incluso que el usuario decida abandonar la página. Sin embargo, si el usuario puede ser mucho más paciente cuándo tiene la certeza de que la operación que realiza conlleva mucho más procesamiento.

A partir de lo anterior, vemos como el tipo de contenido que el usuario está visitando también va a influir en el tiempo de carga aceptable.

Os comentaba antes que en algunos proyectos el tiempo máximo de carga se establece en 2 segundos En otros en cambio, el tiempo de carga se establece en 30 segundos. Para este tipo de páginas lentas, que implican consultas pesadas o descarga de software extra, es fundamental nutrir al usuario con información sobre lo que está ocurriendo. Se hace fundamental proveer de mecanismos cómo las barras de progreso que hacen que el usuario no se impaciente, y espere el tiempo necesario para la carga de la página. El otro día me encontré con el siguiente ejemplo descargando el Windows Live Writer:

image 

De hecho, este fue el segundo mensaje que aparecía, ya que la descarga estaba siendo demasiado lenta, y los mensajes que se daban al usuario eran acordes al tiempo que ya llevaba esperando. En este caso, estuve más de 2 minutos esperando poder realizar la instalación antes de desistir. Un tiempo de 2 minutos puede llegar a ser aceptable para el usuario siempre y cuando le mantengamos informado sobre lo que está ocurriendo. En casos en los que el usuario no tenga porque conocer qué tipo de contenido es más o menos lento (tal y cómo comentaba en el punto anterior), la información que le proporcionemos puede ser fundamental para influir en su concepto de calidad o de tiempo de respuesta aceptable.

Incluyo pues cómo último elemento la información al usuario, que sumado al tipo de usuario y al tipo de contenido, nos va a ayudar a fijar los requisitos de calidad para nuestra aplicación. Así en lugar de fijar un tiempo máximo de respuesta por página, deberíamos fijarlo según el tipo de contenido, el tipo de usuario al que va dirigida y la cantidad de información que proporciona.

Os animo a que completéis este post con comentarios sobre experiencias propias en proyectos, o sobre aquellos otros elementos que podéis considerar interesante incluir en la lista de elementos a tener en cuenta.

4 comentarios en “¿Cuánto es el tiempo de carga de una página web que consideramos aceptable?”

  1. Interesante tema Alfonso… lo ideal desde el punto de vista del programador sería que para cada escenario de la aplicación que tubiesemos que desarrollar supiesemos de antemano los requisitos de tiempo de carga. Si existe un requisito explicito de este aspecto, el desarrollador puede tomar decisiones como sacrificar un poco de usabilidad para cumplier ese requisito.

    El ejemplo claro son por ejemplo los grid ricos en web. En cuanto pones uno, mejoras la usabilidad a costa de dañar el tiempo de carga.

    Teniendo claro requisito de tiempo de carga también se podría saber cuando hay que poner más esfuerzo en mejorarlo durante el desarrollo.

    El punto sería no darnos cuenta demasiado tarde de los problemas de rendimiento. Ojalá todos los proyectos tubiesen alguien con tu perfil exclusivamente dedicado a medir y mejorar el rendimiento… la verdad es que yo eso solo lo he visto en el proyecto en el que estuve contigo…

    Un saludo.

    P.D.: Pinta interesante el nuevo blog…

     .

  2. Muchas gracias Rodrigo!

    Totalmente de acuerdo contigo en el hecho de tener muy bien definidos de antemano cuáles van a ser los requisitos de rendimiento de nuestra aplicación, ayundado asi a la toma de decisiones en la fase de desarrollo. Con las ideas que han surgido en este post podemos ayudar a definir los requisitos teniendo en cuenta diversos factores, sin obsesionarnos con un tiempo de carga minima, cuando puede que el usuario no lo demande.

    Apunto como otro elemento a tener en cuenta lo que comentas sobre la usabilidad, dependiendo del usuario al que va dirigida la aplicación, es posible que prefiera disponer de una mayor riqueza de objetos a costa de perder ligeramente en el rendimiento.

    Por último, sé que no es fácil disponer en cada proyecto de una persona dedicada exclusivamente a medir el rendimiento, pero es una de las cosas cuyo coste/beneficio se ha demostrado como muy rentable en la mayoria de los proyectos en los que he participado. El hecho de poner a una aplicación en una situación de estress, en la que 1000 o más usuarios la utilizan concurrentemente, va poder poner de manifiesto problemas y limitaciones que no podriamos identificar de otra manera (sin esperar a colocarla en producción)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *