errores-desarrollo-de-software-a-la-medida

Errores comunes en Proyectos de Desarrollo a la Medida

Antes de iniciar un proyecto, debemos estar preparados para él, no basta con tener un equipo de trabajo que consideremos tiene las habilidades para ejecutarlo, existen factores que vale la pena conocer para evitar caer en errores que puedan perjudicar tus proyectos de desarrollo a la medida. A continuación brevemente te enlisto algunos de ellos.

1. El equipo de proyectos no conoce o tiene poca visión sobre la línea de negocio del cliente.

Es muy recomendable que no solo el Líder y el Analista sean los únicos que conozcan sobre el giro del negocio del cliente, el resto del equipo (Diseñadores, Ingenieros de Software, Testers y Arquitectos) deben de conocer con muy buen detalle a lo que el cliente de dedica. De esta manera, al momento de estar ejecutando cada una de las actividades en sus respectivos roles, tendrán una visión completa y podrán anticipar soluciones que le permitan al cliente operar la aplicación de una manera mas eficiente; te recomiendo que se realice un junta con tu cliente en donde se explique el giro del negocio y se visiten las áreas involucradas donde tendrá impacto el proyecto a realizar.

2. El equipo solo se preocupa por desarrollar las actividades que las especificaciones indican, sin tener claro los objetivos de los requerimientos funcionales y cómo estas se enlazan con el resto.

Este es uno de los errores que consideramos de mayor importancia, al no tener bien claros los requerimientos funcionales bajo los cuales operará el sistema, y cual es el objetivo de cada uno de ellos, la base (análisis) de la cual partirá la construcción del sistema puede quedar ambigüa, los ingenieros de software estarán desarrollando sin saber las implicaciones y cómo se enlaza y cómo afectan sus líneas de código el resto del desarrollo. Por lo cual te invito a que te hagas la siguiente pregunta: ¿Mi equipo de desarrollo cuenta con una Especificación de Requerimintos de Software (ERS) detallada, con rastreabilidad y una Especificación de Casos de Uso (ECU), la cual tenga cada uno de los requerimientos funcionales medibles y alcanzables que cumplan con el objetivo del proyecto?

3. El análisis no es apoyado o validado con un arquitecto de software.

El desarrollo del análisis de un proyecto, en los documentos siempre funciona muy bien, en la realidad se vuelve complejo de codificar cuando éste no ha sido validado o revisado por un arquitecto de software, es recomendable que un arquitecto pueda revisar los requerimientos y determinar de que forma se puede hacer mas simple, tanto para los desarrolladores como para el usuario final.

4. No indagar o pensar que la infraestructura del cliente se acoplará a la solución que le propondremos.

Existen muchos factores que debemos de tomar en cuenta al proponer el desarrollo de una solución, el no preguntar o validar con el cliente su arquitectura y restricciones de la misma nos puede traer muchos dolores de cabeza. Aquí te enlisto algunas preguntas que debieras considerar realizar:

  • ¿Existe un protocolo de seguridad ya establecido para el acceso a las aplicaciones?, (por base de datos, directorio activo, federación, etc)
  • ¿Qué repositorio de base de datos y versión se utilizan actualmente?
  • ¿Con qué versión de sistemas operativos cuentan?
  • ¿Se cuenta con servidores físicos o virtuales? ¿Se cuenta con una granja de servidores?
  • ¿Existe alguna restricción para la comunicación entre los servidores de aplicación y la de base de datos?
  • ¿Tiene un lenguaje/plataforma de preferencia para el desarrollo de la aplicación?
  • ¿Se tiene que usar la metodología del cliete? ¿Se puede usar la de nosotros?
  • ¿Se cuenta con ambientes de desarrollo y QA?

5. Dar por asentados o no tomar importancia de los requerimientos no funcionales.

¿Te ha sucedido que al momento de realizar la implementación de una solución te topas con que la aplicación no se ejecuta de manera correcta en cierto tipo de navegador?, ¿Que la expectativa del cliente suele ser que la información de los reportes o procesos tardan mas de lo que ellos esperan?, estos son solo algunos de los problemas que nos toparemos si no tenemos especificados o identificados los requerimientos NO funcionales.

Para minimizar este tipo de riesgos es necesario identificar desde la parte inicial del proyecto cómo resolver, o cuales serán los parámetros bajo los cuales operará la aplicación, algunos ejemplos son:

  • La versión con la que deberá operar la aplicación será Internet Explorer ver 11 o mayor, Google Chrome versión 43 para MAC o mayor.
  • El tiempo permitido para obtener reportes de hasta 500 registros debe de ser máximo de 10 segundos.
  • Los tiempos para guardar información en la base de datos no mayor a 5 insersiones deben de ser de máximo 1 segundo.
  • La aplicación debe de tener una disponibilidad del 99% en línea, el procesador no debe de superar el 40% de uso en procesos de consultas.
  • La aplicación debe de estar preparada para que ante desconexiones no se pierda la información de los formularios que se están capturando para posteriormente guardarlos en la base de datos.

6. No contar con una plataforma controladora de versionamiento de código o no hacer uso adecuado de ella.

¿Qué tan familiar te suena la frase: “se perdió el código o la última versión ya no la tengo”?. Debemos contar con una herramienta que nos permita resguardar y controlar las versiones de documentos y código de nuestro proyecto, además de contar con ella debemos saberla usar adecuadamente para evitar problemas como el “planchar” los cambios o agregados de un colega de trabajo. Sin este tipo de herramientas, poner en riesgo nuestro proyecto es muy alto. Por mencionar algunas herramientas te enlisto las siguientes:

  • Sourcesafe
  • Team foundation Server
  • TortoiseSVN
  • Github

Como podrás notar, son solo algunos puntos muy importantes, pero nada complejos de llevar acabo, si los tomas en cuenta podrás encaminar adecuadamete tu proyecto a una conclusión de buenos términos.

¿TE GUSTARÍA PROFUNDIZAR SOBRE EL TEMA Y APRENDER A EVITAR ESTOS ERRORES? ESTAREMOS OFRECIENDO UN WEBINAR EL PRÓXIMO VIERNES 28 DE AGOSTO A LAS 10:00 AM (Ciudad de México) ¿TE GUSTARÍA ASISTIR?


Si estás próximo a arrancar un proyecto de desarrollo de software, estás buscando soluciones en sistemas de información o desarrollo de aplicaciones móviles y tienes dudas sobre este tema, te invito a que nos contactes.

 

Somos una empresa de software, especialista en desarrollo de aplicaciones web, fábrica de software y desarrollo de aplicaciones móviles. Desarrollamos software basado en Microsoft .NET, y aplicaciones nativas en iOS o Android; para aquellas empresas que solo requieren la contratación directa de especialistas, proveemos consultores por proyecto, temporales o fijos, con experiencia en las tecnologías más avanzadas para apoyar tu estrategia en desarrollo de sistemas y desarrollo de apps.