Las 10 Habilidades más Importantes para los Desarrolladores
Interesante punto de vista de Justin James, el que rescato de TechRepublic, para compartir y comentar. Si bien estoy de acuerdo en algunos puntos, nada dice que en 5 años la tecnología haya dado una vuelta de tuerca y se cambie drásticamente alguna técnica. Por otro lado, todos o la gran mayoría de los grandes bancos o megaprocesadores de transacciones y datos, no han cambiado sus mainframes, sus Cobol, etc. dada su solidez. No obstante hay conceptos bastante interesantes y que pudiesen ser útiles a quien se inicia o a quienes llevamos tiempo en esto.
1. Uno de los "3 Grandes" (Java, .NET, PHP)
A menos que ocurra algún cambio radical en el mundo del desarrollo (como ser un asteroide que caiga sobre Redmond), la mayoría de los desarrolladores van a necesitar conocer alguno de los tres "grandes" sistemas de desarrollo: Java , .NET (VB.NET o C#), o PHP. Y tampoco alcanza con conocer al lenguaje principal. A medida que los proyectos crecen y van acaparando más funcionalidad, vamos a necesitar conocer los frameworks y librerías asociadas con profundidad.
2. Aplicaciones Ricas de Internet (RIA - Rich Internet Applications)
Ámenlo u ódienlo, pero en los últimos años Flash se está usando para algo más que animaciones graciosas. Flash también obtuvo funcionalidad adicional en la forma de Flex y AIR. Los competidores de Flash, como JavaFX y Silverlight, también están mejorando en caracerísticas y performance. Los navegadores están mejorando sus motores JavaScript, el cual se perfila como una plataforma de aplicaciones web. Para hacer las cosas más complicadas, HTML 5 va a incorporar montón de funcionalidad RIA, incluyendo conexión a la base de datos, poniendo así el sello formal de la W3C a AJAX. En el futuro cercano, tener experiencia en RIA va a ser un factor determinante en nuestro currículum.
3. Desarrollo Web
El desarrollo web no va a desaparecer en el futuro. Muchos desarrolladores hasta ahora estuvieron felices ignorando la web, o sólo quedándose con "lo básico" que les brindaba su framework. Pero las empresas están demandando más y más a quienes realmente conocen cómo trabajar con las tecnologías subyacentes. Así que deberemos mejorar nuestros conocimientos de JavaScript, CSS y HTML para tener éxito en los próximos cinco años.
4. Servicios Web
¿REST o SOAP? ¿JSON o XML? Aunque las elecciones y las respuestas dependen del proyecto, cada vez es más dificil ser un desarrollador sin tener que consumir Servicios Web (incluso aunque nuestro desarrollo no sea una aplicación Web). Incluso las área que solían ser terreno de ODBC, COM o RPC ahora están avanzando hacia Servicios Web de algún tipo. Los desarrolladores que no puedan trabajar con Servicios Web van a terminar relegados a tareas de mantenimiento en código legacy.
5. Habilidades humanas
Hay una tendencia que viene ocurriendo hace ya un tiempo: la creciente visibilidad de IT dentro y fuera de la organización. Los desarrolladores están participando más y más de reuniones que no son de desarrollo y de procesos para obtener feedback de ellos. Por ejemplo, el jefe de contabilidad no puede cambiar las reglas del negocio sin trabajar junto a IT para actualizar el sistema. Y un gerente de operaciones no puede cambiar el proceso de los call center sin que IT actualice el workflow del CRM. De la misma forma, los clientes a menudo necesitan trabajar directamente con los equipos de desarrollo para asegurarse que se cumplan sus necesidades. ¿Va a ser necesario que todos los desarrolladores estudien Cómo hacer amigos e influenciar personas? No. Pero los desarrolladores que lo logren van a ser mucho más valiosos para sus empleadores - y serán más buscados en el mercado.
6. Un lenguaje de programación dinámico y/o funcional
Los lenguajes como Ruby, Python, F# y Groovy todavía no son muy populares - pero si lo son las ideas detrás de ellos. Por ejemplo, el sistema LINQ en .NET es un descendiente directo de las técnicas de programación funcional. Tanto Ruby como Python son cada vez más populares en algunos sectores, gracias al framework Rails y Silverlight (con ironpython) respectivamente. Aprender uno de estos lenguajes no sólo va a mejorar nuestro currículum, sino también que va a expandir nuestro horizonte. Todos los grandes desarrolladores recomiendan aprender al menos un lenguaje dinámico o funcional para lograr aprender nuevas formas de pensar.
7. Metodologías ágiles
A medida que pasa el tiempo, las ideas detras de las metodologías ágiles, se vuelven más definidas y mejor expresadas. Muchas organizaciones están adoptando este tipo de metodologíal o haciendo pruebas de concepto con ellas. Aunque una metodología ágil no es la bala de plata para evitar fracasar en un proyecto, definitivamente tiene su lugar en muchos proyectos. Los desarrolladores que tengan experiencia en trabajar y comprender los ambientes de desarrollo con metodologías ágiles van a ser cada vez más demandados en los próximos cinco años.
8. Conocimiento de negocio
De la mano con las metodologías ágiles, los equipos de desarrollo son cada vez más vistos socios en la definición de proyectos. Esto significa que los desarrolladores que comprendan el dominio y ámbito del problema planteado o entiendan el "negocio" van a poder contribuir al proyecto de una forma más visible y valiosa. Con una metodología ágil, un desarrollador puede decir "Desde aquí, podemos agregar esta funcionalidad muy facilmente, y obtendremos mucho valor", o "Hey, este requerimiento no está acorde al patrón de uso que muestran los logs". Por más que muchos desarrolladores resistan la idea de conocer nada sobre el problema principal o del "negocio", no puede negarse que cada vez más organizaciones prefieren (si no incluso requieren) a desarrolladores que al menos comprendan lo básico sobre el negocio.
9. "Higiene" de desarrollo
Hasta hace pocos años atras, muchas (si no todas) las organizaciones no tenían acceso a sistemas de bug tracking, control de versiones y otras herramientas; todo se resumia a los desarrolladores y su IDE preferido. Pero gracias a la creación de nuevos entornos integrados de desarrollo y la explosión de entornos de software libre de alta calidad, ya casi no existen organizaciones sin estas herramientas. Los desarrolladores tienen que conocer mucho más que sólo hacer un checkout del código. Necesitan tener un hábito riguroso de higiene para asegurarse que están correctamente coordinados con el equipo. Los "programadores solitarios" que guardan todo local, que no documentan los cambios y demás, no van a ser bienvenidos en las organizaciones tradicionales, y van a a quedar directamente fuera de lugar en los entornos Ágiles, en donde se utiliza una coordinación fuerte entre los equipos para operar.
10. Desarrollo móvil
Durante los fines de 1990 el desarrollo web creció y ganó adopción general, para así comenzar a desplazar a las aplicaciones tradicionales de escritorio. En 2008, el desarrollo para dispositivos móviles despegó finalmente, y en los próximos cinco años va a crecer de forma constante. Por supuesto, existen varios enfoques al desarrollo móvil: aplicaciones web diseñadas para funcionar en dispositivos móviles, RIAs apuntadas a este mercado, y aplicaciones que se ejecutan directamente en los dispositivos. Sin importar qué camino elijamos, nos va a servir agregar el desarrollo móvil a nuestro grupo de habilidades.
Fuente :TechRepublic.
¿¿Alguien que lance la primera piedra??
jueves, 16 de abril de 2009
Las 10 Habilidades más Importantes para los Desarrolladores
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario