|
Desarrollador Independiente
Este artículo trata de abordar la problemática del ejercicio de la profesión independiente
Copyright © 2002 Ernesto De Spirito
Este artículo fue primero publicado en el Boletín para Desarrolladores de
Software
Índice
Introducción
Este artículo está destinado a desarrolladores independientes del
llamado tercer mundo. Si usted vive en el "más civilizado" primer mundo,
posiblemente no encontrará este artículo de utilidad, así que le
recomiendo no leerlo porque es acerca de una realidad diferente a la
suya.
En ediciones pasadas hemos estado hablando de los desarrolladores de
shareware, los desarrolladores de freeware, etc., pero ¿qué hay de los
desarrolladores independientes? La verdad es que una gran cantidad de
nuestros suscriptores pertenecen a este grupo, y algunos de ellos
solicitaron insistentemente un artículo dedicado a tratar los problemas
que un desarrollador independiente tiene que enfrentar... Bien,
intentaré hacer lo mejor que pueda aquí... Espero su retroalimentación
para publicarla en la próxima edición junto con la continuación de este
artículo.
¿Por qué trabajar como independiente?
Pregúntele a desarrolladores independientes y seguramente obtendrá estas
respuestas:
- "No tengo jefe"
- "No me gusta estar atado"
- "No me gusta el horario de oficina"
- "Me gustaría elegir la gente con la que trabajo"
- "No me gusta el salario de un empleo fijo"
- "No puedo encontrar un trabajo fijo"
¿Todas son ventajas?
Seríamos todos desarrolladores independientes entonces, pero no, no todas
son ventajas:
"No tengo jefe"
Sus clientes se convierten en sus jefes, aunque el trato y la
relación ciertamente es muy diferente, si entiende lo que quiero
decir, pero aún así tendrá un jefe.
"No me gusta estar atado"
Tenemos que convenir que ser independiente da a una sensación de
libertad que no se logra cuando uno tiene un trabajo fijo, pero aún
sigue "atado" a su trabajo y a sus clientes, y a veces pueden
atarle demasiado si se los permite.
"No me gusta el horario de oficina"
Los desarrolladores independientes generalmente terminan trabajando
más horas diarias que los que tienen un empleo fijo. Si usted desea
levantarse al mediodía y trabajar hasta 4:00 mañana, es cosa suya.
"Me gustaría elegir la gente con la que trabajo"
El ambiente de trabajo en muchas empresas no es precisamente el
mejor. Si usted ha trabajado en uno de esos lugares, no tengo que
decirle qué son capaces de hacer sus compañeros de trabajo para
"asegurar" su puesto de trabajo o ser ascendidos... Al ser
independiente usted puede elegir la gente con la que trabaja, pero
ciertamente no puede elegir la competencia...
"No me gusta el salario de un empleo fijo"
Un desarrollador independiente puede llegar a ganar más que uno que
tiene un trabajo fijo, pero no tiene asegurado un ingreso mínimo,
beneficios sociales, vacaciones pagas, etc., y a veces incluso es
difícil conseguir que le paguen.
"No puedo encontrar un trabajo fijo"
¿Puede ser cierto acaso que en la era IT un programador no pueda
encontrar un trabajo??? Seguro, ¿por qué no? Mientras que algunos
países "importan" profesionales IT, en otros hay más profesionales
que trabajos y esos profesionales no pueden encontrar trabajos en
otros países por una razón u otra. Como sea, los desarrolladores
independientes no tienen el trabajo garantizado. Por otro lado, se
estima que en
el 2002 el principal empleador en los EE.UU. no será Microsoft,
General Motors o ninguna otra gran corporación. ¿Sabe usted quién
será el principal empleador en los EE.UU.? Uno mismo. Y esto no
sucederá solamente allá, sino que es una tendencia global.
Como un trapecista sin red
No es fácil ser desarrollador independiente. Como desarrollador independiente
uno no tiene la seguridad que da un trabajo fijo, no solamente en
términos de un sueldo fijo, sino también en términos del respaldo que la
empresa que le emplea puede darle y el apoyo que sus compañeros de
trabajo pueden darle.
Mientras que unos pocos desarrolladores independientes tienen éxito, la
gran mayoría trabaja mucho para terminar contando los centavos. Está
bien, estoy exagerando, pero la verdad es que la mayoría de los
desarrolladores independiente sienten que su trabajo está subvalorado y
mal pago... y tienen toda la razón en sentir eso. :(
¿Por qué el trabajo del desarrollador independiente está tan desvalorizado?
Muchos colegas dicen que es porque la gente no ve que trabajemos y/o
piensan que el trabajo es fácil, que la computadora lo hace todo por
nosotros o algo parecido. Si necesitan cambiar el ventilador ("cooler")
de la CPU, llaman un técnico, el tío viene, abre la máquina, procede a
substituir la pieza defectuosa por una nueva, testea la nueva pieza,
vuelve a poner la cubierta y se va en menos de una hora. Y la mejor
parte es que él pide $ XX por ese trabajo y logra ser pagado sin quejas.
¿Por qué? Simplemente porque vieron al tío hacer sus cosas y reconocen
eso como trabajo. Para los desarrolladores independientes, la situación
generalmente es diferente. Nos llaman para hablar con nosotros sobre lo
que desean, entonces nosotros nos entrevistamos con toda la gente que
será afectada por el proyecto, después vamos a casa, desarrollamos la
aplicación, y cuando la tenemos lista vamos a instalarla. ¿Cuánto
trabajo era ése? Ninguno. El cliente nos vió solamente hablar todo el
tiempo (no reconoce eso como trabajo), después jugamos el solitario en
casa y luego regresamos para poner un disquete --otra demostración de
cuán duro es nuestro trabajo! :-) Encima de todo, ¿qué sucede si algo no
funciona? Para el cliente es otra prueba de nuestra incapacidad, otra
razón por la que no debería pagarnos ni un centavo por no hacer nada, y
mucho menos por hacerlo mal! :-)
Dejando la exageración y las bromas de lado, la realidad es que debido a
la ignorancia y otros factores culturales, a menudo nuestro trabajo no
se reconoce como especializado, calificado o profesional.
Pero hay otros factores económicos, sociales y culturales que crearon un
círculo vicioso difícil de romper. Permítame explicarlo. Nuestras casas
de altos estudios producen profesionales que no pueden encontrar un
trabajo debido a la situación económica, y que tan inexpertos como son
intentan ingresar al ya sobrepopulado mercado del desarrollo independiente.
Una ley del mercado dice que demasiada oferta y poca demanda
hace bajar los precios, y eso es lo que sucede. Los desarrolladores
independientes inexpertos están listos trabajar para una remuneración
muy baja, la experiencia es el valor verdadero para ellos, y consiguen
trabajos independientes porque la situación económica lleva a la
pequeña y mediana empresa a preferir barato sobre bueno. El resultado es
que muchos profesionales sazonados terminan trabajando por una baja
retribución porque no pueden competir de otra manera con sus colegas
más jóvenes. ¿Qué clase de trabajo puede realizar una persona desmotivada
y mal remunerada? ¿Qué clase de trabajo puede realizar un
desarrollador inexperto?
Al final, la calidad global del trabajo de los desarrolladores independientes
se ha deteriorado significativamente, dándole la razón a
aquellos clientes que piensan que nuestro trabajo no es profesional. Y
es así como hemos entrado en un círculo vicioso de desprestigio del cual
es difícil ver la salida.
Consejos para tener éxito en el trabajo independiente
Cuando uno tiene un trabajo fijo sólo se tiene que ocupar de hacer su
trabajo, por ejemplo desarrollo, prueba y mantenimento de aplicaciones,
o lo que sea en que su trabajo consista... Alguien más se hace cargo de
los negocios, alguien más corre con los riesgos de negocio. Pero cuando
uno intenta ganarse la vida como desarrollador independiente, es uno
quien se debe ocupar de los negocios y correr con los riesgos comerciales,
algo para lo que generalmente no estamos preparados para hacer
simplemente porque nuestras universidades y otras instituciones de
educación superior se enfocan en la preparación técnica, dejando las
cuestiones de negocios a un lado. Estamos preparados para realizar un
trabajo técnico como programadores, analistas, etc., pero no para
dirigir nuestro propia empresa...
En el resto de este artículo intentaré ofrecer algunos consejos acerca
de cómo tener más éxito como desarrollador o consultor independiente,
pero la clave aquí es que mientras más uno aprenda sobre negocios y
mientras más uno piense en sí mismo y actúe como "Yo S.A.", más exitoso
será.
Poniéndose en los zapatos del cliente
Mientras más entienda usted a sus (potenciales) clientes, tendrá más
éxito al tratar con ellos. ¿Por qué deberían sus potenciales clientes
contratarlo a usted en vez de un competidor suyo? ¿Por qué deberían
pagarle lo que usted pide cuando otros piden mucho menos? Bien, usted
tiene que aprender como revalorizar su trabajo apelando a hechos y
sentimientos como un abogado que intenta convencer a un jurado.
Justifique sus precios
A los clientes se les hace difícil decidir a quién elegir para el desarrollo
de una aplicación hecha a medida, y no es completamente cierto
que por razones económicas eligen barato sobre bueno como mencionara en
la primera parte de este artículo. Esto es lo que parece a primera
vista, pero si uno escarba un poco bajo la superficie descubrirá que
eligen barato y desconocido sobre caro y desconocido. ¿Qué opción
elegiría usted?
Ahora, si usted le explicara a sus clientes por escrito, clara y
profesionalmente y con tanto detalle como sea posible por qué usted pide la
suma que pide, y si provee su curriculum vitae como que lo presenta como
uno profesional con "n" años de estudio y "n" años de experiencia, una
lista de clientes, una descripción de sus último trabajos y todo,
entonces la opción para los clientes será barato y desconocido (y
ciertamente no tan profesional como usted) contra caro pero profesional.
Este es un escenario mucho mejor.
Garantice su trabajo
La mayoría de los clientes están dispuestos a pagar un precio alto por
un software garantido que un precio bajo por un software sin garantía y
tarifas de mantenimiento altas o desconocidas, y hasta incluso bajas.
Además, para un cliente la forma más clara distinguir a un profesional
experimentado de uno sin experiencia es que el primero puede garantizar
la calidad de su trabajo, por lo menos por cierto período de tiempo,
mientras que el segundo tiene demasiada incertidumbre como para poder
ofrecer esta clase de garantía, o de otro modo tendría que inflar sus
honorarios demasiado para poder cubrir la garantía.
¿Qué debe usted garantizar? Básicamente, cuatro cosas:
Que usted acabará su trabajo dentro del plazo estipulado. Esto se
aplica si a usted se le paga por trabajo realizado en vez de horas
trabajadas, y la garantía consiste generalmente en una "multa" que
será deducida de su paga y que generalmente se expresa como un
porcentaje del monto total del proyecto, pudiendo por ejemplo ser
de un 1% para cada día de atraso...
Que su software está libre de errores de programación. Por supuesto,
la garantía sólo puede limitarse a la reparación por su cuenta y
cargo de tales errores cuando éstos sean descubiertos, y usted no
puede hacerse responsable por daños y perjuicios, etc.
Tiempo de respuesta. Por ejemplo que usted -o alguien designado por
usted- concurrirá a las oficinas del cliente a evaluar la situación
en el plazo de 24 horas de una llamada, y que cualquier error será
reparado dentro de las 48 horas siguientes.
Su tarifa por trabajos adicionales. El mantenimiento no es únicamente
reparar errores. Los sistemas necesitan ser actualizados, ampliados,
movidos, etc. A los clientes les gustaría conocer cuál es su oferta
de honorarios para los trabajos adicionales, por ejemplo $x/hora.
Proporcione tanta información como pueda
Nuestros clientes saben como trabaja un contador o un abogado y cómo
facturan sus servicios, pero ¿qué hay de un analista-programador? La
gente no sabe realmente mucho sobre nuestro trabajo y cómo determinamos
el costo de una aplicación. En parte es nuestra culpa por no explicarles
en términos simples y no técnicos como trabajamos y nuestros parámetros
tasación.
Sería de lo más profesional darle a nuestros clientes un documento
escrito que explique como trabajamos, qué esperamos de ellos (como
disponibilidad para las entrevistas), qué deberían esperar de nosotros
(como los informes sobre la marcha de los trabajos y los documentos al
final de cada etapa del proyecto), nuestros términos y condiciones de
servicio y nuestra política de precios.
No espere a que sus clientes le pidan un informe sobre la marcha de los
trabajos. Hágales saber desde el primer momento que recibirán dichos
informes sobre una base periódica.
Poniéndose en sus propios zapatos
Es muy bueno que usted se ponga del lado de su cliente puesto que esto
lo ayudará a crear un puente de empatía y confianza entre ustedes dos,
pero la calzada de ese puente debe circular en ambos sentidos. De la
misma manera que como profesional debe velar por los intereses de su
cliente, usted debe también velar por sus propios intereses.
Logre que le paguen
Si usted espera que le paguen cada semana, cada dos semanas o cada mes,
más vale que tenga un contrato que así lo establezca. De otro modo su
cliente puedo asumir que él tiene que pagarle solamente sobre la
terminación del proyecto, y en muchas partes del mundo legalmente
tendría razón. Normalmente usted no puede estar sin cobrar por un
período tan largo de tiempo, y en el tercer mundo tiene que agregarle el
riesgo de que ni siquiera le paguen una vez que haya entregado la
aplicación.
Por estas razones la única solución es un contrato escrito que le
asegure que a usted deberá pagársele en ciertos puntos (semanalmente,
mensualmente, basado en reportes de progreso o cuando sea). El contrato
debe garantizarle que ante el primer incumplimiento del cliente usted
puede rescindir el contrato sin más. Un cliente en problemas financieros
no es un cliente.
No otorgue descuentos
Pedir descuentos es una práctica normal de negocios. Los desarrolladores
exitosos no hacen descuentos (a menos que hayan inflado deliberadamente
sus presupuestos ;) Usted debe hacerle entender a sus clientes que no
puede efectuar ninguna rebaja en el precio porque ya es una ganga para
algo que solucionará sus problemas. Grábese estos mensajes en su mente y
"presione 'Play'" cuando alguien le solicite un descuento:
"He estudiado 'n' años en la universidad, y aparte de eso me he
capacitado 'n' años por mi cuenta, he atendido varios congresos y
seminarios, y tengo 'n' años de experiencia en el campo laboral. Un
profesional con mi curriculum no puede cobrar menos de lo que estoy
cobrando..."
"Si alguien me pidiera que tradujera la Enciclopedia Británica, ese
trabajo me tomaría toda una vida, y consiguientemente tengo que
ganar lo suficiente para vivir toda una vida. Por razones obvias no
podría hacer ningún descuento. Ahora, este trabajo me tomaría 'n'
meses, así que tengo que ganar lo suficiente para vivir por 'n' meses.
Y si usted piensa lo que le estoy cobrando demasiado por 'n', tiene
que considerar que nosotros -los desarrolladores independientes- no
tenemos sindicato, ni salario mínimo, ni beneficios sociales, ni
vacaciones anuales pagas, etc., pero cada mes tenemos que pagar el
alquiler, pagar las cuentas y pagar impuestos, así sea que tengamos
trabajo o no. También necesitamos tener dinero para actualizar
permanentemente nuestros equipos y software, y tenemos que poder pasar
una cantidad considerable de tiempo aprendiendo cosas nuevas para
estar al día con los continuos avances de la tecnología para poder
seguir trabajando. Además doy garantías por mi trabajo y corro todos
los riesgos si algo sale mal. Lo que le estoy cobrando es una ganga.
No puedo hacer ningún descuento sobre eso..."
Algunos clientes son persistentes e insisten en pedir un descuento. Si
usted se rinde, algunos inescrupolosos -de los que puede encontrar
muchos en el tercer mundo- lo tomarán como que usted es débil, inseguro
y falto de confianza en sí mismo, y que simplemente con insistir ellos
podrán conseguir cualquier cosa de usted. Otorgar un descuento es sólo
el primer paso. El siguiente paso es que le pedirán algunos "pequeños"
trabajos adicionales (gratis, por supuesto) y cuando usted acabe todo el
trabajo, ellos le dirán que pagarán después que usted haga un par de
"pequeños" trabajos adicionales...
La moraleja de la historia es: NUNCA CEDA. Si realmente no pueden pagar
lo que usted pide, entonces es muy probable que no lo puedan afrontar
ni siquiera con un descuento, y esto significa que es muy probable que
al final directamente no le paguen. Una vez más, un cliente en problemas
financieros no es un cliente.
Así que, ¿qué debe hacer si le insisten en un descuento? Niéguese y si
es posible ofrezca una solución alternativa si es posible: la aplicación
quizás se pueda podar para acomodarse al presupuesto del cliente. Y no
se olvide de mencionar que seguramente pueden conseguir un precio mejor
de un estudiante o de un desarrollador inexperto...;) Déjeles su tarjeta
y déjelos pensar. No pierda más tiempo con ellos.
Supongo que en el "Manual del Exitoso Hombre de Negocios" una de las
reglas es dar algunas indirectas para hacer creer a los potenciales
contratistas que después del primer contrato, otros seguirán, con el
mismo cliente o con otros clientes. Pensando en las oportunidades que un
contrato les dará, algunos desarrolladores desinflan sus presupuestos
para conseguir a ese cliente, creyendo que después van a tener trabajo
por un largo tiempo... Usted es inteligente, no caiga en esta trampa.
Por lo general no siguen otros contratos, y si lo hacen, también serán
"baratos", ¿o acaso piensa que más adelante podrá subir el precio
después de darse la fama de ser "barato"?
Condúscase como una empresa
Como dijéramos en la introducción de este artículo, es fácil estar bajo
la nómina. Alguien más se hace cargo del negocio. Pero cuando usted está
por su cuenta, usted es una empresa unipersonal y es usted es quien debe
tomar hacerse cargo del negocio porque nadie más lo hará. He aquí
algunas cosas para que considere:
Una de las primeras cosas que debe aprender es como escribir cartas
comerciales. Cuando me olvido de pagar una cuenta recibo una carta que
me recuerda la deuda y que indica que si no pago para una fecha dada
me cortarán el servicio. Usted debe hacer lo mismo con sus clientes.
A propósito, aparte de cortarle el servicio, usted debe también
reportar la deuda de su cliente a las entidades de verificación de
crédito del mismo modo que cualquier empresa lo haría con usted cuando
usted no les pague.
¿Tiene tarjetas personales y papel membretado? Puede decir que esas no
son más que pequeñas formalidades, pero esas pequeñas formalidades lo
ayudan a definirse como una empresa.
¿Tiene formularios preimpresos? Cuando alguien le solicita que usted
le presupueste un trabajo, ¿dónde lo hace? Cuando entrevistando a
alguien, ¿dónde toma notas? Cuándo realiza un trabajo adicional,
¿dónde usted señala lo que usted hizo, cuántas horas que tomó y cuánto
dinero es eso? Cuándo alguien le solicita trabajos adicionales, ¿dónde
está la Orden de Servicio firmada?
Nunca espere demasiado para una cita. Si la persona con la que usted
tiene que hablar no está disponible y no lo estará en un tiempo
razonable (digamos unos 30 minutos), usted debe dejar un mensaje con
la secretaria (diciendo simplemente que usted estuvo allí), le deja su
tarjeta y se marcha. No permita que lo tengan esperando. Su tiempo es
demasiado valioso para eso.
Facture los trabajos adicionales inmediatamente. No espere hasta el
final del mes para mandar la cuenta de los trabajos adicionales
(aunque sí le puede dar ese plazo al cliente para pagarlos). Asegúrese
de incluir los trabajos adicionales en su contrato y que la falla en
pagarlos a su debido tiempo le permite terminar el contrato.
Nunca dé crédito. Los bancos están para eso. Si su cliente potencial
tiene buen crédito, puede pedir un préstamo bancario y con eso pagarle
a usted. Si le pide crédito a usted, entonces probablemente su crédito
no sea tan bueno. Por última vez: un cliente en problemas financieros
no es un cliente. Si un banco, con todos los recursos que tiene, con
una estructura financiera capaz de soportar grandes quebrantos, con
acceso a bases de datos de verificación de crédito, con abogados y
todo, no le prestan dinero a alguien, ¿por qué debería hacerlo usted?
|