unam trabajar software ser que proyectos para mexico manager management maestria integrador institute estudiar empezar como project-management projects project-planning

project management - trabajar - La mejor manera de comenzar un proyecto



project manager software (14)

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.

Cuando comienzas, ¿cuál es tu 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?


De 7 hábitos de personas altamente efectivas , 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 próximo 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.


Depende del proyecto: ¿qué tan grande es?

Si escribo el próximo clon del Bloc de notas, podría bucear, si quisiera rodar mi propio sistema operativo, requerirí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, por ejemplo 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 crea 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.


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


Para mis propios proyectos personales, simplemente me sumerjo en él. 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.


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

Repaso lo que aprendí de proyectos anteriores y lo anoto en varias categorías (''técnico'', ''promoción'', etc.)

Proyecto personal o no, siempre configuro el control del 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" quiero decir que si mantener dos documentos de texto con estas listas funciona para usted, eso es suficiente.

Espero que esto ayude.


Primero planifique 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.


Al igual que los demás, mis proyectos personales siempre tienen:

  • Un objetivo final
  • Una lista de tareas
  • Pequeñas unidades utilizables
  • Fuente de control

Como motivador adicional, trato de usar una tecnología que nunca antes había usado. Aprender algo nuevo generalmente se convierte en el mayor motivador para mí.


Estoy de acuerdo con el consejo ya dado de:

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

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

Me resulta difícil comenzar a construir algo cuando no tengo una idea clara de cómo debería 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 pasar muchas veces diseñando su arquitectura (porque seguramente tendrá que evolucionar a medida que construye y obtener retroalimentación sobre lo que funciona y lo que no funciona), pero teniendo un plano de cómo construir su producto basado en su arquitectura debería ser útil para planificar su progreso y establecer objetivos realistas .


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.


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 del control de código fuente también es importante. Toma 2 minutos para instalar SVN.



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.


Definir 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 más 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 a considerar qué 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 todos ellos.

ESO te mantendrá trabajando en tu 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 estás resolviendo problemas. Pero debes mantener el problema frente a ti. Compartir el problema construye comunidad. De eso se trata en realidad, ¿no?


Todo lo anterior, pero comienza a consolidar el plan en su lugar .....

Vaya por algunas herramientas SmartSheet - incluso si está trabajando por su cuenta, debe establecer algunas etapas y fechas yEd - y Graphity desde www.yworks.com