Consejos para Programadores de Forobeta

  • Autor Autor Think Big
  • Fecha de inicio Fecha de inicio
Hola [MENTION=35258]Think Big[/MENTION],

Gracias por todos los consejos que has aportado, no me cabe la menor duda que eres una persona seria, y como tal, quieres que los programadores se comporten como mínimo con la misma seriedad que tu.

Dicho esto, no estoy totalmente de acuerdo con todo lo que has dicho.

Think Big dijo:
- No te limites a lo básico. Hoy en día casi todos los programadores saben PHP, MySQL, HTML, CSS y JS. Cuando los sacas de ahí se pierden. El mundo de Internet avanza muy rápido y lo que hace 5 años se hacía con PHP, dentro de 5 años se va a hacer con NodeJS, lo que se hacía con MySQL, se hará con MongoDB o lo que se hacía con HTML, CSS y JS se hará con AngularJS por poner algún ejemplo. Existen otros lenguajes tipo Python, Ruby que también son interesantes. Si te diferencias del resto, podrás aceptar más trabajos y podrás cobrar más por tus trabajos.

Al ritmo que aparecen nuevas tecnologías, no es posible compaginar el trabajo con estar a la última, y además ser un experto en todas las tecnologías. Con esto no pretendo excusar a aquel que piensa que internet todavía está formado por páginas HTML totalmente estáticas con estilos inline. Otro ejemplo es todo el tema de las APIs, cada empresa crea la API para cubrir sus necesidades externas, cada una con sus peculiaridades y particularidades, pero vista una, vistas casi todas.
Para que no queden dudas, por supuesto que esta comparación la hago entre los mismos tipos de API, por ejemplo las REST, con esto no quiero decir que la API de Twitter y la de java funcionen igual.

Think Big dijo:
- Hay que ser meticulosos con lo que el cliente pide y no asumir cosas. Si el cliente es específico en lo que quiere, no vale entregar algo "parecido". Si tienes cualquier duda porque los requisitos no son claros, es mejor aclararlo antes con el cliente, en vez de programar algo y que luego no sirva. Por lo general, los clientes no son programadores por lo que es posible que pasen cosas por alto. Conviene aclararlo antes de empezar los proyectos. Por supuesto, no olvidarse de requisitos que el cliente ha pedido y que no están implementados en el componente software.

Respecto a este punto, desde luego que el hecho de entregar algo parecido, es no cumplir con las bases del acuerdo, esto es inexcusable. Pero aunque pueda parecer extraño, en muchísimas ocasiones el cliente no sabe lo que quiere. En estos casos hay que dar por hecho muchas cosas y presuponer cosas que el mismo cliente no sabe.

Cuento un ejemplo concreto, un cliente por temas estratégicos quería poner su web corporativa bajo el protocolo HTTPS, el mismo se encargo de contactar con la empresa VeriSign (Ya veis lo que le importaba el precio del certificado) y compro un certificado para un dominio único. Sin opción de wildcard ni nada parecido. En su web no tenia hecha la redireción de la versión www a non-www, o viceversa. Le pregunté en varios emails que versión prefería en su web, y si no hubiera tomado la decisión por el, ya le habría caducado el certificado esperando su respuesta.

Think Big dijo:
- Un portfolio de proyectos o de código es esencial. Si no puedo ver trabajos tuyos previos, me da igual que me digas que eres bueno en X o en Y. No te conozco y la única forma de saber si eres bueno, es viendo proyectos previos. Valoro mucho que el programador tenga mentalidad open-source, eso significa que le gusta programar y que no tiene inconveniente en programar gratis para la comunidad. Esto no quiere decir ni mucho menos que no le pague, que quede claro. La programación es una pasión, no debe ser una obligación para ganarse el pan de cada día. Si dispones de proyectos similares a lo que el cliente pide, suma muchos puntos a la hora de tomar una decisión.

Este es otro punto complicado, por temas de confidencialidad, muchos proyectos deben llevarse a cabo con discreción y profesionalidad. No cabe la menor duda que esto no pasará con todos los proyectos, pero es posible que se tenga experiencia en algún ámbito concreto y no pueda ser demostrable.

Con todo esto, la conclusión que saco es que [MENTION=35258]Think Big[/MENTION] cuando encarga algo a un programador tiene claro lo que quiere, y por lo tanto no tendrás que dar por hecho nada, pero lamentablemente esto no suele ser así. Creo que está bien dejar tu opinión por aquí, y muy seguramente en algún momento algún programador te habrá prometido cosas que no ha sido capaz de cumplir, pero no por eso, todos los programadores ni son, ni somos así. Reiterando lo que he dicho antes, y mirando desde mi punto de vista, no todos los clientes son como tú.

Un saludo,
 
lo mejor siempre sera trabajar bajo el entorno local o servidores de desarrollo (un xampp wamp), ya que el control del codigo es superior, depuradores de codigo,etc

en lo particular yo no subo sistema/script al remoto hasta que no este completado en mi servidor local, porque eso es 1 perdida de tiempo

ya en la etapa de Q&A es que se monta en el servidor de produccion para hacerle las pruebas finales y lanzarlo al publico

saludos

El problema de trabajar en local es que el cliente no ve el resultado final hasta que se ha completado el desarrollo y considero esencial dar feedback al programador en cuanto va acabando módulos de las especificaciones.
De esta forma, si hay algún error, se solventa mucho mejor antes que una vez desarrollado todo. Por eso comentaba lo del servidor externo.
 
El problema de trabajar en local es que el cliente no ve el resultado final hasta que se ha completado el desarrollo y considero esencial dar feedback al programador en cuanto va acabando módulos de las especificaciones.
De esta forma, si hay algún error, se solventa mucho mejor antes que una vez desarrollado todo. Por eso comentaba lo del servidor externo.

si el programador es bueno, podra configurar su intranet para exponer el server a WAM, y usar un hostname como no-ip y permitirle al cliente visitar el server de desarrollo 🙂

saludos
 
Interesante el planteamiento, muy prácticos los puntos, se agradece.
PD: seguro que a más de un programador le sirve para comenzar a ofrecer sus servicios!
 
Buenos puntos especialmente el del entorno de desarrollo que deben llevar el cliente y el programador que A medida que el programador avance el usuario vaya dando su feedback al respecto acabo de avanzar eso en la uní y la verdad la importancia se Nota.

Enviado desde mi PatataMovil Xperia Z3
 
Buenos tips, es mas o menos lo que se pone en practica a la hora de contratar a algun programador.
 
Me alegro que os haya gustado! Aquí aprendemos todos.
 
Me gustó mucho esta enriquecedora y honesta iniciativa, Think Different.

Aunque he de admitir que me parecen, desde mi punto de vista, puntos básicos que todo programador ya debería saber. ¡Estoy incrédulo al enterarme de que alguien tarde 3 días en responder! Yo pensaría que el interesado no demoraría ni siquiera una hora en responder. La comunicación es una de las bases esenciales.
 
Última edición:
¿En qué momento consideras bueno usar control de versiones? ¿Bitbucket tiene versión privada gratuita o es igual que GitHub que hay que pagar por alojar código privado?

En todo momento, eso y asegúrate que este bajo pruebas automatizadas (Unit Testing), estos dos aspectos son esenciales para un adecuado mantenimiento y expansión de un proyecto, por lo menos para los programas que corren en el servidor.
 
Gracias [MENTION=127525]jsstoni[/MENTION] había oído hablar de HipChat ya que son de la misma compañía que BitBucket. ¿Has probado Slack y te quedas con HipChat?

Ya trabajo en Scrum [MENTION=139393]eduardocque[/MENTION]

Respecto a desarrollos de proyectos en servidores externos, ¿qué opinión tenéis?

¿Es fácil desarrollar un proyecto web en un servidor de desarrollo y luego migrarlo al servidor de producción manteniendo todo el tema de URLs y bases de datos correctamente?

Otro aspecto del que te tienes que asegurar, el desarrollo siempre es en un entorno local, controlado, con datos falsos. Cuando el proyecto este listo, es cuando se instala en el servidor.

Siempre se divide en dos etapas: desarrollo y producción.
 
Encontrar un buen programador que cumpla en el foro es casi imposible, a mi me han robado varias veces , dinero perdido.... Pones un post y todos saben hacer de todo, te lo entregan en 15 días, luego ni 15 días , ni dinero, ni proyecto... Hay gente en el foro que dicen que son programadores y NO lo son ni de lejos... Estaría bien hacer una lista de PROGRAMADORES RECOMENDADOS...
 
y del sueldo? nadie habla?... cuanto se deberia cobrar y cómo ?
 
Hola [MENTION=35258]Think Big[/MENTION],

Gracias por todos los consejos que has aportado, no me cabe la menor duda que eres una persona seria, y como tal, quieres que los programadores se comporten como mínimo con la misma seriedad que tu.

Dicho esto, no estoy totalmente de acuerdo con todo lo que has dicho.



Al ritmo que aparecen nuevas tecnologías, no es posible compaginar el trabajo con estar a la última, y además ser un experto en todas las tecnologías. Con esto no pretendo excusar a aquel que piensa que internet todavía está formado por páginas HTML totalmente estáticas con estilos inline. Otro ejemplo es todo el tema de las APIs, cada empresa crea la API para cubrir sus necesidades externas, cada una con sus peculiaridades y particularidades, pero vista una, vistas casi todas.
Para que no queden dudas, por supuesto que esta comparación la hago entre los mismos tipos de API, por ejemplo las REST, con esto no quiero decir que la API de Twitter y la de java funcionen igual.

--

Un programador tiene que estar al tanto de las nuevas tecnologías, aprendiendo siempre. Al final te permitirá seguir siendo competente y a su vez te brindará valiosos conocimientos que puedes aplicar entre las distintas tecnologías.

No lo tienes que aprender todo al mismo tiempo, ve progresivamente: si ya sabes CSS, aprende SASS, si ya sabes HTML, aprende HTTP, si sabes PHP, aprende "object oriented", luego "design paterns", empieza a ver como lo hacen en otros idiomas y proyectos. Aprende a usar un "framework", aprende a manejar la consola de comandos. Si sabes español, aprende ingles, luego portugués, etc.

El conocimiento te brindara capacidades invaluables, y te brindará oportunidades que nunca antes habías imaginado.

Te lo digo yo, te lo dice un cliente experimentado (Think Different), y te lo dirán muchos más.

---

Este es otro punto complicado, por temas de confidencialidad, muchos proyectos deben llevarse a cabo con discreción y profesionalidad. No cabe la menor duda que esto no pasará con todos los proyectos, pero es posible que se tenga experiencia en algún ámbito concreto y no pueda ser demostrable.
---

Open Source. No sólo te aportará más experiencia, sino que te hará un nombre en la comunidad de tu tecnología, te permitirá tener un registro de tus capacidades (portafolio) y finalmente aportaras a la comunidad.
 
y del sueldo? nadie habla?... cuanto se deberia cobrar y cómo ?

Depende mucho de lo que se necesite, el tiempo necesario, los conocimientos del programador, la calidad del código etc.

Hay dos formas principales de cobrar, por proyecto o por horas. También se puede cobrar por Sprints o Milestones que son partes de un proyecto.
 
Tras varias entrevistas más, puedo asegurar que el principal motivo por el que no trabajo con más programadores no es ni la falta de experiencia ni los precios, sino la FALTA DE COMUNICACIÓN.

Es increíble la cantidad de gente que al principio bien y luego es que ni responden a Skype. No me explico cómo romper una relación comercial de la forma más tonta.
 
la gente no tiene palabra... y muchos no tienen ni los conocimientos para hacer los proyectos...
 
la gente no tiene palabra... y muchos no tienen ni los conocimientos para hacer los proyectos...

El hecho de que no tengan los conocimientos, se puede ver fácilmente con una entrevista bien hecha (siempre la hago antes de empezar a trabajar con alguien).

El hecho de que luego no sean serios o no respondan a los mensajes es algo que no puedes prever. Todo el mundo dice que está en Skype disponible las 24h y luego a la hora de la verdad, no es así.

No obstante, por cada buena contratación, se compensan tres malas desde mi punto de vista.
 
Exactamente me pasaba igual que a ti, dinero tirado, andar tras de ellos, usan refritos programados de otro cliente y te lo acomodan horriblemente y para colmo se enojan, si les pides un cambio a pero eso si, buenos pa cobrar 50,70 dls por trabajo, yo por eso mejor cuando necesito algo muy pero muy complejo que casi es php contrato un buen usuario con ya varios años aquí.

O bien le pido unos tips a los grandes expertos del php aquí en el foro, pero si tienes que ver a quien contratas porque si hay mucho amateur y esos te hacen perder dinero, tiempo y andar tras de ellos como si les pidieras un favor.


Yo lo que te recomiendo es aprender poco a poco php, así le estoy haciendo y vieras que ya me empiezo ahorrar dinero y dolores de cabeza que antes contratando seudo programadores php y quiero seguir aprendiendo php es muy indispensable para uno como blogger te ayuda a salir rápido de problemas webs y solucionar rápido detalles.
 
Interesante el tema, aunque hay un punto que no comparto.

- Cuando un programador decide aceptar un proyecto, tiene que tener claro que es capaz de realizar todo lo que el cliente pide. El proceso de aprendizaje, por lo general, se recomienda hacerlo en el tiempo libre, no en proyectos de clientes. Si hay algo del proyecto que no sabes, alguna API que no manejas o algún lenguaje de programación que no entiendes, piénsatelo dos veces antes de aceptar el proyecto. No es agradable la situación de que en medio de un desarrollo, un programador te diga que no sabe como usar cierta tecnología.

Es imposible saberlo todo, y si quieres un programador que se sepa un lenguaje de arriba abajo vas a tener que pagarlo, precios que tranquilamente podríamos hablar de 10.000€ por un proyecto a realizar en 3 semanas.

Yo me dedico principalmente a la programación android y si ahora viene un cliente y quiere una app con notificaciones push y yo nunca hecho ninguna no por ello voy a decirle que no. Se que es posible y se que tendré que investigarlo, y lo tendré en cuenta a la hora de estimar el tiempo de desarrollo.

Personalmente nunca diría que no a un trabajo a no ser que sea por que no maneje un lenguaje en concreto o tenga que realizar algo realmente complejo como para no saber afrontarlo. Por ejemplo he trabajado antes con streaming de audio y vídeo en entorno de escritorio pero un cliente quería que fuera P2P lo cual estaba completamente fuera de mis conocimientos.

- No te limites a lo básico. Hoy en día casi todos los programadores saben PHP, MySQL, HTML, CSS y JS. Cuando los sacas de ahí se pierden. El mundo de Internet avanza muy rápido y lo que hace 5 años se hacía con PHP, dentro de 5 años se va a hacer con NodeJS, lo que se hacía con MySQL, se hará con MongoDB o lo que se hacía con HTML, CSS y JS se hará con AngularJS por poner algún ejemplo. Existen otros lenguajes tipo Python, Ruby que también son interesantes. Si te diferencias del resto, podrás aceptar más trabajos y podrás cobrar más por tus trabajos.

Como ya ha comentado un compañero arriba, no se puede ser experto de todo, por mucho que a mucho les gusta decir que saben hacer de todo.


Y bueno en lineas generales tienes esa experiencia aquí por que tu estas exigiendo un programador de verdad, y al menos a mi parecer, aquí en su mayoría son personas que han aprendido de manera autodidacta o similar y aunque un titulo no te hace ni mejor ni peor programador, no te imaginas cuan útil y enriquecedor es asistir a unas clases donde unos profesionales te dan una base y unas pautas, ademas de ver y compartir código con el resto de compañeros cosa de la cual se aprende muchísimo.
 
Resubo este hilo porque me encontré de nuevo con gente no profesional que promote mucho y luego nada.

Gente que de primeras dice que te hace un trabajo y luego desaparece, gente que te entrega un trabajo diferente a lo que le pides, gente que te pide dinero por adelantado teniendo menos iTrader etc.
 
Atrás
Arriba