¿Cuáles son los pasos para comenzar un proyecto grande, cuando todo lo que tengo es una gran idea? [cerrado]

49

Soy estudiante de ingeniería informática. He estado pensando en Cómo puedo manejar un gran proyecto. ¿Cuál debería ser mi primer paso para alcanzar mi meta de una manera más eficiente y efectiva?

Cuando se me ocurre un proyecto, no sé cómo debería empezar a trabajar en él. Muchas veces, simplemente lo ignoro. Sin embargo, ya no quiero ignorar mis ideas de proyectos.

Ahora, les pregunto a todos ustedes, ¿alguien puede compartir sus experiencias? ¿Cómo debo comenzar un proyecto cuando todo lo que tengo es una idea?

    
pregunta 6 revs, 5 users 71%user12654 11.10.2015 - 22:46

20 respuestas

63

Olvida la codificación y configura un entorno de desarrollo por un momento. Si desea embarcarse en un gran proyecto, lo primero que debe hacer es controlar el propósito y el alcance del proyecto.

Lo que recomiendo es abrir un procesador de textos y escribir un documento de "objetivos del proyecto". Describa de qué se trata la idea y el propósito general del software que desea escribir. Luego haga una lista de los objetivos de funcionalidad del proyecto. No me refiero a especificarlo, sino que describo las diferentes funcionalidades que el producto final debe admitir. Por lo tanto, si estuviera escribiendo un software para ejecutar una escuela, podría enumerar 'gestión de maestros' como una pieza de funcionalidad y luego describir qué incluiría esa funcionalidad (información de contacto de la lista, horario de clases, etc.).

Luego, la parte más difícil: no es algo que debas hacer justo al frente, sino a medida que avanzas. Tan importante como las características de la lista que desea agregar es revisar la funcionalidad que describió en su documento de objetivos, y anote las características en las que puede vivir sin en la primera versión del programa. Esto es clave para la gestión del alcance.
Una de las razones principales por las que las personas fracasan en proyectos más grandes es que no saben cuándo dejar de trabajar en ellos. No sienten que esté "terminado" porque las ideas siguen llegando y nunca se publican. Eventualmente, pierden interés, y tienes otra obra maestra a medio terminar. Por lo tanto, debe asegurarse de tener un buen manejo de la funcionalidad que es verdaderamente importante para lograr la parte básica de su objetivo. Ese es tu primer objetivo.

Así es como comienzo todos los proyectos no triviales ahora. Me ayuda a mantener el enfoque y ayuda a evitar que el alcance y el propósito "evolucionen" durante el desarrollo.

    
respondido por el GrandmasterB 08.12.2011 - 16:47
40

Creo que Linus ponlo mejor

  

Nadie debería comenzar a emprender un gran proyecto. Empiezas con un   pequeño proyecto trivial, y nunca debes esperar que se haga grande. Si   Usted lo hace, simplemente diseñará en exceso y generalmente pensará que es más   importante de lo que es probable es en esa etapa. O peor aún, podrías ser   asustado por el gran tamaño del trabajo que imaginas. Entonces empieza   Pequeño, y pensar en los detalles. No pienses en algo grande   y diseño de lujo. Si no resuelve alguna necesidad bastante inmediata, es   casi sin duda sobre-diseñado. Y no esperes que la gente salte y   ayudarte. Así no es como funcionan estas cosas. Necesitas conseguir algo   La mitad es útil primero, y luego otros dirán "hey, que casi   Trabaja para mí ", y se involucrarán en el proyecto.                                                - Linus Torvalds

    
respondido por el Rook 28.08.2011 - 02:51
12
  

¿Cuál debería ser mi primer paso para alcanzar mi meta de una manera más eficiente y efectiva?

Supongo que has hecho proyectos antes y que estás en una universidad que no enseña control de versión / fuente. Si desea ver algunos proyectos, siempre puede ir a repositorios de código abierto como Github (usa Git), Bitbucket (usa Mercurial), Google Code (usa Mercurial, Git y Subversion), < a href="http://www.codeplex.com/"> CodePlex (Mercurial and Subversion / TFS), SourceForge (Many), etc. y eche un vistazo a su código base. Lo que tienen en común es que están usando un software de control de fuente.

Hay mucha información sobre cómo usarlos, por lo que te sugiero que aprendas a usar esto, porque esta es una práctica estándar de la industria. Aquí hay algunas guías visuales para comenzar:

  

Sabes, cuando un proyecto se me ocurrió, no sé qué debo hacer. Muchas veces, lo ignoro.

Solo hay tanto que puedes hacer en tu tiempo libre. Comience con poco : cree un proyecto desde cero, póngalo en un repositorio de código fuente. Realice cambios en su repositorio de código fuente cada vez que desee agregar algo a su pequeño proyecto. Con el tiempo, se volverá grande y, si alguna vez desea volver, siempre puede revertir o revertir los cambios realizados con el sistema de control de versiones.

    
respondido por el Spoike 06.08.2011 - 00:39
5

Es perfectamente normal que el síndrome del "papel en blanco" te golpee.

Tienes un gran proyecto en mente, que se ve fantástico, pero cuando te sientas en el escritorio tratando de hacer algo, de repente bloqueas y no puedes hacer nada. Luego abres el solitario y creas un nuevo registro.

Realmente necesitas comenzar a hacer algo relacionado con el proyecto, para que sientas que nace.

Es posible que no desee escribir el código inmediatamente. Puede comenzar escribiendo lo que su proyecto realmente debe hacer, o le gustaría que lo hiciera. Toma un bolígrafo y un papel y empieza a escribir. Puedes empezar desde los detalles o desde una imagen más grande. Prueba ambos, ve qué es lo mejor.

Puede intentar definir las funcionalidades del proyecto, las diferentes partes, cómo se comunican esas partes entre ellas. Me siento cómodo con el post-it, son divertidos y puedes cambiarlos a medida que avanzas. Deja que sigan tu mente e ideas.

O tal vez puede iniciar prototipo alguna función o clases. Puede usar el idioma que prefiera para esto, incluso uno que no existe y que acaba de inventar.

Después de un tiempo, tendrás algo en lo que trabajar y tu proyecto no solo estará en tu mente. Realmente hiciste algo.

Cuando se sienta cómodo para comenzar realmente el proceso de desarrollo, es hora de planificar, documentar, crear prototipos, recopilar todas las tecnologías y software necesarios, etc., de manera cuidadosa.

¡Pero no empieces hasta que realmente sientas que sea el momento adecuado!

    
respondido por el Jose Faeti 25.08.2011 - 17:33
4

Los proyectos grandes se forman a partir de muchos proyectos o piezas más pequeños. Es posible que tenga una gran idea o requisito de proyecto, por ejemplo, una aplicación que administra los contactos.

Descomponerlo; pregúntese, '¿cuáles son las piezas más pequeñas que necesito para hacer esto?'

Una vez que hayas definido tus partes más pequeñas, repite; Es posible que algunas partes deban desglosarse aún más. La idea es que definas los objetivos más manejables para cada una de las piezas más pequeñas. Aprenda a usar principios disciplinados en el diseño y desarrollo (como Agile-TDD) y se cumplirán los objetivos más pequeños y manejables.

    
respondido por el IAbstract 05.08.2011 - 17:51
2

Crear un esquema

Tienes una gran idea, pero no sabes cómo vas a realizar tu tarea. Crea un esquema de lo que vas a hacer. Escriba los pasos que tomará, lo que necesitará, los idiomas que usará, etc. Asegúrese de tener todo organizado, o el proyecto será un completo desastre.

Programe sus pasos

He mencionado esto antes, pero es realmente importante. Si tiene tiempo programado, puede tener una fecha de finalización estimada de cuándo se terminará su proyecto y el tiempo que tomarán los pasos del proyecto. Esto es, nuevamente, organización y te mantendrá en funcionamiento.

Encuentre las herramientas para el trabajo

Si vas a comenzar un gran proyecto, necesitarás ayuda. Para la organización de códigos y un buen Sistema de control de versiones, Git es excelente porque mantiene todo su código en un solo repositorio. Para obtener más información sobre Git, consulte el enlace que le di.

También deberá asegurarse de estar usando idiomas que lo ayudarán a hacer lo que está tratando de hacer. Asegúrese de que puede crear su proyecto antes de comenzar. No estoy diciendo que no aprendas nada nuevo, pero aprende antes de comenzar.

Obtén ayuda

Los grandes proyectos no suelen hacerse solos. Póngase en contacto con sus compañeros, con las personas de su comunidad que pueden programar y con cualquier otra persona que crea que pueda ayudarlo antes de comenzar. No tengas miedo de preguntar.

¡Comienza!

No se agache, espere a que alguien más comience su proyecto y luego diga "¡Tuve esa idea!". Siempre te perseguirá ...

    
respondido por el Dynamic 25.08.2011 - 17:30
1

Tal vez esté lleno de clichés, pero ... lo enviaré.

Para poder manejar un gran proyecto necesitas principalmente una cosa: experiencia. La experiencia te da todo lo que necesitas:

  • Conocimiento: cuanto más tiempo invierte en proyectos, más conocimiento general y específico obtiene.
  • Confianza: la gestión de grandes proyectos requiere confianza, la confianza proviene del conocimiento y, en general, el hecho de que cada parte del trabajo es algo que usted ha hecho antes o que ha visto a personas que lo hacen
  • Red profesional: si el proyecto es realmente grande, tendrá que darse cuenta de que no puede lograrlo por su cuenta, así que prepárese para saber a quién puede preguntar o dónde puede encontrar la información clave que está buscando.

Así que puedes hacer dos cosas:

  • Sumérgete y ve cómo va. Probablemente cometerás muchos errores, pero la clave es aprender de ellos.
  • Obtenga un trabajo donde pueda observar específicamente a las personas que manejan grandes proyectos

Espero que eso ayude.

    
respondido por el Aston 05.08.2011 - 12:40
1

Mi definición de "gran proyecto" es "un proyecto donde el problema principal es la coordinación de los participantes y la comunicación entre ellos" (un proyecto mediano es cuando la administración es tan difícil como los problemas técnicos, uno pequeño es cuando los problemas técnicos son más importantes que el de la administración; tenga en cuenta que un proyecto a largo plazo para una sola persona puede ser un gran proyecto; coordinar y comunicarse con su futuro no es muy diferente a hacer lo mismo con otra persona).

El primer paso para poder manejar (con un "tener un rol principal") en un proyecto grande es participar en un gran proyecto sin tener un rol principal. El segundo paso es alcanzar el nivel de rol principal mientras recibe la asesoría de alguien que tenga experiencia con él.

Un enfoque alternativo es aumentar progresivamente el tamaño de los proyectos y aprender de su experiencia ...

    
respondido por el AProgrammer 05.08.2011 - 13:59
1

Algunas ideas están maduras para que un ingeniero simplemente salte y comience a escribir el código. Estos proyectos pueden ser grandes o pequeños, pero todos tienen algo en común: un problema bien definido que resolver. He iniciado proyectos como este en innumerables ocasiones, y solo es cuestión de que construya una disciplina en torno a escribir una buena documentación desde el principio, y de seguir las mejores prácticas con respecto al control, la comunicación y la colaboración del código fuente.

Los grandes proyectos para los que tengo todo el germen de una idea requiere un poco más de preparación en mi experiencia. Lo primero que hago es comenzar a hablar sobre mi idea con otros para ver si alguien comparte mi comprensión del problema que estoy resolviendo y para validar mi enfoque planificado para resolver el problema. Así que llévate a un amigo o dos a tomar una cerveza, o invítalos a tu dormitorio de Cheetos. Pero diviértase con este proceso porque es a través de este proceso que puede comprender mejor el problema que está resolviendo, encontrar otras ideas geniales que pueda aportar para resolver el problema, practicar la venta de su idea a otros y tal vez incluso comenzar a construir un Equipo de personas para ayudarte a resolverlo.

    
respondido por el Byrne Reese 05.08.2011 - 23:36
1

Divide las cosas grandes en cosas más pequeñas.

No puedes trabajar en "lograr la paz mundial". En su lugar, trabaja para prohibir las armas de destrucción masiva, fomenta la democracia, brinda ayuda para el desarrollo, fomenta el intercambio cultural y científico, etc.

    
respondido por el LennyProgrammers 25.08.2011 - 14:31
1

Creo que muchas de estas respuestas que no se mencionan son las que se hacen tangibles, y te obliga a hacerlo.

A veces te quedas atascado en la 'tierra del pensamiento' donde sientes que todo lo que queda es el tedio de escribir cosas, pero en realidad comienzas en una porción de tu proyecto y la implementación es divertida y desafiante.

Conozco a muchas personas que son así, incluyéndome a mí, hasta que me ponga en marcha, no puedo hacer nada, no puedo, solo, pensar y planear comenzar un proyecto. Tengo que elegir una pieza que pueda implementar fácilmente, y llegar a ella y luego comienza el flujo.

    
respondido por el Matthew Blanchard 26.08.2011 - 12:03
1

no hay razón para hacer nada sin un propósito. Necesita historias de usuario que muestren la necesidad del código que desea escribir. Debe enmarcar estas historias de usuario en el siguiente formato:

Como [X]
Quiero [Y]
de modo que [Z]

Esto puede parecer demasiado simplista, pero le brinda el marco no solo para definir al usuario, sino también para especificar la necesidad y el resultado final en una sola frase. Tendrás muchos de estos. Va a llegar a más a medida que avanza el tiempo. Una vez que tengas algo, puedes comenzar a desarrollar tu código. Cuando tengas más ideas o imagines otras cosas. Regresa y escribe más historias de usuario para no olvidarlas. Ese es el mejor lugar para comenzar.

Behavior Driven Development utiliza este enfoque y el sitio en el enlace tiene varios ejemplos de cómo usar este formato para expresar historias de usuarios.

Creo que será la forma más rápida y organizada de pasar de la idea al código.

    
respondido por el Charles Lambert 28.08.2011 - 04:23
1

Agarraría una pila de notas adhesivas amarillas y un marcador mágico y me sentaría en una habitación donde hay una gran pizarra blanca para que pueda hacer una lluvia de ideas.

Simplemente comenzaría a escribir frases sencillas que me vinieron a la mente, como Menú principal, Informes, Base de datos, Autenticación, etc. Las pegaría en la pizarra y solo miraría y obtendría más ideas, por ejemplo, cómo El menú debería verse:

Abrir archivo, Guardar archivo, Guardar archivo como, Imprimir, etc. y pegarlos en la pizarra en el menú principal.

A medida que surgen ideas en tu cabeza, escríbelas ... bueno, malo, estúpido, lo que sea, simplemente se vuelve creativo. Pégalos en el tablero. Al mirar la pizarra, surgirán más ideas y surgirán patrones. En algún momento, comenzará a tener una idea de lo que planea desarrollar.

Los stickies amarillos son excelentes, se pueden mover con bastante rapidez.

Una vez que las cosas comienzan a unirse, divides estos pensamientos en grupos. Entonces puedes hacer una lluvia de ideas a un solo grupo. Tomaría fotografías de la pizarra blanca en varias etapas en caso de que quisiera ver cómo se veía hace veinte minutos antes de que las cosas cambiaran.

Eventualmente, tendrás una idea bastante buena de las principales partes de las cosas que hay que hacer. Puede obtener una sola carpeta para cada uno de estos trozos y seguir lanzando ideas en ellos a medida que vayan llegando a usted.

    
respondido por el Michael Riley - AKA Gunny 10.09.2011 - 03:35
0

Ya que eres un estudiante, voy a asumir que te refieres a estudiantes grandes y no a grandes profesionales. Este último requiere consideraciones adicionales de negocios y colaboración. Acabo de comenzar un nuevo proyecto la semana pasada, por lo que el proceso está fresco en mi mente.

Lo primero que hago es investigar las soluciones y bibliotecas existentes . No me gusta reinventar la rueda siempre que sea posible. Esta investigación también es un factor importante en la elección de un idioma para el proyecto. Algunos idiomas tienen mejor código existente para ciertas tareas.

Lo siguiente que hago es crear una carpeta y ponerla bajo el control de código fuente . Esto es tan simple como un git init . hoy en día.

A continuación, hago que "hola mundo" funcione . Esto me permite saber que mi entorno de desarrollo está configurado correctamente.

A continuación, obtengo "hello world" para bibliotecas de terceros trabajando . Este es el mínimo necesario para mostrar que estoy enlazando y usando la biblioteca correctamente. Para una biblioteca de base de datos, es conectar y ejecutar una consulta simple, por ejemplo. Para un kit de herramientas GUI, está mostrando una ventana.

A continuación, configuro los scripts de compilación y los marcos de prueba . Esto es ant o makefiles o lo que sea, y es mucho más fácil de configurar cuando tu proyecto aún es pequeño.

A continuación, creo estructuras de datos . También llamada la capa "modelo". Esta es la parte que almacena todo lo que su programa necesita recordar para hacer su trabajo. Hago un montón de diseño en papel, luego simplemente agrego los talones. Esta parte del diseño suele ser la más fácil. Por ejemplo, un programa de ajedrez necesitará objetos para almacenar la cuadrícula del juego, los jugadores, las piezas, las secuencias de movimientos, etc.

En este punto, tengo una base bastante buena para un programa y generalmente es bastante obvio cuál será el próximo paso para ese proyecto en particular. Luego simplemente lo hago paso a paso, con un código que funciona en cierta medida a lo largo del camino.

    
respondido por el Karl Bielefeldt 25.08.2011 - 17:19
0

Si todo lo que tienes es una "gran idea", necesitarás muchas cosas (que están muy bien descritas en otras respuestas), y particularmente estas 2: tiempo y motivación. .

La mayor dificultad cuando trabajas solo en un proyecto personal es que, por lo general, no tienes mucho tiempo para dedicarle a él todas las semanas y, por lo tanto, no ves mucho progreso y comienzas rápidamente a perder la motivación.

Así como ya se ha dicho, da pequeños pasos , esa es la clave.

Pero esto no es todo, ¡tienes que dar pasos pequeños y gratificantes ! Es decir, los pasos que le brindarán el mayor valor y demostrarán los conceptos clave de su gran idea.

Por ejemplo, si trabaja en un nuevo software de súper lista de tareas con excelentes interacciones de usuario . No empiece con el almacenamiento y la base de datos hasta que realmente lo necesite. Comience con la innovadora interfaz de usuario: eso es divertido y tiene valor. Eso te hará sentir orgulloso, te mantendrá motivado y te permitirá verificar muy pronto si tu idea es realmente buena.

    
respondido por el David 25.08.2011 - 18:19
0

Lo primero que debe hacer es sentarse y describir esa idea por escrito. No se convertirá en un proyecto hasta entonces, e incluso entonces, tienes algo de trabajo para convertirlo en algo tan efímero como una idea a algo tan tangible como un proyecto.

Una vez que haya llegado tan lejos, puede comenzar a convertirlo en un proyecto, identificando cómo podría desglosarlo en pasos discretos que se pueden implementar de una manera lógica.

Luego delinee una línea de tiempo para implementar esos pasos. Revise el progreso a intervalos determinados para que retenga algo del control de ese proceso, en lugar de tener ideas progresivas en las que nunca haya pensado y agregarlas a la mezcla.

Identifique una línea de meta inicial y apunte para eso. Cuanto menos se adhiera a eso, más probable será que el proyecto se hunda por debajo del peso de las ideas adicionales, y más desanimado podrá obtener acerca de completarlo, ya que parece vivir para siempre.

    
respondido por el temptar 26.08.2011 - 12:11
0

El esfuerzo del código suele ser alrededor del 20% (+ -10%) del presupuesto del proyecto. Enfocarse en obtener el código correcto no tiene sentido, hay un 80% del esfuerzo que no ha abordado, por lo que obtener una gestión perfecta del código todavía lo deja con solo 20 de los trabajos realizados.

¿Qué pasa si tu proyecto no tiene usuarios? ¿Qué pasa si es perfecto, pero publicado una semana después del archivo "Acme Patent Trolls" para una patente sobre la idea, y resulta ser el próximo Facebook?

Observe los siguientes problemas estándar del ciclo de vida del proyecto Requisitos, diseño, código, prueba, integración, implementación, seguimiento y corrección de defectos, gestión de cambios de requisitos (solicitudes de mejora). Planes de liberación, asignación de recursos (cuantas horas por día planea hacer y qué hará en el proyecto), Legal (Freedon para operar) etc.

Si todo lo anterior está en su lugar, incluso un código muy malo tendrá éxito. Si nada de lo anterior está en su lugar, el mejor código fallará.

No soy un apostador, pero le pondría dinero. Tu primer proyecto "grande" fracasará, de muchas y variadas formas que no puedes imaginar. No te preocupes, sigue adelante y fracasa, aprende de ello y haz lo siguiente. No empezar sería el verdadero crimen. Si tiene éxito por primera vez, tiene una sólida carrera en administración de empresas, no en programación.

Entonces, para responder a su pregunta, guarde las herramientas de software y saque sus herramientas de "planificación de negocios". Calcule POR QUÉ lo está haciendo, porque QUIÉN entonces, POR QUÉ y CUÁNDO lo quieren. (Puedes ser tu propio cliente, pero haz el ejercicio de todos modos). Escribe esto en un "plan de negocios" y construye a partir de ellos.

    
respondido por el mattnz 28.08.2011 - 02:49
0
  1. ¿Cómo se ve el éxito?
  2. ¿Cuáles son las incógnitas en el proyecto?
  3. ¿Cuáles son los conocidos en el proyecto?
  4. ¿Qué puedes hacer para eliminar / descubrir las incógnitas, para convertirlas en conocidas?
  5. ¿Qué puedes hacer para reunir a los conocidos para lograr el éxito?
  6. ¿cuál es el siguiente paso concreto que debe tomar para que el proyecto avance?

repita el último paso hasta que el proyecto esté terminado; acepte que puede tardar años y siga avanzando

    
respondido por el Steven A. Lowe 12.09.2011 - 05:44
0

Todas las respuestas aquí son agradables y todas, pero con toda honestidad, no importa cuánto control de versión, gitting, organigrama y márgenes de marcado haga, lo único que importa es que tenga una aplicación funcional. una aplicación funcional se define como una que resuelve el problema para el que se concibió, todas las demás cosas son bastante irrelevantes.

Comience a codificar, codifíquelo a una fase funcional, ejecute algunas pruebas, depure, inicie y vuelva a iterar con nuevas características y funcionalidades (si lo considera necesario), en gran medida en el caso de un inicio magra, que es un ágil método de gestión y desarrollo para generar menos desperdicio (o como alguien definido: obras maestras a medio terminar).

    
respondido por el Itai Sagi 15.01.2012 - 17:12
-1

Lista de cosas que hacer al iniciar un nuevo proyecto:

  1. crear un nuevo directorio
  2. crear makefile copiando alguna plantilla de makefile existente
  3. crea algunos encabezados y archivos de implementación
  4. asegúrate de que compile
  5. empieza a usar el control de versiones
  6. decida la convención de nomenclatura para clases, funciones, miembros de datos, variables
  7. escribe tu primera clase
  8. asegúrese de que su clase sea independiente y que cada función miembro sea independiente de otras funciones miembro
  9. crea varios objetos creando funciones como main ()
  10. repita los pasos 7-10 hasta que su programa esté listo
  11. compilarlo
  12. envíelo a los usuarios finales
respondido por el tp1 30.08.2011 - 23:15

Lea otras preguntas en las etiquetas