Tecnologías en constante cambio: ¿Qué debe hacer un desarrollador de software?

Brett Miller es el presidente de Custom Software by Preston (CSP). Durante más de 10 años, CSP ha impresionado a sus clientes con soluciones de software altamente efectivas y equipos de ingenieros de software con múltiples talentos.

Las nuevas tecnologías y dispositivos se propagan a un ritmo aterrador. La demanda de los conjuntos de aptitudes en evolución de los desarrolladores de programas informáticos crea un entorno en el que puede resultar difícil encontrar los conocimientos especializados necesarios para atender las necesidades de un proyecto de desarrollo de programas informáticos. Hay más conjuntos de aptitudes y oportunidades potenciales que nunca antes.

Afortunadamente para una persona interesada en entrar en uno de estos nuevos campos de desarrollo de software, la tecnología es tan nueva que los años de experiencia no siempre son un requisito previo. Ser capaz de demostrar incluso un nivel de habilidad superficial puede ser suficiente para empezar.

Desafortunadamente para el desarrollador, muchas de estas nuevas tecnologías están en el mercado y desaparecen rápidamente. Pierden su comerciabilidad a favor de la tecnología de la próxima generación y patentemente mejores formas de hacer las mismas funciones. El inconveniente para un desarrollador es obvio: una curva de aprendizaje en constante evolución. No hay un período de producción estática; siempre hay una nueva técnica o un nuevo lenguaje de programación que dominar para mantenerse al día. Y no hay otra opción que mantenerse al día. Muchas tecnologías que eran vanguardistas hace unos años están completamente obsoletas hoy en día.

Factores que facilitan la entrada al mercado

Muchas de las herramientas de desarrollo de software más populares son gratuitas en línea (o tienen versiones de prueba), y los autores proporcionan descripciones detalladas de los conceptos y técnicas para aprenderlas. Los tutoriales en línea y la información para superar las dificultades comunes permiten a los desarrolladores recuperarse rápidamente de cualquier “punto de fricción” típico en el proceso de aprendizaje.

La credibilidad puede establecerse rápidamente mediante la creación de una muestra en línea (como un sitio web, por ejemplo) o la publicación de una pequeña aplicación en una tienda de aplicaciones. Una simple aplicación puede resaltar instantáneamente las habilidades y destrezas de un desarrollador – y verificar su credibilidad.

¿Qué tecnologías son las siguientes?

En los últimos tres años, un mayor número de desarrolladores experimentados ha cambiado su enfoque, pasando de desarrollar para computadoras a desarrollar aplicaciones para dispositivos móviles como el iPhone, Android y BlackBerry. Los nuevos dispositivos y sistemas operativos, como Windows Mobile 7, hacen del mercado de los teléfonos inteligentes una bonanza competitiva para quien tenga las habilidades apropiadas. Los gustos, tecnologías y capacidades en constante cambio ayudan a evitar que estos mercados lleguen a la saturación: las aplicaciones y tecnologías que las respaldan simplemente cambian demasiado rápido para que eso ocurra.

Dos nuevas tecnologías que están a punto de tener una mayor demanda en el futuro y que potencialmente podrían remodelar el software de forma revolucionaria son la televisión conectada a Internet y el dispositivo Kinect.

La televisión por Internet representa la fusión de las capacidades de Internet y la televisión tradicional. Al igual que los teléfonos inteligentes hicieron común la miniaturización de las aplicaciones, los atributos de la pantalla de televisión más grande y la distancia del dispositivo tenderán a crear nuevos patrones de uso y especialidades tecnológicas.

Kinect convierte tu cuerpo y tu voz en el dispositivo de entrada para interactuar con una XBox 360. Un simple movimiento de la mano puede controlar y manipular el contenido que se muestra en la pantalla. Un día, muy pronto, las características similares a las de Kinect se volverán a utilizar en ordenadores u otros dispositivos como complemento del teclado y el ratón. Imagina las posibilidades de desarrollo de software; es simplemente asombroso.

La pregunta para los desarrolladores potenciales es cuánto tiempo estarían dispuestos a dedicar al aprendizaje de estas nuevas y siempre cambiantes tecnologías y a posicionarse como expertos en el campo. ¿Emocionante? Sí, pero existe el riesgo siempre presente de que la demanda prevista sea fugaz o no se produzca nunca.

¿Qué determina las áreas en las que hay que centrarse?

Situación laboral y conocimiento actual: La situación laboral actual de un desarrollador es el área principal donde se utilizan y refinan las habilidades. La gerencia generalmente dirige cuál de las principales tecnologías se utilizan (ASP.Net, por ejemplo), pero los desarrolladores individuales pueden controlar las subtecnologías (como LINQ, MVC y Ajax). Incluso si no hay exposición a tecnologías más nuevas, la comprensión y el uso de las metodologías de proyecto modernas (como Agile) y las pautas de diseño deben estudiarse y perfeccionarse continuamente. Más allá de un simple cheque de pago, un trabajo también tiene el valor añadido de proporcionar exposición a nuevas tecnologías. Esta exposición da forma al trabajo para el que los desarrolladores pueden calificar a continuación. La principal responsabilidad de los desarrolladores es el trabajo o el proyecto en cuestión, pero no pueden olvidarse de mantener las habilidades comerciales.

Riesgos de un conjunto de habilidades desfasadas: La continua liberación y refinamiento de las tecnologías acorta la vida útil de los usos y versiones de los idiomas individuales. Las empresas individuales pueden fijarse en tecnologías que limitan la capacidad de un desarrollador para exponerse a nuevos conceptos. Los desarrolladores deben esforzarse por mantenerse al día en lugar de permitir que las habilidades se vuelvan rancias. Algunos desarrolladores eligen la estabilidad del empleo, pero incluso un empleador que proporciona esa estabilidad algún día actualizará sus sistemas, por lo que las habilidades modernas son críticas.

Motivación para aprender nuevas tecnologías en el tiempo libre: Los desarrolladores se diferencian en cómo quieren pasar su tiempo libre. Algunos prosperan aprendiendo cosas nuevas y continuando jugando con las tecnologías incluso en sus horas libres. Otros necesitan alejarse completamente para refrescarse para el conjunto de tareas de desarrollo requeridas del día siguiente. El desarrollo de software en general es una vocación arriesgada, si se desea una usabilidad a largo plazo de una habilidad lingüística específica. La tecnología moderna sólo garantiza una cosa: el cambio.

Interés en el dispositivo y la plataforma: El interés que un desarrollador siente por un dispositivo o tecnología puede ser el mayor motivador para aprender los detalles y lanzar una carrera usando esa habilidad.

Predicción de la longevidad de la demanda del lenguaje: Muchos usos del lenguaje son meramente derivados de versiones anteriores o subconjuntos del lenguaje. La flexibilidad de un desarrollador para seguir un idioma a través de sus usos populares (ya sea en una nueva versión o en un nuevo dispositivo) puede ser fundamental para el éxito de su carrera.

Disponibilidad de herramientas y recursos para aprender idiomas: Las herramientas de desarrollo están disponibles con orientación en línea (y en libros) para aprender las diversas habilidades requeridas. Una de las cosas más importantes de ser un programador es la disponibilidad de herramientas e información.

Demanda de habilidades, competencia y tarifa por hora: Esto es economía básica: Más competencia trae consigo tarifas por hora más bajas; cuanto mayor es la demanda de la habilidad, más altas son las tarifas por hora. Curiosamente, un currículum sólido, años de experiencia y una sólida formación en los principios del desarrollo de programas informáticos parecen haberse convertido en un elemento menos importante en el proceso de contratación. Hoy en día, los directores de contratación se centran en los dos últimos años de empleo y en el uso por parte del desarrollador de conjuntos exactos de aptitudes. La aptitud y una amplia gama de habilidades (en general) no garantizan necesariamente el empleo.

Habilidad para comercializar una idea: El modelo de App Store que se ha hecho tan popular da a los desarrolladores una nueva opción de flujo de ingresos. Sin embargo, ser un buen desarrollador no es suficiente para ganar dinero vendiendo software. Un desarrollador debe ser capaz de identificar una necesidad apropiada en el mercado y tener un plan de marketing para promocionar el producto. Un viejo adagio sugiere “Si lo construyes, ellos vendrán”. Pero sepan que sin ese sólido plan de mercadeo, probablemente no vendrán.

Existen inconvenientes adicionales para los desarrolladores que utilizan el modelo de la App Store. La aplicación ciertamente obtiene exposición, pero los competidores pueden potencialmente copiar y mejorar su idea. Además, es probable que tengas que compartir los ingresos con quien haya construido la tienda (Apple, Google, etc.).

Gestionar una carrera de desarrollador a través de los cambios tecnológicos

Los desarrolladores deben asumir la responsabilidad de gestionar su propia carrera. La condición de empleado o de contratista no disminuye esta responsabilidad. También deben ser conscientes del efecto que un corto ciclo de vida tecnológico puede tener en su carrera. Necesitan conocer sus propias fortalezas y debilidades y cómo prepararse para los cambios en la industria y el empleo.

La gestión adecuada de estas responsabilidades permite a los desarrolladores posicionarse de la manera más ventajosa, cuando el cambio, inevitablemente, llama a la puerta. El desarrollo de software es una industria muy volátil. Las tecnologías anticuadas, además de los trabajos y carreras de las personas que se estancan en ellas, se quedan atrás.

Más recursos técnicos de SabesComoHacerlo:

– Tough Tech: 10 aparatos robustos que irán a la distancia
– 5 predicciones para la mecánica del juego en 2011
– 3 cosas que hay que considerar cuando se contrata personal para un proyecto de desarrollo de software
– 6 grandes guantes para los amantes de los gadgets de pantalla táctil
– 10 aplicaciones web de Chrome para comprobar

Imagen cortesía de Flickr, e2.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *