¿Cuánto puede hacer un programador por su cuenta? [cerrado]

13

Con los productos de software que requieren el desarrollo de equipos completos de personas, ¿cuánto puede lograr un programador por sí mismo? En otras palabras, ¿podría una sola persona escribir Photoshop, MS Word, etc.? Y si no pudieran, ¿el desarrollo web sería un área donde un programador podría hacer mucho?

fender1901
fuente
2
No estoy seguro de lo que se pregunta aquí. Si tiene el potencial para desarrollar un software, sin duda puede lograrlo usted mismo, web o no. Después de todo, Facebook no fue desarrollado en un día por MZ.
CoolBeans
Eche un vistazo a blitwise.com para un trabajo de desarrollo individual.
Michael K
La productividad del codificador varía mucho. Algunos codificadores codifican 10 veces o más rápido que otros ...
Denis de Bernardy
2
Si se tratara de un solo edificio para desarrolladores, photoshop y ms word, serían aproximadamente 1/100 del tamaño. No lo considero algo malo.
JeffO
1
Depende. :-)
richard

Respuestas:

14

Empieza pequeño

Linux es actualmente mucho más grande que sus primeras iteraciones, pero lo importante es que salió con suficientes cosas para ganar tracción.

Solo si vale la pena

Tengo la regla personal de que vale la pena hacer grandes cosas si es fundamentalmente diferente al resto. De lo contrario, te sumerges en un océano rojo .

Bueno para empezar, pero no siempre sostenible.

Si su software es lo suficientemente bueno, es posible que desee tomarlo en serio. Tomemos, por ejemplo, Markus "Notch" Persson, creador de Minecraft. IIRC comenzó el juego solo, y cuando el juego ganó fuerza comenzó a buscar colaboradores e incluso comenzó una empresa.

Si bien es gratificante lograr algo solo, los grandes proyectos cumplen su potencial mediante la colaboración del desarrollador, no un solo genio, lo que me lleva al siguiente punto.

Un mito

Echa un vistazo al Programador The Myth of the Genius , una charla de Ben Collins-Sussman y Brian Fitzpatrick en Google I / O 2009. Debes tener todas las falsas expectativas allí. El punto principal que quiero hacer aquí es que a veces un solo desarrollador obtiene el crédito por todo el asunto, mientras que había más personas detrás.

Definitivamente es posible

Otro ejemplo, aparte de Linus Torvalds, es John Carmack. Portó a Wolfenstein en solo cuatro días cuando EA había estimado un equipo completo durante dos meses.

No es la cantidad de código, es el conocimiento arquitectónico y técnico que le permite lograr grandes cosas con menos código de lo que esperaría.

Dada la habilidad y el conocimiento (más allá del nivel promedio), puede hacer que mucho trabajo se sienta como poco.

dukeofgaming
fuente
77
+1 OMI, Linus no tiene mierda en Carmack. Su material es material de leyenda.
Steven Evers
1
¿De quién es la leyenda? Linus o John. hizo llegar su argot volver allí
Chani
1
@RYUZAKI: Creo que el comentario de @ SnOrfus es una pregunta completa para el intercambio de pila en inglés.
Spoike
1
@RYUZAKI - John tiene algo de leyenda, en el comentario de SnOrfus.
ocodo
1
¿Carmack recibió el salario completo de 2 meses del equipo por sus 4 días de trabajo, o solo una palmada en la espalda?
Drew
5

Debido a la naturaleza del trabajo que estoy haciendo, he desarrollado un par de aplicaciones bastante grandes por mí mismo. Entonces sí, es factible. Podría continuar con esto durante horas, pero no tengo mucho tiempo ahora, así que aquí hay algunos pros y contras de la experiencia personal.

Pros:

  • estás en pleno control y no hay un equipo con el que luchar, así que puedes ir con lo que crees / sabes que es lo mejor. Sin perder tiempo en discusiones interminables sobre un pequeño aspecto en el código.
  • tiene toda la arquitectura en su cabeza, sabe literalmente todo sobre ella, la atención al cliente es muy sencilla ya que conoce todas las respuestas usted mismo
  • aprendes mucho sobre todos los aspectos de la programación. Interfaz de usuario de bajo nivel, nivel medio, alto nivel, ...

Contras:

  • no hay equipo con el que luchar, así que a veces tomas malas decisiones sin que nadie te diga
  • es fácil perderse en él, sin ver el panorama general nunca más. Y no hay nadie que pueda ayudarte. (excepto SO / SA y similares:])
  • dedicar mucho tiempo a la atención al cliente que preferiría dedicar a la programación
stijn
fuente
3

Con algo de dedicación y habilidad, una sola persona definitivamente puede lograr mucho. Sin embargo, no es fácil, solo ser un buen programador no es suficiente. Para un proyecto exitoso, a menudo tiene que pensar en casos de uso, diseño de interfaz de usuario, documentación, soporte y mucho más. Una vez que las cosas se pongan en marcha y el número de usuarios crezca, hacerlo todo por sí solo será cada vez más poco realista: ese es el punto en el que más personas ingresan al proyecto (a través de la participación de la comunidad, contratando personas o de otra manera) o el proyecto muere.

Wladimir Palant
fuente
1

Depende del software que él / ella está tratando de desarrollar, la limitación de tiempo y las habilidades. Si él / ella está desarrollando una aplicación MIS simple, es muy posible que pueda hacerlo en poco tiempo. Intentar desarrollar un software tan complicado como Photoshop, MS Word, Blender, Flash, etc. es posible, pero lleva mucho tiempo y tiene la función más básica y las características son simples.

Tom
fuente
1

Todo depende de la habilidad, el tiempo dedicado y la voluntad de hacerlo. Cuanto más conocimiento tenga, menos tiempo tomará para lograr algo. Obtendrá un conocimiento extremadamente íntimo de la base de código como el único desarrollador que también puede acelerar el proceso de descifrar / refactorizar / depurar.

Personalmente he estado trabajando en una aplicación de transferencia de escritorio a servidor. Codifiqué la aplicación del servidor, la aplicación de escritorio y lo probé todo yo mismo. Incluso he escrito el instalador para la aplicación. Descubrí una forma de permitir arrastrar y soltar en los iconos de la bandeja del sistema en Windows e incluso terminé escribiendo una nueva biblioteca Java desde cero. Lo hice en el transcurso de un año y todavía está en desarrollo y pruebas.

Todo este proyecto ha sido una prueba única. Todos los días después de la escuela he trabajado en el proyecto, así como los fines de semana. ¿Es tan masivo como MS Word, Photoshop, etc.? No Sin embargo, el proyecto aún es grande y está creciendo, y es posible lograr mucho.


fuente
Mira, eso es lo que me preguntaba ... puede llevar más tiempo, pero como sabrías qué hace todo el código, probablemente sea más fácil de depurar. Y una gran experiencia de aprendizaje.
fender1901
@ fender1901 Bueno, la programación debería ser constantemente una experiencia de aprendizaje, el día que no lo es es cuando lo sabes todo o necesitas encontrar una tarea más desafiante.
1

Actualmente estoy trabajando en un proyecto de este tipo en mi tiempo libre (es una aplicación web, no una aplicación de escritorio, pero los principios son los mismos). Esto es lo que he encontrado hasta ahora:

1) No reinventes la rueda . Utilice bibliotecas / marcos existentes, en lugar de hacer todo desde cero. Una advertencia aquí: asegúrese de prestar atención a las licencias, ya que se aplican a su distribución / lanzamiento / modelo deseado. Algunas licencias copyleft requerirán que abra el código fuente de su "trabajo derivado". Algunas licencias solo permiten el uso no comercial. Realice un seguimiento de las bibliotecas / marcos que utiliza para que pueda proporcionar la atribución adecuada en su pantalla / área de "Créditos" / lo que sea

2) Trabajar iterativamente . Esto se relaciona con lo que dukeofgaming dijo con "Start Small" . Es mucho más probable que te quedes con un proyecto si puedes ver los resultados. Hasta que pueda ver que algo funciona, cualquier desarrollo que haga es el equivalente a pintar en la oscuridad.

3) No tenga miedo de pedir comentarios / ayuda desde el principio . Lo más probable es que no seas bueno en todo. Si eres excelente en el nivel básico de codificación, probablemente apestas en la interfaz de usuario. Lo contrario también se aplica. Nunca está de más recibir consejos de quienes son mejores que usted en un área determinada. Muchas personas evitarán esto porque les preocupa que alguien les robe su idea. No se preocupe por esto: si alguien intenta copiarlo, significa que está en algo que vale la pena. Las ideas son baratas, la implementación es clave. Apple no inventó el reproductor de MP3, Microsoft no inventó el sistema operativo, Facebook no inventó la red social y Google no inventó el motor de búsqueda. Lo que hicieron fue hacerlo convincente para los usuarios (y no apestar).

Daniel Kitchener
fuente