¿Cuál es la mejor manera de programar un proyecto de desarrollo web?

Este es un tema tan amplio con tantas variables que no estoy seguro de que pueda responderse adecuadamente en Quora. Como otros han mencionado, es una buena idea tener una idea básica de su IU primero. Wireframes puede ayudar con esto. Le permiten hacer un diseño básico sin entrar en el CSS y HTML real.

Luego, dependiendo del lenguaje de programación y la plataforma en la que codificará, es probable que desee planificar su código, como las clases / controladores de back-end y cómo se relacionan entre sí, o con su base de datos, y cómo funcionarán sus tablas estar relacionados el uno con el otro. Algunos lenguajes usan un enfoque de Código Primero, y otros usan un enfoque de Datos Primero, y algunos ofrecen ambos. Personalmente, prefiero Python / Django, que utiliza un enfoque de tipo Code First. Usted construye su modelo y deja que Django construya las tablas y las relaciones. Si eres nuevo en programación, te sugiero usar uno de estos tipos de marcos. Django para Python, o Ruby on Rails para Ruby sería una buena opción.

Así que creo que el mejor consejo probablemente sería utilizar la metodología Agile. Ahora es bastante común en el campo y funciona bien. Agile anima a las personas a trabajar en períodos de 2 a 4 semanas llamados sprints, y se centra en la idea de ofrecer funciones a los usuarios. Entonces, piensa en proporcionar una función al usuario final y planifica tareas para ofrecer esa función. La función se denomina ‘Historia de usuario’ o ‘Elemento de la cartera de productos’. Asignarías una estimación de “esfuerzo” sobre eso, que es una suposición sobre lo complicada que es la tarea. Es común usar números de Fibonacci para estimar el esfuerzo. Luego divides esa historia de usuario en tareas individuales. En otras palabras, qué tareas necesita completar para cumplir con esta función. En la tarea, calcula cuánto tiempo le llevará completarla. Entonces podrías poner ‘6 horas’ en la tarea. La historia del usuario es el registro principal, con una conjetura genérica del nivel de complicación de la función, y las tareas tienen una estimación de la cantidad de tiempo que cree que le llevará codificar la tarea. Por lo tanto, una historia de usuario puede, y generalmente lo hace, tener múltiples tareas adjuntas. Cuando se completan y prueban todas las tareas, la historia del usuario se considera terminada y la función se puede implementar en su próxima versión. (generalmente al final de tu sprint)

Digamos que desea agregar una función a su sitio para permitir que las personas dejen un comentario o algo. Tendría una historia de usuario con una descripción similar a “Como usuario, quiero tener la capacidad de dejar comentarios en la página de opinión”. Podría poner una estimación de esfuerzo de 5. Luego, podría adjuntar tareas similares a esta:

  • Configure el punto final “Publicar comentario” en SomeProject.SomeController. El ID de usuario y el comentario se deben proporcionar en la POST. 2 horas
  • Cree la tabla ‘Comentarios’ en la base de datos con clave externa para la tabla ‘Usuarios’. También debe contener un campo ‘DateOfComment’ (DATETIME) y un campo ‘Comentario’ (VARCHAR (MAX)). 1 hora
  • Agregue un enlace a la página de opinión, que proporciona un cuadro de texto para que alguien agregue un comentario. Tener un botón ‘Enviar’ y ‘Cancelar’. Conecte esto en el controlador angular ‘Opinion’ para alcanzar el punto final desde la primera tarea: 4 horas

Tienes la idea. En otras palabras, asigna tareas a la Historia de usuario para lograr una función en su sitio y planifica cada paso de esta manera.

Trabajar en sprints de 2 semanas, y tomar las cosas característica por característica, y tarea por tarea, le permite mantener un enfoque modular. Las cosas no te respaldan tan mal como el enfoque de la cascada, y te permite tener lanzamientos frecuentes. Ahora, si está comenzando desde cero, es posible que no pueda tener de inmediato un enfoque basado en funciones. Obviamente, primero tendrá que diseñar su base de datos, interfaz de usuario y estructura del proyecto, pero igual usaría los sprints de 2 semanas y un enfoque de tareas. Comience con un conjunto de funciones muy limitado para su lanzamiento inicial, y luego agregue funciones adicionales después de 2 semanas de manera rápida.

Sin embargo, como dije, este es un tema muy amplio y profundo, y sé que aquí no hay suficiente información para avanzar por completo si usted no posee algún conocimiento de esto. Si ese es el caso, realmente no hay otra alternativa que saltar y mojarse los pies. La razón por la cual este enfoque se llama ‘Ágil’ es porque pretende ser flexible. En otras palabras, puede ajustar aspectos de la metodología para adaptarlos a lo que funcione para usted, según sea necesario. Sin embargo, hay mucho más en Agile que no he mencionado aquí. Puede ser una buena idea leerlo un poco si no está familiarizado con él. Además, existen muchas herramientas para administrar sus Historias / Tareas de usuario. Encontraría uno, ya que te hará la vida mucho más fácil. Usamos TFS, pero hay muchos otros. Buena suerte

Mi consejo, sigue una metodología de desarrollo ágil

Específicamente la metodología SCRUM:

Scrum es un marco de desarrollo de software ágil iterativo e incremental para gestionar el desarrollo de productos. [1] [2] Define “una estrategia de desarrollo de productos flexible y holística en la que un equipo de desarrollo trabaja como una unidad para alcanzar un objetivo común”, [3] desafía los supuestos del “enfoque tradicional y secuencial” [3] para el desarrollo de productos, y permite a los equipos -organícese fomentando la ubicación conjunta física o la estrecha colaboración en línea de todos los miembros del equipo, así como la comunicación diaria cara a cara entre todos los miembros del equipo y las disciplinas involucradas.

Un principio clave de Scrum es su reconocimiento de que durante el desarrollo del producto, los clientes pueden cambiar de opinión sobre lo que quieren y necesitan (a menudo llamado volatilidad de requisitos [4]), y que los desafíos impredecibles no pueden abordarse fácilmente de una manera tradicional predictiva o planificada. . Como tal, Scrum adopta un enfoque empírico basado en la evidencia: acepta que el problema no se puede entender o definir completamente, centrándose en su lugar en maximizar la capacidad del equipo para cumplir rápidamente, responder a los requisitos emergentes y adaptarse a las tecnologías en evolución y los cambios en las condiciones del mercado .

Fuente

Hola
1. Diseño de interfaz de usuario
2. Seleccione el idioma con respecto a la meta de su sitio, como blog o negocios o compras
3. Seleccione MVC o CMS
4. Seleccione Base de datos como MySQL, MSSQL, MongoDB, …
5. Seleccione un buen servidor de alojamiento como Godaddy, DigitalOcean, BlueHosting, etc.
6. Seleccione un buen programador y líder y gerente de proyecto
Gracias
Eric de HK

Defina hitos con su cliente y programe el pago de parte del proyecto que se realizará en el momento de la entrega en algunos de ellos. Funcionará para usted (para que le paguen) y para su cliente (que puede estar seguro de que el trabajo se está realizando en consecuencia).

De esta manera, puede minimizar las pérdidas en caso de que una compañía / individuo poco ético decida no pagarle (lo más probable es que no acepten estos términos), y ayuda a generar confianza entre ambos.

Una cosa que debe pensarse cuidadosamente en este modelo es cómo manejará las correcciones después de cada entrega o los cambios en el alcance del proyecto.

¡Espero que esto ayude! =)

Definitivamente obtenga la línea de tiempo / fecha límite del cliente, porque eso determinará su cronograma de construcción.