¿Cuáles son los roles de un arquitecto de software?

1. Decidir cuál es el lenguaje adecuado para implementar ese proyecto. En Onigma, elegí C ++ para el agente de Windows (velocidad y memoria), servidor en C # (gran integración de Active Directory, código administrado, gran API de base de datos). En Spot.IM elegí RoR para la API web, Objective C para iPhone (Hay otras opciones), Java para Android (Ambos dispositivos móviles son nativos), Redis para el almacén de datos.

2. Elija los marcos que usará su equipo y encuentre las personas que pueden dominarlos: AngularJS para el marco del lado del cliente, Rails y Event Machine para los servidores.

3. Elija los marcos que su equipo NO utilizará: Nodo JS, por ejemplo.

4. Elija qué servicios externos implementar. Usamos:
4.1. Pusher: HTML5 WebSocket Powered Realtime Messaging Service,
4.2. Redis-Cloud
4.3. Honeybadger
4.4. Heroku
4.5. Búsqueda elástica (no elegí uno todavía)
4.6. Enviar cuadrícula
4.7. Twillio
4.8. Cloudinary

5. Decidir sobre el control de origen: Github

6. Decidir sobre el método de ramificación y liberación: flujo de Git

7. Decidir sobre el diseño del protocolo

8. Decidir sobre la Convención de codificación

9. Identifique los cuellos de botella del rendimiento operativo y resuélvalos a tiempo

10. Asegúrese de ejecutar la operación de inicio es menos costosa que todas las otras compañías competidoras en su campo.

11. Asegúrese de que el producto pueda estar listo para cuando lo necesite; trabaje con el presupuesto.

12. Decida el tamaño del equipo y el tipo de programadores que necesitará para construir el proyecto.

13. Encuentre gerentes excelentes para administrar la operación (un verdadero arquitecto de software no tendrá tiempo para administrar). Necesita profundizar en los detalles diariamente. Concéntrese en ciertos aspectos del software que está creando y resolviendo problemas.

14. Asegúrese de que sus programadores entreguen

15. Asegúrese de que sus programadores usen comentarios.

16. Asegúrese de que sus programadores implementen pruebas automáticas si es posible.

17. Despide a un mal programador (Otra discusión: cómo reconocer a un mal programador)

18. Entregar o explicar por qué no cumplió con la fecha límite (las personas no tecnológicas generalmente piensan que es responsabilidad del gerente de I + D, están equivocados)

19. Por último, pero no menos importante, implemente personalmente parte de la lógica empresarial y los marcos del proyecto. Con solo revisar el código, el impacto y la subestimación siempre son mínimos.

El arquitecto de software es uno de los enlaces más importantes en la cadena de valor de gestión y desarrollo de productos de TI. Con la competencia tecnológica pasando a los centros de entrega global, como India, se deben tomar una serie de decisiones sobre el producto. Esto refuerza la necesidad de experiencia en productos y habilidades de arquitectura de software entre las empresas indias de servicios de TI, para que puedan hablar el idioma del producto del cliente desde las primeras etapas del compromiso.

A diferencia de algunos de los roles habituales, los arquitectos de TI también están detrás de la innovación. Toman decisiones clave en el crecimiento y la innovación de la organización. En esta capacidad, deciden cómo los avances o normas singulares cambiarán, influirán o perturbarán el futuro. También pueden decidir si las innovaciones o los puntos de referencia se mantendrán o se eliminarán de la asociación, dependiendo del valor agregado por la tecnología / procesos respectivos.

Además de esto, también colaboran con otras divisiones de vez en cuando. Un ejemplo de ello es su trabajo con arquitectos de soluciones. Aquí, trabajan juntos para proporcionar una solución empresarial basada en el consenso que sea escalable, adaptable y en sincronización con las necesidades comerciales en constante cambio.

Puede leer este blog sobre la arquitectura del futuro del talento de la India que ofrece una visión breve pero integral de la arquitectura de TI.

Un arquitecto de software tiene una culpa personal por la calidad: ¿Qué hace un arquitecto de software?