
Después de casi 80 años de profesión (entre los dos) todavía no hemos encontrado a ningún compañero que nos haya dicho que comenzó en la informática con el rol de analista. Sin embargo, el 100% entre los que me incluyo comenzamos disfrutando de largas sesiones de programación en uno u otro lenguaje y sistema operativo.
Llevamos mucho tiempo comentando con otros programadores de nuestra edad que cada vez que hablamos con programadores jóvenes tenemos la sensación de que solo quieren trabajar en desarrollo de la interfaz, el frontend, y es rarísimo que a alguno le guste el diseño de la base de datos.
El 19 de agosto publicamos un artículo en el blog de Velneo con el título Guía indispensable para ser un buen analista-programador. En este episodio vamos a profundizar en todas esas ideas.
Guión del episodio
- No es algo nuevo, ya estaba aquí cuando yo llegué.
- ¡A mí lo que me gustaba era “programar”, picar código!
- La influencia de un buen diseño de base de datos en la programación del backend, las reglas de negocio y la interfaz es absoluta.
- Un analista-programador es un semidiós de la informática.
- Definición del rol de analista-programador.
- El Analista Programador es la persona que realiza las funciones de un analista técnico y de un programador; es decir, parte de una información previa recibida del analista funcional, en función de la cual desarrolla las aplicaciones y organiza los datos. Es el perfil más buscado en la actualidad.
- En base a sus conocimientos en el o los lenguajes de programación necesarios en cada caso, sintetiza, organiza y lo lleva a la práctica mediante la codificación de la solución. Requiere características de personalidad similares a las de un programador, con mayor visión global y capacidad de análisis y síntesis.
- Analista funcional.
- El Analista Funcional es un profesional que se ocupa de analizar los procesos involucrados en negocios con el fin de intentar buscar y descubrir posibles necesidades de información que pueda tener el cliente. Es el nexo entre las necesidades del usuario o cliente y el equipo informático encargado de elaborar una aplicación. A partir de su análisis, definirá las funcionalidades y requerimientos que deberá tener el software para lograr responder satisfactoriamente a las necesidades del cliente. Además, se encarga de la supervisión de la programación y de la actualización y mantenimiento de los sistemas informáticos para asegurarse del correcto funcionamiento de las aplicaciones. Esto implica muchas veces realizar tareas de asesoramiento y capacitación.
- Analista técnico.
- En principio, y tal como se define, el analista-programador utiliza los requerimientos definidos por analista funcional, o las historias de usuario que define el producto owner para diseñar la base de datos y posteriormente realizar la programación necesaria.
- En mi opinión si el proyecto lo permite y la persona que hace el análisis funcional es la misma que hace el análisis técnico, estaremos ahorrando tiempo y sobre todo errores de interpretación. Lo que ocurre es que en los proyectos donde el analista funcional o el producto owner no tiene competencias para definir la base de datos no queda más remedio que mantener los roles separados.
- Tenemos un proyecto, se busca un analista-programador.
- Para entender lo que hace un buen analista-programador vamos a adentrarnos en una historia ficticia pero que bien podría ser tan real como el próximo proyecto en el que tengas que trabajar.
- Tenemos un nuevo cliente que nos ha contratado el desarrollo de un software a medida para su empresa. Lo ideal para estos casos sería el desarrollo basado en “agilidad”, sin plazos y presupuesto cerrado, pero esto es algo que se escapa del artículo. Así que vamos a repasar las diferentes fases de desarrollo en las que estaría o podría estar involucrado el analista-programador.
- Fase 1. Reuniones con el cliente.
- Aunque en el equipo exista un analista funcional, sería conveniente que el analista-programador pudiese asistir a esas reuniones para escuchar lo que dice el cliente.
- Escucha activa y la empatía con el cliente.
- Hasta que no tengamos bien analizado con el cliente el proyecto en su totalidad no deberíamos comenzar con el desarrollo.
- Un error habitual que debemos evitar a toda costa es intentar alimentar nuestro ego tratando de demostrarle al cliente que sabemos mejor que él lo que quiere o necesita.
- No caigas en el error de pensar que el cliente no sabe lo que quiere hasta que tu se lo enseñes. El cliente puede no saber cómo solucionarlo, para eso te ha contratado, pero sí sabe lo que quiere resolver o mejorar, y aunque no sepa expresarlo bien tu misión será preguntar hasta comprenderlo.
- Fase 2. Dando cuerpo al análisis.
- Algo que he aprendido a base de palos es que no es lo mismo lo que tiene el cliente en su cabeza, lo que nos cuenta, lo que nosotros entendemos, y lo que realmente necesitan los usuarios que no estaban en las reuniones iniciales.
- Debemos tratar de usar su mismo lenguaje, sus mismos ejemplos, y hasta sus mismos datos si es posible. El “utópico” objetivo final es que todos entendamos lo mismo, o al menos minimizar las diferencias de interpretación.
- Programar es prever.
- Hay que evitar a toda costa el exceso de documentación
- Ser “ágiles” siempre nos va a permitir obtener mejores resultados para nuestro cliente, un mejor producto y con mayor calidad
- Fase 3. Plasmando el análisis en la base de datos.
- Lógica y abstracción.
- Los errores de diseño de la base de datos se pagan muy caros.
- Tu nivel profesional como analista-programador va estar ligado a la calidad de tu trabajo a la hora de definir la estructura de la base de datos.
- Fase 4. La importación de datos.
- Mi recomendación en este punto es que como analista-programador priorices la importación de los datos antes de comenzar a crear la interfaz.
- Fase 5. Desarrollando ando.
- Cuando se desarrolla en equipo es fundamental pensar en el equipo.
- Aplicar una guía de estilo.
- Estaremos generando deuda técnica.
- Ser práctico, es decir, no buscar la perfección.
- Lo más complicado es conseguir desarrollar aplicaciones sencillas, con las opciones adecuadas y la usabilidad correcta. Tan malo es lo que sobra como lo que falta.
- El buen programador prueba bien lo que programa.
- Fase 6. Despliegue en producción.
- Cuanto más sepan los usuarios menos soporte harán, o lo harán con mejores criterios y calidad.
- Piensa que los usuarios deben ser tus aliados no tus enemigos.
- En esta fase el analista-programador debe ser más documentalista que nunca.
- Fase 7. Mantenimiento.
- Si quieres evitar problemas con los clientes respecto al servicio de mantenimiento correctivo debes dejarlo claro desde el primer día.
- En esta fase como analista-programador debes hacer uso de otra característica que te hace especial, tu perseverancia, ser capaz de mantener tu calidad y dedicación a una aplicación durante años y años. Al fin y al cabo es como un hijo para ti.
- ¿Dónde se crece más como analista-programador?
- Te ayuda a crecer en el conocimiento de múltiples sectores, problemáticas y perfiles de personas con las que colaboras. Esto es muy enriquecedor profesionalmente.
- Después de repasar todas las competencias de un analista-programador es lógico que sea un perfil tan altamente demandado.
- ¿Cuánto gana un analista programador?
Deja una respuesta