En el mercado laboral suele encontrarse una diferenciación entre programadores y desarrolladores, siendo estos últimos los que diseñan la estructura o jerarquía de clases.Sin embargo, en el caso de las personas, es posible distinguir a los desarrolladores por especialidad y formación, o sea, diferenciar entre los expertos en el arte del manejo, uso, y creación de software, y los especializados particularmente en todo lo relativo a Internet y al manejo de ordenadores (sistemas operativos, programas utilitarios, etc),[3] así como los especializados en el sector de las Tecnologías de la información y la comunicación (TICS), grupos todos estos en los que se encuentran desarrolladores con las características que se indican seguidamente: Para responder adecuadamente y en la mejor forma a las necesidades del cliente, conviene que en una primera etapa el desarrollador establezca un pliego de condiciones, a efectos de determinar y especificar las necesidades del cliente en materia de automatización, informatización, y control, asunto por asunto.En esta etapa, conviene que se aclaren las siguientes cuestiones: Esta es una fase crucial puesto que no solo se debe responder a las necesidades actuales del cliente, sino también diseñar un sistema informático que acompañará al cliente en la evolución de sus actividades.En una segunda etapa se desarrolla una solución técnica (hardware) y se crea un modelo (análisis orgánico) del futuro programa (software) que gestionará el futuro sistema informático (si no existe).Luego se deben escribir las líneas de código necesarias para el correcto funcionamiento (programación), participar en las fases de pruebas, confeccionar la documentación técnica, y hacer el seguimiento y el mantenimiento del producto.