• 4 hours
  • Easy

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 2/6/20

El pliego de condiciones

Log in or subscribe for free to enjoy all this course has to offer!

¿Qué es el pliego de condiciones?

El Pliego de condiciones de un proyecto de desarrollo es un documento en el que se establecen todas las condiciones que aceptan tanto el cliente como el ejecutor del proyecto, y que contiene también los requisitos que se deben implementar. Además, también se recogerán las responsabilidades de las partes que lo suscriben, para resolver cualquier conflicto que pueda surgir.

En el mundo del desarrollo de software es muy común que los proyectos estén sujetos a un Pliego de condiciones redactado por el cliente antes de comenzar el proyecto. A partir del Pliego de condiciones, las empresas candidatas presentan ofertas en las que se especifican el plazo de tiempo que necesitarán para realizar el proyecto y el precio que costará.

Ejemplo de un Pliego de condiciones

No existe una única forma de redactar un pliego de condiciones, cada organización desarrolla el Pliego de forma diferente, aunque podemos encontrar algunos puntos comunes. Vamos a ver en más detalle algunos de los puntos que podría contener un Pliego de condiciones de un proyecto de desarrollo.

Presentación del proyecto

En primer lugar es bueno explicar una visión global del proyecto para que todas las partes implicadas en el desarrollo entiendan la idea general. Una buena forma de exponer lo que queremos es responder a las siguientes preguntas:

  • ¿Cuáles son los objetivos del proyecto?

  • ¿Cuáles son los factores clave para que tenga éxito? 

Especificaciones técnicas

Definen todas las necesidades a nivel técnico del proyecto y se proporciona información de las características que tendrá que tener el producto desarrollado.

  • Requisitos

Es el punto más importante del Pliego de condiciones, y la mayoría de las veces los clientes no le prestan la atención necesaria.

Los requisitos describen las características o atributos del sistema deseado. El objetivo es describir qué debe ser implementado, no cómo debe lograrse su implementación, ya que de esto se encargarán los diseñadores de software.

Hacer una buena lista de requisitos es fundamental para que el equipo desarrollador entienda todas las características que tienen que implementar. Si los requisitos no están bien escritos, el resultado final se alejará de las necesidades del cliente.

A la hora de redactar los requisitos se deben cumplir las siguientes características:

  • Necesario: Debe ser necesario para el producto.

  • No ambiguo: El texto debe ser claro, preciso y tener una única interpretación posible.

  • Conciso: Debe redactarse en un lenguaje comprensible por los clientes en lugar de uno de tipo técnico.

  • Consistente: Ningún requisito debe entrar en conflicto con otro requisito diferente.

  • Completo: Los requisitos deben contener en sí mismos toda la información necesaria, y no remitir a otras fuentes externas que los expliquen con más detalle.

  • Alcanzable: Un requisito debe ser un objetivo realista, posible de ser alcanzado con el dinero, el tiempo y los recursos disponibles.

  • Verificable: Se debe poder verificar con absoluta certeza, si el requisito fue satisfecho o no.

Actor

El Administrador

Acción

deberá ser capaz de

Objeto

añadir usuarios 

  • El administrador deberá ser capaz de añadir usuarios.

  • El usuario deberá ser capaz de modificar la información de su perfil.

  • El administrador deberá ser capaz de actualizar usuarios.

Una posible ampliación del patrón anterior puede darse cuando queramos especificar restricciones al objeto. En ese caso el patrón se formará de la siguiente forma:  Actor - Acción - Objeto - Restricción.

  • El sistema deberá mostrar los resultados de una búsqueda en menos de 2 segundos.

 

  • Perfiles de usuario o "personas"

Dentro del diseño centrado en el usuario, las llamadas "personas" son personajes imaginarios creados para representar a usuarios reales que utilizarán nuestra aplicación. Esto permitirá diseñar un centrado en el usuario del producto.

Añadir al Pliego de condiciones una representación de los usuarios nos permite hacer mejores estimaciones de las necesidades del usuario, y mejora el conocimiento del producto al cliente y los desarrolladores. Por lo tanto permitirá crear requisitos centrados en el usuario que aporten valor al producto.

  • Prototipos de las páginas

Un prototipo es una maqueta que sirve como base a partir de la cual empezar a desarrollar una idea. Aunque no suele ser común que el cliente desarrolle en primer lugar las maquetas de la página, esto puede ayudar mucho a conocer su propio producto y a reconocer mejor las necesidades del usuario. Normalmente es el equipo desarrollador el que creará los prototipos y los validará con el cliente.  

  • Diseño responsive

Si la aplicación va a utilizarse en diferentes dispositivos, hay que especificar las dimensiones en las que se debe dar una correcta visualización de la aplicación. Los prototipos de le las páginas nos ayudarán en la tarea de encontrar las mejores representaciones para todos los dispositivos soportados.

  • SEO

Para mejorar nuestro posicionamiento, es necesario optimizar las URLs, los títulos, etc. Es conveniente detallar todas las necesidades de SEO en nuestra aplicación para ganar visibilidad.

  • Tecnologías externas

Es importante hacer constar las tecnologías externas en las que la aplicación se puede apoyar, por ejemplo, APIs web como Google Maps, Google Analytics o cualquier herramienta externa que necesite nuestro producto para funcionar.

Presupuesto

Es la cantidad de dinero que el cliente va a dedicar al proyecto, como puedes imaginar, el negocio es el negocio, e intentarán ajustar el precio lo máximo posible. Si el proyecto está abierto a ofertas de varias empresas, éstas harán ofertas por debajo del presupuesto del cliente para adjudicarse el desarrollo del proyecto.

En muchos casos, el cliente no publicará el presupuesto del que dispone para el proyecto. Dejará que sean las empresas interesadas las que hagan ofertas y seleccionará la que más les interese. 

Problemas del Pliego de condiciones

Un problema frecuente que pueden ocasionar los Pliegos de condiciones exhaustivos es la falta de flexibilidad que deja al proyecto, y que generará un conjunto de problemas que hay que tener en cuenta.

El cliente redacta los requisitos el principio del proyecto, pero puede que sus prioridades cambien durante el proceso o cuando vea el producto en funcionamiento. La empresa desarrolladora tiene unos plazos y un presupuesto que cumplir, además los requisitos firmados en el Pliego de condiciones deben estar presentes obligatoriamente en el producto final. El presupuesto y el plazo de desarrollo se estableció en función del Pliego de condiciones, y se corre el riesgo de que aumenten. Todo esto puede degenerar en un cliente insatisfecho (aunque sea él quien no haya valorado bien las necesidades del software en primera instancia), y a un equipo de desarrollo que tendrá que darse prisa en implementar las nuevos requisitos que no estaban pensados en un principio.

Esto se puede resolver con relaciones contractuales más flexibles pero que son mucho menos populares hoy en día. La razón es que el cliente se asegura un producto en un plazo y con un presupuesto establecido de antemano, y se libera de toda responsabilidad si algo sale mal.

Planificar un proyecto de desarrollo

Si un cliente publica una oferta que consta de un Pliego de condiciones, y enviamos una proposición con la que nos adjudicamos el proyecto, tenemos que ponernos manos a la obra.

La planificación del proyecto es muy importante para poder hacer estimaciones de los recursos necesarios, los costos y los plazos de desarrollo. Para que el proyecto sea un éxito se tienen que cumplir los objetivos marcados y obtener un producto de calidad.

Al realizar un proyecto, dispondremos de una serie de limitaciones: presupuesto, tiempo, equipo, etc. La planificación nos servirá para medir los recursos con los que contamos, y nos ayudará a cumplir los objetivos de la forma más eficiente posible.

Existen dos grandes modelos para la gestión de proyectos de desarrollo de software: las metodologías secuenciales y las metodologías ágiles. En los próximos capítulos profundizaremos en ambos modelos y aprenderemos a valorar cuál de las dos es la más apropiada para nuestro proyecto. 

 

Example of certificate of achievement
Example of certificate of achievement