Hay mucho en esta pregunta, así que le daré una breve descripción, si tiene preguntas sobre una sección más específica, comente y agregaré más.
Por ejemplo, supongamos que a un cliente le gustaría un sitio web comercial, ¿qué programas y herramientas utilizaría? ¿Cómo comenzaría, qué etapas clave hay en el desarrollo?
Entonces, suponiendo que un cliente me encuentre y envíe una solicitud de un sitio, estos son los pasos que usualmente paso:
- Cómo hacerse físico después de la ingeniería mecánica
- Cómo prepararse para entrevistas en compañías de perfil VLSI como Qualcomm, Freecale, etc.
- ¿Qué función es mejor: ingeniero de seguridad para el sitio web de Amazon.com o desarrollador de software en Bloomberg?
- Si alguien está cursando una licenciatura de 3 años en comunicación de masas, ¿puede solicitar un CEED y otros cursos de diseño ofrecidos por diferentes IIT para la graduación?
- ¿Qué errores cometen a menudo las personas que esperan una futura carrera en programación de computadoras?
- Hable por correo electrónico: en este momento no me preocupa este cliente en particular. Hablaremos por correo electrónico y me daré cuenta de lo que pueden desear, analizaré las posibles opciones amplias (por ejemplo, CMS, funcionalidad básica, etc.) y descartaré mi tarifa actual y un posible costo. En general, cito más alto de lo que creo que realmente costará porque los problemas ocurren y esto empuja a los clientes que quieren ser baratos y me estafa. Finalmente, programo una hora y un lugar para reunirnos (generalmente trabajo localmente).
- Conocer y saludar : en este punto soy más serio sobre el cliente. Nos reuniremos cara a cara y discutiremos planes más detallados. Normalmente, redactaré mi contrato antes de esta reunión y lo traeré, y si estuve correcto en mi estimación anteriormente (y no han decidido cambiar demasiado desde entonces) tendré el costo incluido en el contrato. Dependiendo del cliente, firmarán el contrato o querrán que un equipo legal lo revise.
- Recuperar el contrato: una vez que un cliente ha aceptado mi contrato (que establece los precios, el cronograma de pagos, el cronograma de trabajo, los horarios de contacto, los honorarios legales y las asignaciones de cambio), hago que lo firmen y lo envíen. En general, no permito desviaciones de mi contrato, especialmente si no es algo que no puedo leer y comprender sin consultar a un abogado.
- Pago inicial y trabajo inicial: después de recibir mi pago inicial (el costo varía según el cliente y el proyecto total), comenzaré a trabajar en el proyecto. En general, abro mi cuenta de bitbucket a quien esté a cargo del proyecto y les doy acceso de solo lectura, para que puedan ver qué está cambiando cuando. También documento sobre la marcha, aprendí de la manera difícil con PHP, puede que sepa lo que hace su código ahora, pero no lo sabrá en dos meses. En cuanto a herramientas:
- Vim para edición de texto : los editores de GUI son para campesinos.
- Python / Django para sitios web : Python es mi amor. Lo juro, nunca me ha encantado la programación hasta que probé Python, y Django puede ser difícil de aprender (me costó entender la configuración del archivo estático de Django), pero vale la pena.
- uWSGI / nginx gateway y servidor proxy : uWSGI es, en mi opinión, el mejor y más fácil para Python, y nginx es incomparable.
- CentOS 7 para OS : estándar para Linux en la web.
- Bitbucket para git : control de versión privada ilimitado de forma gratuita.
- Mac OSX y Fedora para local : solía ser estrictamente OSX, pero últimamente no me han gustado muchas de las opciones de diseño y estoy considerando volver a una plataforma * nix.
- Pruebas funcionales y unitarias : también abogo por las pruebas funcionales y unitarias, después de comenzar me di cuenta de cuánto tiempo y esfuerzo se ahorra.
- BESO Y SECO: No son realmente herramientas, sino director de diseño. Son acrónimos que significan Mantener , implementar , imponer y no repetir, y he aprendido a respetarlos. Ahora mi código es (generalmente) extremadamente simple y casi nunca contiene repeticiones.
- Presentación del progreso y un servidor de preparación: una vez que tenga suficiente trabajo para mostrar, configuraré un proceso de implementación en una aplicación Django separada. En general, usará Fabric para conectarse a mi servidor remoto, configurar los directorios correctos, clonar en mi repositorio git, configurar nginx y uWSGI y reiniciar los servidores necesarios para cargar el nuevo sitio web. Esto me permite mover fácilmente todos los cambios de trabajo en vivo con un solo comando. Una vez que el servidor provisional está configurado, le envío al cliente un enlace al sitio, y posiblemente una breve explicación de cómo funciona todo.
- Revisiones temidas: ahora que el cliente puede ver lo que sucede, generalmente quiere involucrarse más (para bien o para mal). Ahora no me malinterpreten, siempre y cuando tengan preocupaciones válidas, está bien, pero mierda como “¡Quiero que aparezca más!” o “Quiero un negro más negro” no es de ayuda. Pero es por eso que mi contrato tiene una sección de permisos de revisión , por lo que puedo limitar lo que pueden cambiar o cobrar más por ello. Una vez que finalizan las revisiones y el cliente está satisfecho con el sitio, tomo mi pago final y muevo el sitio en vivo.
- Refactorización: después de que los clientes hayan terminado sus revisiones, reviso cada archivo y veo si puedo simplificar el código o documentarlo mejor.
- Adicionales: Hay algunos otros elementos con los que me he encontrado:
- Hosting : si el cliente aloja conmigo, les pido que firmen otro contrato acordando no poner nada ilegal en el sitio o en el servidor, y si lo hacen, no puedo ser considerado responsable de ello. También cubro un costo mensual (facturado trimestralmente, semestralmente o anualmente) y elimino avisos (si no se paga el sitio). También cubro los términos de servicio (por ejemplo, no ocupar más de un determinado GB de espacio en el disco duro, ancho de banda, etc.).
- Desacuerdo del cliente : si en algún momento hay un desacuerdo que queda fuera del contrato, si el cliente decide intentar violar el contrato, entramos en una mediación legal. El contrato tiene una sección que promete que el cliente pagará la mediación legal y todos los gastos legales si (el cliente) viola el contrato. Generalmente para esto, todo lo que tengo que hacer es llevar el contrato firmado a un abogado y mediador y hacer que el abogado envíe una ” carta redactada ” al cliente y eso resuelve la mayoría de los problemas.
- Cancelación : a veces sucede una mierda. He hecho que los clientes cancelen proyectos sin resentimiento de ninguno de los lados. Es por eso que construyo una cláusula de cancelación en el contrato. Mientras estemos a menos de la mitad del contrato, pueden cancelar sin daños ni reembolso. También he hecho que los clientes pasen del punto medio y necesiten cancelar, por eso solo cobro por hora de lo que considero que es la mitad del camino (o el cliente puede optar por pagar la cotización original). Pero a veces el cliente es un idiota con el que trabajar, y lo cancelo. Nuevamente, construí una “No ser una cláusula de Dick” (está literalmente etiquetada como esto en mi contrato) que establece claramente que si el cliente continuamente rompe el contrato o es malo, vulgar / odioso, o detiene la comunicación, puedo cancelar el contrato. y serán penalizados por la cláusula de cancelación y tendrán costos adicionales de “No ser una cláusula de Dick”. Los malos clientes también pueden optar por la mediación (con su dólar), pero esto rara vez sucede.
- Falta de pago: esto sucede una tonelada. He tenido tantos clientes que intentan no pagarme, y muchos más con éxito no me pagan. Es por eso que haces un contrato y lo cumples. $ 200 vale la pena que un abogado revise su contrato y sugiera ediciones, créame. Una vez que tenga un contrato, encuentre un buen abogado. Conozca y salude, la mayoría tendrá una consulta gratuita, si explica su situación, estarán encantados de tener su negocio. A partir de ahí, si los clientes intentan no pagarle, simplemente comuníquese con su abogado (a expensas de los clientes (¡asegúrese de que esté en el contrato!)) Y el abogado puede enviarle una ” carta redactada ” sugiriendo que paguen la factura o que se les retire a los tribunales. Para la mayoría de los clientes, esto los asustará en el pago.
¿Cómo lo haría para que los clientes puedan actualizar sus sitios?
Generalmente esto es parte de la discusión inicial. Algunos clientes quieren un CMS completo, a otros no les importa y necesitan un sitio barato que no se actualice mucho. Si quieren un CMS, construyo uno en el sitio (generalmente uso Django-CMS). A veces los clientes piensan que un CMS es demasiado y prefieren simplemente pagarme para actualizar su sitio correctamente. (Como comentario aparte, una vez tuve un cliente que odiaba a los CMS, una compañía le vendió un CMS que era terrible y no le explicó cómo usarlo, así que terminó con este sitio de aspecto terrible que tenía etiquetas que no coincidían ( del editor WYSIWYG) y ella lo odiaba, por lo que se negó a tener un CMS).
¿Cómo gestionas el SEO?
En general, les hago pensar en las palabras clave que desean y utilizan la herramienta para webmasters de Google para buscar otras palabras clave que generalmente se buscan con sus palabras clave. Luego les daré esa lista y les diré que la usen en el sitio. Si el cliente puede entender, también explicaré cosas básicas como usar etiquetas
, cómo funcionan las metaetiquetas y la etiqueta . Pero generalmente no hago mucho trabajo de SEO.
Demasiado breve!
Demasiado breve!