Hablaré desde los dos lados de la mesa
Como desarrollador
Voy a querer limitar mi responsabilidad, por razones obvias. Quiero entrar, salir, que me paguen y pasar al próximo concierto. Los ciclos interminables de “pero tiene este problema o ese” van a reducir seriamente mi productividad e ingresos. Y como todos sabemos, el cliente no solo no siempre tiene la razón, sino que, por lo general, ni siquiera tiene una especificación firme de lo que quiere, solo una idea vaga. Entonces hay mucho espacio para la interpretación.
Entonces, esto es lo que hago. Y lo han hecho, desde los años 80. Hago que el cliente presente una declaración de trabajo. Describe con el mayor detalle posible y proporciona una “declaración de aceptación” definitiva: el proyecto se considera aceptado cuando el cliente lo dice, o cuando se puede demostrar de manera confiable que el programa , lo que sea viene primero .
- Estoy trabajando como desarrollador de software a tiempo completo y me gustaría ganar algo de dinero extra, ¿cómo puedo hacer eso?
- ¿Qué opinas sobre Google Code Jam distribuido?
- ¿Qué operaciones de sistemas y responsabilidades de monitoreo debe adoptar un desarrollador de software para un proyecto sin personal de operaciones tradicional?
- ¿Sugeriría el MacBook Pro 2017 o 2015 (ambos de 15 pulgadas) para un desarrollador?
- Actualmente estoy trabajando como desarrollador de software. En los últimos 2 años di alrededor de 30 entrevistas para ambos dominios. Pero pude despejar 2 entrevistas. Debido a esto, estoy empezando a pensar que no soy un buen desarrollador de software que conduce a una disminución del rendimiento, ya que me siento atrapado en mi empresa actual.
Ese es un paso clave. Si no hay una manera absoluta y no discutible de demostrar que el proyecto está hecho, es posible que el proyecto se prolongue para siempre, sin que se le pague por ello. Y sí, lo sé por experiencia personal. Nunca más. Y tampoco dejes que te pase a ti.
Después de eso, ofrezco un “acuerdo de soporte” que generalmente tiene algunos conceptos básicos: si hay una actualización del sistema operativo dentro de un período de tiempo X y se rompe el programa, lo arreglaré de forma gratuita. Si hay una actualización posterior que rompe el programa, lo arreglaré por una tarifa por hora que se indicará en el acuerdo. Si hay una necesidad futura de una mejora en el programa, agregaré eso a una tasa (una tasa más alta, claro) que también se indica en el acuerdo. Y si alguien más toca el código que no sea yo, las tarifas obtienen un 50% de múltiplos, al instante.
Aparte de eso, obtienen lo que en Texas nos gusta llamar la “Garantía de Oklahoma”: si se divide por la mitad, usted posee AMBAS piezas.
Como comprador contratante
Como he estado en el lado de la codificación de esta ecuación, busco lo que daría, si estuviera dando.
Insisto en que el código cumpla con mi prueba “entregable” y que continúe haciéndolo durante un período de tiempo, independientemente de las actualizaciones del sistema operativo, los cambios en los servicios de terceros, los cambios en las bibliotecas de terceros utilizadas por el desarrollador, etc. Nada irrazonable , generalmente 90 días.
Insisto en que hay una opción para obtener soporte prioritario si el programa deja de funcionar, a un precio que entiendo. Eso me permite evaluar si quiero dejarlo solo, profundizar y apoyarlo yo mismo, o entregarlo a otro recurso para mantener. Y “prioridad” significa, para mí de todos modos, “dejas lo que estás haciendo y vuelves a dejar que este tonto vuelva al aire AHORA”.
Insisto en que, como trabajo a sueldo, soy dueño de todo. El código. Cualquier IP que se haya creado al crear el código. Todo.
Insisto en un nivel apropiado de documentación. El código es la documentación definitiva, pero dependiendo de qué es y cómo funciona, y en qué medida se integra con otras cosas, quiero saber al menos el punto de partida para resolverlo.
Espero que esto haya sido útil