Qué tendría en cuenta para contratar a un buen desarrollador

por Fernando el 11/10/2013

Complicado tema. Complicado para quien quiere contratar a un buen desarrollador, porque no tiene los conocimientos suficientes para poder decidir y juzgar a quien entrevista, y complicado para el buen profesional, que ve la cara de incredulidad del cliente cuando le ofrece un presupuesto con un precio justo.

Si yo no tuviera ni idea de desarrollo de software, pero tuviera la necesidad de contratar a un profesional para que me hiciera una aplicación con la que gestionar o crear mi negocio, o para hacer realidad una idea, me fijaría, por orden, en los siguientes puntos.

 

¿Cuál es su portafolio? ¿Qué ha hecho antes?

Creo que esta parte es la más importante. Aunque no tengas ni idea de lo que supone desarrollar software, es muy seguro que tengas una idea muy general de lo que quieres hacer y cómo quieres que funcione. Seguramente que por inspiración de haber visto otros trabajos.

Poder ver qué otros proyectos similares ha realizado el desarrollador con el que estás hablando es fundamental. Te ayudará a hacerte una idea sobre cuán cerca estará de comprender y plasmar tu idea. Si buscas hacer algo muy simple y el desarrollador tiene proyectos de un nivel muy complejo, o buscas algo sofisticado y cuidado y los trabajos del candidato no cumplen con tus mínimos exigibles, está claro que no merece la pena seguir hablando. Sencillamente no es el candidato que buscas.

En este punto es fundamental entender que no se trata sólo de leer o ver lo que ha hecho el desarrollador. Se trata, fundamentalmente, de probarlo y usar aquello en lo que ha trabajado. Sólo así comprenderás si el nivel de exigencia y calidad de candidato se aproxima, se queda por debajo o supera lo que estás buscando.

Todo esto parece de sentido común, pero llama la atención cómo en las fases de búsqueda de un desarrollador se pasa a pedir un presupuesto sin indagar realmente en conocer y probar las cosas que éste ha hecho antes. Y en la construcción de software, guiarnos únicamente por el precio (bajo) es el mayor error que podemos cometer.

 

Referencias de otros clientes o compañeros de trabajo.

Si no conoces de nada al desarrollador y te ha presentado un portafolio de trabajos hechos para otros clientes, podrías perfectamente contactarles para pedirles referencias. Al fin y al cabo, esta práctica es común en las entrevistas de trabajo por cuenta ajena para puestos relevantes.

Preguntar a dos o tres clientes con los que haya trabajado el desarrollador, te dará una idea de cómo será su relación contigo en el trabajo diario y si, de nuevo, se ajustará a lo que buscas.

De esta manera, podrías dar respuesta a algunas preguntas que seguro te haces: ¿es alguien al que le gusta mantener siempre informado al cliente? ¿tarda en contestar los correos? ¿su planificación de tiempos se aproxima bastante a lo que de verdad tarda en tener el resultado? ¿es alguien proactivo encontrando soluciones a los problemas? ¿tiene un carácter difícil? ¿se hace entender bien? ¿el software que entrega tiene muchos errores?

Las preguntas serían aquellas que te ayuden, como cliente, a conocer si el desarrollador va a estar en sintonía con tu manera de trabajar.

 

Capacidad de escuchar y poner orden a tus ideas.

Has de saber y aceptar, como cliente, que desarrollar software no es como crear un producto físico en donde no hay casi lugar a la improvisación. En su lugar, crear software es improvisación en una gran mayoría de casos cuando no tienes una idea clara, concreta y probada de aquello que quieres realizar.

Y sólo se puede tener una idea clara y concreta si se dispone de un prototipo funcional, un vídeo que simule lo que quieres hacer o de un software, de la competencia o no, que directamente quieras copiar… o tengas una experiencia apabullante diseñando y hayas logrado plasmar en papel todos y cada uno de los elementos de tu software y el resultado para todos y cada una de las combinatorias que pueden suceder cuando lo uses.

Cuando, como cliente, no se tiene la capacidad o formación de especificar clara y escuetamente lo que se quiere hacer, cosa que sucede en el 99% de las ocasiones, el desarrollador tiene que hacer un complicado e importante esfuerzo para comprender lo que quieres hacer. Plasmando, después de varias reuniones e intercambio de correos, tus ideas a un nivel general primero y concreto después.

Es importante que antes de que el desarrollador se ponga a realizar el trabajo tengas la oportunidad de leer, en un documento lo más escueto y concreto posible, la idea que éste tiene sobre lo que tu deseas hacer. Si no existe nada, salvo conversaciones no escritas sobre el producto a realizar, lo normal es que todo acabe en caos.

Desconfía completamente de aquellos desarrolladores que no tienen dudas y de aquellos que no intenten dinamitar tu idea a base de preguntas en las que poner en entre dicho el diseño que tienes pensado. Un buen programador, cuando trabaja, piensa analíticamente en todas las posibles combinaciones de estados en los que puede estar aquello que desarrolla (la famosa pregunta “¿y qué pasa si…?”).

Un buen profesional del desarrollo te ayudará a poner orden a todas las ideas que tienes a través de un contrato – presupuesto que las recoja sin lugar a la ambigüedad. Desconfía de aquellos que sólo trabajen de palabra. Las palabras se las lleva el viento y tu, como cliente, necesitas tener plasmado, en algún sitio, que tanto tu, como tu desarrollador, habláis el mismo idioma.

 

Abierto a cambios e iteraciones sobre el diseño original.

Otro de los factores clave antes de decidirte por un desarrollador u otro es preguntarle sobre posibles modificaciones y/o ajustes al diseño original mientras se desarrolla el producto.

De nuevo, desarrollar software no es como crear productos físicos. La iteración y mejora constante con elementos no previstos inicialmente no sólo ocurre, sino que es deseable para que el producto sea lo mejor posible. Un buen profesional con experiencia sabe que eso es inevitable y debería de ser favorable e incluso proactivo. Trabajar con alguien que se cierre completamente a iteraciones y ajustes sobre los requisitos entregados no es un buen indicador.

Por supuesto, esto a ti como cliente no te va a salir gratis pues es tiempo adicional de trabajo. Pero el desarrollador, si es favorable a este esquema de trabajo, lo habrá tenido en cuenta de una forma u otra en su presupuesto porque sabe que eso ocurre en la inmensa mayoría de desarrollos de software que no son copiar algo que ya está funcionando.

 

Número de proyectos en los que trabaja simultáneamente.

El que un profesional pueda trabajar simultáneamente y, con el mismo grado de implicación, en dos proyectos es complicado. Le requiere un alto grado de compromiso intelectual. El que pueda hacerlo en más de dos proyectos empieza a rayar la locura.

En general, piensa favorablemente en aquellos profesionales que trabajan con un menor número de proyectos simultáneamente. A ti te dejará mucho más tranquilo saber que hay alguien que está dedicado exclusivamente a tu proyecto. Si el profesional es un autónomo piensa que, además de las tareas asociadas a tu proyecto, hay otras relacionadas con la propia actividad que necesita hacer como autónomo: búsqueda de nuevos proyectos, clientes anteriores que se ponen en contacto con el, su propia formación continua o el márketing.

De nuevo, no se trata de ponderar simplemente cuántas horas se dedica a un proyecto sino la calidad de las mismas. Cambiar de proyectos durante una misma semana exige un esfuerzo mental importante para recordar toda la estructura de un proyecto, sus requerimientos, sus particularidades, el código producido, ….

Como te puedes imaginar, la calidad cuesta dinero. No esperes que un profesional que está dedicado en exclusiva a ti te cobre lo mismo que otros que está trabajando con dos o más proyectos a la vez. Es de sentido común ¿no te parece?

 

Periodo de garantía.

El software, por su inherente complejidad, es muy difícil que esté exento de errores. Siempre puede existir alguna combinatoria de estados no probados, algún contexto de ejecución que da problemas y así un largo etcétera. Es obligación del desarrollador trabajar con metodologías que tiendan a reducir a cero los errores. De hecho, el desarrollador debería de sentirse sorprendido y hasta avergonzado cada vez que un cliente le comunica un fallo o un error.

Pero los errores son inevitables y a menos que tu, como cliente, tengas un dinero reservado para contratar a testadores profesionales o te encargues personalmente del trabajo intensivo en ese área, el software entregado muy probablemente tenga algún fallo de prioridad alta no detectado, algunos de prioridad media y unos cuantos de prioridad baja con los que se podrá convivir sin mayor problema.

Es por ello importante que el desarrollador que contrates te ofrezca un periodo de garantía en el que, a menor ritmo, salvo para errores de alta prioridad (aquellos que hacen que la aplicación se quede congelada, se cierre inesperadamente, haga acciones no deseadas y que alteren datos, muestre información incorrecta crítica y similares), vaya corrigiéndolos.

Si el desarrollador no te ofrece un periodo de garantía mínimo escudándose que su software no va a tener errores, desconfía.

 

Precio.

El precio es un factor clave y más, por desgracia, en España donde el desconocimiento generalizado de los clientes en relación al desarrollo de software, el intrusismo profesional de algunos y la picaresca y, a veces, chantaje profesional de otros campan a sus anchas.

Es evidente que si el candidato desarrollador tiene un portafolio de calidad, buenas referencias y es capaz de poner en orden tus ideas a través de un presupuesto que entiendes ya es un indicio claro de que te interesa y de que realiza una inversión económica activa en su formación. Si además es favorable a ir iterando el producto que estáis desarrollando sin cerrarse en el primer documento de especificaciones, trabaja en exclusiva en tu proyecto y te ofrece un periodo de garantía razonable te está demostrando que va a poner todo su empeño para que el resultado te haga lo más feliz posible como cliente.

Pues bien, todas estas garantías y cualidades que debe de tener un buen profesional defendidas en este artículo cuestan dinero.

¿Cuánto dinero? Es fácil, haz una lista de las cualidades plasmadas en este documento y empieza a identificar cuáles de tus candidatos a desarrollador las cumplen. Aquel que tenga el mayor número de ellas será el que fije el precio. Y sí, comprobarás que a mayor número de garantías mayor será también el coste de contratar al desarrollador. Tiene sentido ¿verdad?

 

Conclusión.

¿Qué esperabas? ¿contratar a un profesional freelance con garantías durante un mes o dos por 3.000€? ¿4.000€? ¿en serio? Cada vez que taches alguno de los puntos aquí defendidos no solo bajarás un escalón, además de considerable altura, en la calidad del producto que obtengas sino que, lo más importante, incrementarás la probabilidad de que tu proyecto nunca se termine o no sea lo que tu esperabas o tenías en mente.

Tú fijas, como cliente, el riesgo que quieres correr a través del precio que quieres (o puedes) pagar y los puntos de garantía que tiene que cumplir el candidato. Pero ya te adelanto que pedir peras al olmo nunca ha funcionado…

Por desgracia, no todo es tan maravilloso y automático como crear una lista de garantías y esperar que el desarrollador que contrates las cumpla y realice el software como tenías previsto. Encontrar el profesional que mejor se ajusta a tu manera de trabajar es complicado pero, al menos, buscarlo teniendo en mente lo aquí comentado hará que estés más cerca de hallar al mejor posible.

Escribe un comentario: