El camino del arquitecto: certificación e inmersión en el producto

Casi todos los desarrolladores le preguntan cómo debe desarrollar sus habilidades y qué dirección de crecimiento elegir: vertical, es decir, convertirse en gerente u horizontal, stack completo. Muchos años de trabajo en un producto, contrario a los mitos, no es una limitación, sino una oportunidad útil. En este artículo, compartimos la experiencia de nuestro desarrollador backend Alexei, quien ha dedicado 6 años de certificación y ha viajado al arquitecto durante este tiempo.



¿Quién es arquitecto?


Un arquitecto en TI (liderazgo técnico) es un desarrollador de alto nivel que se ocupa de problemas globales en proyectos de TI. Se sumerge en los procesos comerciales del cliente y ayuda a resolver sus problemas con la ayuda de las tecnologías, y también determina cómo se organizará este o aquel sistema de información.

Tal profesional necesita no solo comprender las áreas temáticas individuales, sino también ver todo el proceso:

  • Establecer una tarea empresarial.
  • Desarrollo, incluida la programación, preparación, almacenamiento y procesamiento de datos.
  • Despliegue y soporte de infraestructura.
  • Pruebas
  • Implementar
  • Análisis y mantenimiento.

Esto significa la capacidad de ponerse en el lugar de cualquier especialista o equipo en el ciclo de vida del desarrollo, desde el interior para comprender el estado actual de los sistemas, identificar los errores cometidos y formular objetivos. A veces, para llevar a cabo una intervención quirúrgica personalmente.

El camino del desarrollo profesional del desarrollador al arquitecto lleva mucho tiempo, generalmente varios años. Para esto, el desarrollador necesita habilidades prácticas y conocimiento de la teoría, lo que puede confirmarse mediante certificación internacional.

Más de 5 años en un proyecto: ¿una rutina o una oportunidad de crecimiento?


Hace unos años, comenzamos a trabajar en un gran sistema de TI médica para un cliente extranjero. En este proyecto a gran escala, hubo ciertos problemas:

  • acceso limitado;
  • producto inestable;
  • sprints increíblemente estirados y larga coordinación.

"Es hora de actualizar las calificaciones", uno de los principales desarrolladores Alexei tomó esta decisión para superar estas dificultades y comprender mejor el sistema.

Alexey compartió su experiencia sobre cómo comenzar la capacitación, qué certificados es importante obtener, cómo y por qué hacerlo.

Paso uno: actualice el inglés


Los lenguajes de programación son un componente fundamental del desarrollo, pero los lenguajes para la comunicación no son menos importantes. ¡Especialmente en comunicaciones con el cliente de habla inglesa!
De la práctica

Un buen día, un empleado del cliente llamó a Alexey. Entonces, nuestro desarrollador aún no podía presumir de un montón de certificados, ni en tecnología, ni en administración, ni en comunicaciones. Tal vez no serían útiles, porque puedes ser un especialista competente sin regalos adicionales. Pero el problema aún surgió.

Debe comprender que el lenguaje hablado es radicalmente diferente del escrito. Si conoce bien las especificaciones en inglés, pero no practica escuchar y hablar, tenemos malas noticias para usted. En este caso, las conversaciones telefónicas con los socios pueden llevar a un callejón sin salida.

Alexey en la llamada recogió algunas palabras familiares, pero el discurso del colega fue tan rápido y diferente de la pronunciación clásica de las lecciones de audio que la esencia principal de sus preguntas pasó por alto. Por cortesía y falta de voluntad para complicar la situación, Alex aceptó rápidamente todas las sugerencias.

Huelga decir que, en el proceso de trabajo, se hicieron descubrimientos desagradables? Nuestro desarrollador se suscribió a algo que rechazaría absolutamente conscientemente si la propuesta llegara en un lenguaje claro.

En ese momento, se hizo evidente que bombear habilidades para escuchar y hablar es simplemente necesario. La mejor manera de hacerlo era a través de la certificación.

Certificación de inglés


Para mejorar la comunicación en el marco de nuestro proyecto médico, Alex estudió de inmediato en varios programas. Como resultado, aprobó la certificación FCE: primer certificado en inglés. Esto ayudó a comenzar a escuchar al cliente y transmitirle sus pensamientos.
Lifehack:

Evita los programas básicos de entrenamiento de inglés. La habilidad debe ser dirigida. Si necesita inglés para la comunicación empresarial, debe tomarlo. Simplemente no vaya a los extremos y tome CAE (Certificado en inglés avanzado). Su peculiaridad son las palabras sofisticadas, expresiones específicas que casi nunca se usan en la comunicación internacional.



Paso dos: certificación en toda la pila de tecnología


Inicialmente, el proyecto se basó en la tecnología de mapeo relacional de objetos ORM. El equipo de desarrollo del cliente estaba orgulloso de su creación, porque todo se hizo utilizando conceptos avanzados, es difícil y genial.

Sin embargo, los problemas en el producto, en particular, el servidor SQL constantemente congelado, no eran infrecuentes. Llegó al punto de que la solución típica al problema era reiniciar el servicio. El cliente llamó al líder del equipo y dijo que era hora de reiniciar. Finalmente, decidimos terminarlo.

El cliente quería calcular el rendimiento del sistema; para esto era necesario implementar la creación de perfiles y llevar a cabo la optimización regularmente. En ese momento, aproximadamente en 2015, Ants Profiler fue elegido como una herramienta de creación de perfiles, pero se mostró mal. Con pocos detalles, fue difícil obtener información sobre un bloque crítico de código. Con el máximo detalle, Ants Profiler comenzó a cambiar el código para que el rendimiento de los sistemas estuviera en riesgo: donde se configuró el perfil, todo simplemente cayó. Por lo tanto, hemos cambiado el enfoque.

Comenzamos analizando estadísticas

Al analizar las estadísticas de ventas, quedó claro que el 95% del trabajo en el servidor tiene una lógica comercial primitiva de 4 líneas. Para ellos, una consulta SQL fue suficiente, y no el conjunto completo de consultas generadas por el bloque de lógica de negocios con ORM.

Alex propuso e implementó un procedimiento almacenado para mover trabajos sin ORM. La idea contradecía el paradigma habitual del proyecto, el líder del equipo la conoció con cautela, pero el cliente aceptó todo y solicitó la implementación. Esto no fue sorprendente, porque el nuevo método permitió reducir los retrasos en el procesamiento en la producción de cuatro horas a varios minutos, un promedio de 98 veces.

Sin embargo, todavía teníamos dudas: ¿es esta la decisión correcta o una cuestión de preferencias personales? La creencia en el omnipotente C # y ORM fue sacudida por casualidad, lo que demostró todo el poder de las soluciones simples.
Segundo caso

El equipo escribió una solicitud para trabajar con datos dentro del marco del paradigma ORM, compilada de acuerdo con todas las reglas, sin errores. Su procesamiento tomó 2-3 minutos, y estos parámetros parecían aceptables. Sin embargo, una implementación alternativa que utiliza las selecciones y vistas más simples proporcionó el resultado más rápido, en 2 segundos.

Se hizo evidente que era hora de elegir un especialista que se certificará en todo el conjunto de proyectos para comprender todos los matices y elegir el mejor método. Esta tarea fue realizada por Alexey.

Primeros certificados

Para comprender la esencia, Alex pasó por varias certificaciones de Microsoft que cubrieron todo el conjunto tecnológico del proyecto:

  • TS: Desarrollo de aplicaciones de Windows con Microsoft .NET Framework 4
  • TS: Acceso a datos con la programación de Microsoft .NET Framework 4 en C #
  • TS: Microsoft .NET Framework 3.5 Desarrollo de aplicaciones de formularios Windows Forms
  • PRO: Diseño y desarrollo de aplicaciones de Windows utilizando Microsoft .NET Framework 3.5
  • PRO: Diseño y desarrollo de aplicaciones basadas en Windows mediante Microsoft .NET Framework
  • TS: Microsoft .NET Framework 2.0 - Desarrollo de clientes basado en Windows

Intentando optimizar el trabajo en un nuevo proyecto, el equipo llegó a las siguientes conclusiones:

  • Para que los sistemas funcionen, debe seguir las reglas para escribir código: no sangrías y comentarios, sino especificaciones técnicas: la cantidad de llamadas a las bases de datos, la carga en el servidor y mucho más.
  • El uso de conceptos conflictivos está lleno de problemas. El concepto de bases de datos es la teoría de conjuntos, mientras que ORM es el concepto de operaciones.
  • Las ideas que interrumpen el orden habitual de las cosas pueden encontrar resistencia en un equipo. El desarrollo también es una relación y la capacidad de discutir el punto de vista de uno.
  • La certificación amplía la mente y le permite comprender lo que puede usar, así como lo que no puede usar.



Paso tres: aprende más que solo código


Cuando se trabaja en soluciones de TI a gran escala, muchos factores son importantes. Por ejemplo, no todos los desarrolladores prestan atención a los parámetros de red, pero incluso su ancho de banda puede afectar la solución de un problema comercial.

La certificación de la serie 98 da una idea de esto:


Le permiten echar un vistazo más amplio a las cosas y salir del concepto limitado de "solo código". Estos son los fundamentos, los conceptos básicos, pero son importantes para entender todo a un nivel más profundo.

Las certificaciones de la serie 98 son pruebas pequeñas: 30 preguntas durante 45 minutos.

Paso cuatro: gestión de procesos


Trabajar con clínicas es un evento más responsable que, por ejemplo, crear un juego móvil. Aquí no puede agregar una función y desplegarla en el producto; es importante seguir el proceso de coordinación y realizar numerosos cambios por parte del cliente, porque la salud y la vida de las personas están en juego.

Agile típico no produjo los resultados deseados en este proyecto, y cada sprint duró lo suficiente. Entre despliegues tuvo lugar de 6 meses a un año.

Además, era técnicamente imposible llevar los procesos de diez clínicas atendidas a algún denominador común.

Para obtener el resultado más rápidamente en estas condiciones, los desarrolladores necesitaban responsabilidad personal y una visión a gran escala de los procesos, lo que significa una concentración constante de atención y alta calificación.

Cuando un especialista está inmerso en el proceso, ve claramente los resultados, las causas y los efectos, la imagen completa. Esto es al mismo tiempo un factor de motivación y conciencia adicionales, mejorando la capacidad de resolver problemas y problemas.

Con una infraestructura bien establecida, una arquitectura bien construida y un código óptimo, una persona puede asumir muchos procesos. Sin embargo, esto no significa que sea necesario hacer crecer soldados universales que sean capaces de liderar el proyecto solos. La comunicación y el trabajo en equipo son críticos.

En el equipo, cada desarrollador comprende que los colegas dependen de sus acciones. Ahorrar 5 minutos en la etapa de desarrollo es probablemente 5 horas adicionales de prueba. Para entender esto, es importante establecer comunicación.

En nuestro proyecto, los certificados de EXIN sirvieron como ayuda para dominar los procesos de Alexey:

  • Certificado de la Fundación M_o_R en Gestión de Riesgos
  • Fundación ágil scrum
  • Fundación de gestión de servicios de TI
  • Fundación de gestión de información empresarial EXIN
  • Certificado de la Fundación PRINCE2 en Gestión de Proyectos
  • Certificado de ingeniero de prueba
  • Microsoft Operations Framework Foundation
  • Proyectos de servicio ágil

En edX, se tomaron cursos que ayudaron a ver el sistema desde el punto de vista de las estadísticas y la programación ajustada y luego se les solicitó obtener un certificado de arquitecto :

  • Producción ajustada
  • Six Sigma: analizar, mejorar, controlar
  • Six Sigma: definir y medir

De acuerdo con el principio Six Sigma, el control estadístico proporciona un resultado cualitativo con una probabilidad extremadamente alta.

Al aumentar su nivel, el desarrollador, como regla, llega a las siguientes conclusiones:

  • Trabaja no mucho, pero de manera eficiente.
  • No complique la vida en la búsqueda del exterior: las tecnologías sofisticadas no necesariamente resuelven mejor los problemas.
  • Haz amistad con especialistas en todas las etapas del ciclo y descubre sus dolores. El arquitecto debe ser el propietario de los procesos: identificación del problema, declaración del problema, diseño de topología de red, desarrollo, prueba, soporte, operación.
  • Verifique cada función desde y hacia.
  • Sucede que los procesos de TI no corresponden a los procesos de negocio, y esto debe ser combatido.



Paso cinco: entienda la arquitectura a través del prisma de Big Data


En el proyecto, estábamos tratando con bases de datos bastante grandes. Al menos, parecía hasta cierto punto. Cuando Alex comenzó a estudiar big data en edX, resultó que 1.5 Tb en el proyecto es una pequeña base de datos. Escalas serias: desde 10 Tb, y se requieren otros métodos allí.

El siguiente paso hacia la certificación fue el Curso Big Data. Ayudó a comprender la organización del flujo de datos y acelerar las operaciones en el producto. Y también preste atención a las herramientas pequeñas, por ejemplo, comience a usar Excel para resolver microtask individuales.

Certificado:
Programa profesional de Microsoft: Certificado de Big Data



Paso seis: del desarrollador al arquitecto


Después de recibir todos estos certificados, mientras aún era desarrollador, Alexei comenzó a darse cuenta de que la información recibida tenía un alto nivel de abstracción, y esto estaba lejos de ser malo.

Una visión a gran escala de los procesos lleva al nivel de arquitecto, uno de los niveles más altos de certificación.

En busca de la certificación de arquitecto, Alex fue a Certified Software Architect - Microsoft Platform por Sundblad & Sundblad. Este es un programa reconocido por Microsoft, su desarrollo comenzó hace 14 años con la colaboración del director y las oficinas suecas de la compañía. Cubre el Marco .NET, la recopilación de requisitos, la gestión del flujo de información y muchos otros temas de alto nivel y se considera una fuerte confirmación de las habilidades del arquitecto.

El programa incluía cursos para estudiar. La certificación sistematizó el conocimiento y permitió ingresar a una nueva ronda de desarrollo, desde el desarrollador hasta el arquitecto.



Para resumir


Como señala Alexey, en el proceso de trabajar con un sistema de TI a gran escala, es importante recordar que la programación no es un entretenimiento costoso, sino una herramienta para resolver problemas comerciales. Ante un desafío particular, definitivamente debe prescribir un valor comercial para que el proyecto no se detenga.

El arquitecto tiene una mirada especial en la programación y sus componentes elementales:

  • Crear y / o soportar flujo de datos
  • Recuperando un flujo de información basado en un flujo de datos
  • Recuperando un flujo de valor basado en un flujo de información
  • Monetización de flujo de valor

Si observa el proyecto a través de los ojos de un arquitecto, debe comenzar desde el final: formular el valor y luego ir a él a través del flujo de datos.

Un arquitecto sigue las reglas de diseño con una visión global para el proyecto. Llegar a él a través de la práctica y los propios errores es casi imposible; más precisamente, es posible, pero durante mucho tiempo. La certificación le permite ampliar sus horizontes y ver el contexto completo de cada pregunta, familiarizarse con la experiencia de miles de profesionales y desarrollar la habilidad para resolver problemas de manera efectiva.

Hoy hemos estado trabajando con el sistema médico anterior durante más de cinco años y hemos realizado mejoras significativas. Durante este tiempo, Alex aprobó más de 20 exámenes de certificación:

  1. TS: Desarrollo de aplicaciones de Windows con Microsoft .NET Framework 4
  2. TS: Acceso a datos con la programación de Microsoft .NET Framework 4 en C #
  3. TS: Microsoft .NET Framework 3.5 Desarrollo de aplicaciones de formularios Windows Forms
  4. PRO: Diseño y desarrollo de aplicaciones de Windows utilizando Microsoft .NET Framework 3.5
  5. PRO: Diseño y desarrollo de aplicaciones basadas en Windows mediante Microsoft .NET Framework
  6. TS: Microsoft .NET Framework 2.0 - Desarrollo de clientes basado en Windows
  7. 98-361: Fundamentos de desarrollo de software
  8. 98-364: Fundamentos de la base de datos
  9. Certificado de la Fundación M_o_R en Gestión de Riesgos
  10. Fundación ágil scrum
  11. Fundación de gestión de servicios de TI
  12. Fundación de gestión de información empresarial EXIN
  13. Certificado de la Fundación PRINCE2 en Gestión de Proyectos
  14. Certificado de ingeniero de prueba
  15. Microsoft Operations Framework Foundation
  16. Proyectos de servicio ágil
  17. Producción ajustada
  18. Six Sigma: analizar, mejorar, controlar
  19. Six Sigma: definir y medir
  20. Programa profesional de Microsoft: Certificado de Big Data
  21. Arquitecto de software certificado - Plataforma Microsoft



Después de aprobar todos los exámenes, Alex pasó de ser un desarrollador líder a un arquitecto de proyectos. Además, la certificación se ha convertido en una herramienta poderosa tanto para el desarrollo profesional como para construir una reputación a los ojos del cliente.

La “memoria de certificación” ayudó a obtener acceso a procesos críticos individuales que debían ser monitoreados y desarrollados. Como regla general, los clientes europeos de soluciones de TI valoran altamente a los especialistas certificados y están listos para darles más libertad de acción.

Gracias por su atencion! Esperamos que encuentre útil este artículo.

Source: https://habr.com/ru/post/475464/


All Articles