En términos muy amplios los desarrollos de sistemas WEB no se diferencian del desarrollo de otros sistemas de software, incluso son comparables con el desarrollo de proyectos en general. Todos son en esencia “un esfuerzo temporal que se lleva a cabo para crear un producto, servicio o resultado único.”[PMBOOK, 5]. Siendo únicos e irrepetibles cada proyecto o sistema presenta circunstancias y retos también únicos. Sin embargo por las características propias de los sistemas WEB la ocurrencia de ciertas problemáticas o peculiaridades es elevada y se les identifica generalizando como propias de los sistemas WEB.
Los criterios para diseñar los sistemas suelen considerar las preferencias, necesidades y capacidades de los usuarios. El uso a distancia, que permite Internet, implica que no sea fácil o viable un contacto personal con ellos. Por esta razón es comun que los usuarios estén ausentes durante el desarrollo de los sistemas WEB. Esta ausencia presencial ocasiona muchas veces que se omitan algunos aspectos importantes. Por la misma razón muchos otros aspectos se diseñen con base en supuestos, interpretaciones y preferencias, de otros involucrados con mayor injerencia directa en el proyecto. Generalmente dichos involucrados reflejan sus gustos personales y no las necesidades de quienes serán los verdaderos usuarios.
Aunado al factor de cambio constante de Internet, los propios requisitos de los sistemas suelen cambiar antes de que estos estén terminados. Los factores exactos que causan esto no son muy estudiados. El iniciar con objetivos muy generales, las nuevas ideas que surgen a partir del aprendizaje que resulta de la interacción de los diversos involucrados y el número mismo de involucrados, son solo algunos ejemplos de posibles causas. En cualquier caso el cambio de requisitos es muy frecuente y esto tiene impactos significativos en el desarrollo de sistemas WEB.
Las comunidades y grupos generan sus propios sub-lenguajes. Dan usos particulares a expresiones generales, tienen expresiones propias y utilizan términos que desconocen otros grupos de personas. En los desarrollos WEB, aun en el caso de sistemas pequeños, intervienen personas de diversas disciplinas, grupos y comunidades. Esto ocasiona dificultades de comunicación que suelen ser muy costosas.
La arquitectura de Internet y el uso de estándares permiten la heterogeneidad pero no eliminan todos los problemas que ésta causa. Estos incluyen desde diferencias en características físicas como el tamaño de la pantalla, hasta pequeñas sutilezas en la forma y detalle con que cada navegador interpreta un estándar. Aun sobre las bases de los estándares más generales como HTML los navegadores tienen algunas diferencias que pueden causar serias dificultades en algunos sistemas. Además hay un gran número de tecnologías complementarias que permiten desarrollar funciones complejas a bajo costo pero que no están ampliamente difundidas en los sistemas clientes. La oferta de dispositivos, protocolos, formatos, navegadores y servidores cambia constantemente. En ocasiones el sistema que estamos desarrollando o manteniendo se puede ver afectado por un cambio en un componente que no tiene efecto en el 99.9% de los sistemas. La dificultad para programar ciertas funciones o acceder a otros sistemas de apoyo como bases de datos, varía entre los diversos lenguajes con que se puede programar el sistema en el servidor. Nuevas tecnologías pueden ser muy sencillas de implementar pero no ser utilizadas por la mayoría de los clientes objetivo. La diversidad de navegadores y servidores puede volver compleja y critica la selección de los lenguajes y tecnologías a utilizar.