2008-09-13 14 views
24

Cuando está comenzando un proyecto de programación personal, ¿cuál es su primer paso? Estoy tratando de comenzar un proyecto, eso es solo una idea en este momento. Obtengo muchos de estos y me meto directamente en el código y después de un tiempo pierdo el interés o me olvido del proyecto.La mejor manera de comenzar un proyecto

Cuando está comenzando, ¿cuál es su primer paso? ¿planificas el proyecto? hacer un diagrama? escribe un código en papel? ¿Cómo comienzas un proyecto de una manera que sabes que tendrás éxito?

Respuesta

16

Lo único que funciona para mí: cree la implementación más pequeña posible que de alguna manera se pueda usar y luego úsela.

2

Para mis propios proyectos personales, simplemente me sumerjo directamente. Por supuesto, ninguno de estos ha sido lo suficientemente grande como para requerir algún tipo de planificación previa. Si esto va a ser un proyecto serio o una escala relativamente grande, siempre es una buena idea eliminar al menos lo que cada parte del programa debe hacer y una visión de alto nivel de cómo lo harán.

9

Paso mucho tiempo pensando en los diversos aspectos del proyecto incluso antes de tocar un teclado.

que pasar por lo que he aprendido de proyectos anteriores y anótelo en diversas categorías ('técnica', 'promoción', etc.)

proyecto personal o no, siempre que configurar el control de código fuente. Git, Mercurial of Bazaar son ejemplos de herramientas de control de código fuente que no son intrusivas porque no necesita configurar un servidor maestro. Simplemente escriba un comando simple para crear el proyecto, revise sus archivos, confirme. En el futuro, cuando estropees uno de tus archivos, podrás 'deshacer'

También configuré un sistema de tickets liviano para realizar un seguimiento de 1.issues y 2.ideas Por "liviano" I significa que si mantener dos documentos de texto con estas listas funciona para usted, eso es suficiente.

Espero que esto ayude.

0

Primero planee el esquema básico de la aplicación final. Las características más importantes, la GUI básica, el flujo de programas, etc. Luego, refínalo para que no tome demasiado al principio, elimine las funciones innecesarias y agregue qué más desea en la primera versión. Luego use ese esquema para comenzar una lista de tareas para crear la versión de trabajo más pequeña posible de su aplicación. Entonces es mucho más fácil agregar características adicionales y hacerlo completamente funcional.

11

De 7 Habits of Highly Effective People, Hábito 2: Comience con el fin en mente.

Con cualquier proyecto necesita un objetivo claro, un punto donde puede decir "he terminado". Un resultado claro le dará una dirección. Una vez que tenga eso, puede comenzar a planificar cómo llegar allí. El tamaño y la complejidad del proyecto determinarán la cantidad de detalles que su plan necesita, pero en general querrá sentir que avanza en contra de su plan con bastante regularidad.

Mi siguiente paso es esbozar un diseño de los módulos que se necesitarán y las API entre cada módulo. Si las API están limpias, probablemente los módulos sean correctos. Luego empiezo a implementar los módulos, probando a medida que avanzo.

1

Depende del proyecto: ¿qué tan grande es?

Si escribo el próximo clon del Bloc de notas podría simplemente sumergirme, si quisiera rodar mi propio sistema operativo necesitaría mucho más trabajo sin codificación.

Me gusta hacer muchos diagramas, la herramienta que uso para la mayoría del desarrollo es papel A4 limpio y un lápiz. Dibuje la interfaz de usuario, el flujo de trabajo, las clases básicas y cómo va a almacenar los datos; luego, la codificación es solo una forma legible por computadora de escribir lo que ya dibujó.

Control de fuente le.g. SVN es un par de pulsaciones de teclas/clics, por lo que la sobrecarga es baja y el beneficio es alto, es práctico para probar cosas y simplemente volver a un estado anterior si no funcionan.

Luego solo haga el prototipo más básico que funcionará; una vez que algo está yendo, es mucho más fácil entusiasmarse y agregar más. Si es abrumador, creo que el problema está resuelto en mi cabeza, y eso es suficiente.

0

Me gusta la respuesta de Maximillian ... para ampliar un poco, mis proyectos personales se desarrollan para resolver algo en lo que ya estoy trabajando. Entonces, cuando me canse de repetir el trabajo, prototiparé una solución. y luego úsalo. Si es lo suficientemente similar a uno de mis proyectos anteriores, tomaré todo el código que pueda y trataré de mejorar el nivel de mi trabajo, hacerlo más profesional.

El uso de Fusion de Source Control también es importante. Toma 2 minutos para instalar SVN.

2

Al igual que los otros, mis proyectos personales siempre tienen:

  • un objetivo final
  • una lista de tareas
  • pequeñas unidades utilizables
  • control Fuente

Como una motivación adicional , Trato de usar una tecnología que nunca he usado antes. Aprender algo nuevo generalmente se convierte en el mayor motivador para mí.

0

Si desea convertirlo en un proyecto de código abierto público, se supone que Producing Open Source Software es una buena lectura (disponible tanto en línea como impresa).

2

Fácil: no comience en todos los proyectos en los que es probable que pierda interés. Dedique más tiempo para asegurarse de que quiere comprometerse con una idea antes de comenzar cualquier trabajo.

3

Estoy de acuerdo con los consejos ya dados de:

  • Planificación de una implementación mínima que hace algo útil como una primera versión completa.
  • Tenga metas concretas sobre lo que quiere lograr para tener algo con lo que comparar su progreso.

También recomendaría comenzando con un diseño ligero de ustedes arquitectura general para que pueda tener una hoja de ruta de cómo construir su producto.

Me resulta difícil comenzar a construir algo cuando no tengo una idea clara de cómo debe verse, al menos en un primer nivel de descomposición. Piense en lo que necesita además de la funcionalidad: ¿alto rendimiento ?, ¿escenarios de extensibilidad ?, ¿cuáles ?: objetivos de usabilidad ?, ¿alta escalabilidad ?, ¿facilidad de implementación e instabilidad ?, etc. Pregúntese: ¿qué componentes tendré que construir en orden? para lograr esas cualidades arquitectónicas ?.

Y no me malinterpreten, soy un firme defensor del desarrollo de software ágil. No necesita gastar muchas veces en diseñar su arquitectura (porque seguramente tendrá que evolucionar a medida que construye y obtener comentarios sobre lo que funciona y lo que no funciona), pero tiene un plan de cómo construir su producto basado en su arquitectura debería ser útil para planificar su progreso y estableciendo objetivos realistas.

0

Si su proyecto personal es similar a un proyecto de código abierto existente, debería considerar contribuir a ese proyecto en su lugar. Un par de pequeñas contribuciones (correcciones de errores, etc.) son más valiosas que un proyecto a medio terminar.

3

Define el objetivo para el proyecto. Parece que estás buscando casi exclusivamente la solución y no el problema.

Un programa no es útil para usted ni para nadie a menos que resuelva algún problema. Escribir código para moverse es genial, pero parece que pierdes interés y te enfocas después de empezar, porque estás mirando el código, no el problema.

Dedica algo de tiempo teniendo en cuenta lo que te llevó a escribir este código. Medita en cómo otras personas pueden descubrir la misma necesidad, qué camino puede llevarlos a la misma frustración que trabajaste para resolver.

Luego, encuentre algunas de esas personas y ofrezca su solución (parcial), y generará interés y sugerencias entre todas.

ESO lo mantendrá trabajando en su proyecto. El interés del compañero, el compartir, incluso los desacuerdos: ¡son personas que necesitan software! No cree soluciones (software) que busquen un problema (personas). Comenzó con USTED, con su necesidad o deseo, pero se centró en el código y perdió el ímpetu para el proyecto.

La programación es mucho más divertida cuando se trata de resolver problemas. Pero debes mantener el problema frente a ti. Compartir el problema construye comunidad. De eso se trata en realidad, ¿no?

0

Todo lo anterior, pero empezar a cimentar el plan en su lugar .....

Ir para algunas herramientas Smartsheet - incluso si usted está trabajando en su propia debe establecidas algunas etapas y fechas de yEd - y Graphity de www.yworks.com

Cuestiones relacionadas