*Antes que nada, quería aclarar el término "consultora" del título, dado que he visto que tengo cierta lectoría internacional (modestia aparte). Una consultora, en el mundo del software peruano, aplica a una compañía dedicada a hacer software para terceros. Los gringos las llaman contractors .
El destino ha querido que me encuentre trabajando en una consultora, y a pesar del sueldo xD , me encuentro bastante cómodo. El equipo es bastante capaz, y sobre todo ameno y amigable; la aplicación a desarrollar es interesante y la vista desde mi escritorio es encantadora.
Así como yo, parece que Max Pool de Javalobby también se encuentra bastante a gusto; por lo que en su último post enumera las ventajas de trabajar en una empresa de este tipo cuando recién empiezas en el mundo del desarrollo. A mí me convenció, a ver que les parece a ustedes:
- Mucho proyectos nuevos: Cuando trabajas para una empresa/corporación, una vez que aprendes la arquitectura tecnológica de la compañía, pues se acabo el aprendizaje. Después tu trabajo se va a limitar a realizarle cambios o agregar funcionalidad a lo que ya está funcionando. Pasado un año, serás oficialmente un desarrollador legacy (lo que por cierto, está muy bien remunerado) En cambio, en una consultora te vas a mantener viendo proyectos nuevos todo el tiempo, cada uno con una arquitectura particular por lo que el aprendizaje de tecnologías va a ser constante y continuo. Cada dos o tres meses arrancas en un proyecto nuevo, con requerimientos nuevos y tecnologías nuevas.
- Ejemplo practico: En la primera compañía donde empecé a trabajar, las aplicaciones estaban sobre struts/EJB2.0 . Ya han pasado dos años, y todavía siguen en eso.
- Diferentes dominios: Siempre he tratado de aprender lo mínimo necesario y suficiente del dominio del problema (o sea...el negocio) para programar. No sé si será bueno o malo, pero ponerme a aprender todo lo que el usuario ya sabe, y mucho mejor que yo, se me hace innecesario. Si trabajas para una empresa vas a estar tan metido en el dominio que hasta vas a poder refutar al usuario. Cuando trabajaba en una compañía de seguros tenía un compañero que solía decirles a los corredores como hacer su trabajo. El trabajar en una consultora te da más versatilidad, dado que cada proyecto es un dominio diferente.
- Responsabilidades en arquitectura: En esta compañia de seguros que menciono, el departamento de arquitectura estaba compuesto por tres tíos que decidían que podían y que no podían hacer los desarrolladores (es decir, la plebe). Si querías utilizar un nuevo API, o agregarle una capa más a la aplicación necesitabas su visto bueno para proceder. Ahora en cambio, en la consultora todo es más horizontal. Somos 5 "analistas-programadores", que en la práctica somos Desarrolladores, Analistas, Arquitectos y Control de Calidad; y el asumir todos esos roles definitavemente es provechoso en cuanto a aprendizaje. En una compañía todo es más rígido, y tanto arquitectura como Control de Calidad son áreas bien definidas y tienen personal asignado. Volviendo a la arquitectura, el ser tu propio arquitecto te permite aplicar todos los tutoriales que te has leído de la web en una aplicación empresarial real...y eso, no tiene precio xD.
- Interacción con el usuario final: Volviendo a la referencia de la compañía de seguros, estuve más o menos año y medio y vi al usuario final en vivo y en directo una sóla vez: fue para unas pruebas con control de calidad. Después, era el Jefe de Línea (el Analista..en otros términos) en que hablaba con el usuario, traducía lo que el quería y me lo decía para que yo programara . En una consultora, dado que uno también asume el rol de analista, la interacción con el usuario es más frecuente; lo que te permite pulir tus "habilidades interpersonales".
1 comments:
Hola,
ReplyTu blog es buenisimo.
Tienes toda la razón. Este tipo de empresas que en mi país se llaman empresas de servicios, ayudan mucho al aprendizaje cuando uno está iniciando.
Saludos,
Publicar un comentario