Quanto può fare un programmatore da solo? [chiuso]

13

Con prodotti software che portano a sviluppare interi gruppi di persone, quanto può fare un programmatore da solo? In altre parole, una sola persona potrebbe scrivere Photoshop, MS Word, ecc ...? E se non potessero, lo sviluppo del web sarebbe un'area in cui un programmatore potrebbe fare molto?

    
posta fender1901 07.06.2011 - 05:36
fonte

6 risposte

14

Inizia in piccolo

Linux è attualmente molto più grande delle sue prime iterazioni, ma la cosa importante è che è uscito con abbastanza elementi per ottenere la trazione.

Solo se ne vale la pena

Ho la regola personale che vale la pena fare roba grossa se è fondamentalmente diversa dalle altre. Altrimenti ti immergerai in oceano rosso .

Buono per iniziare, ma non sempre sostenibile

Se il tuo software è abbastanza buono, potresti volerne fare sul serio. Prendiamo ad esempio Markus "Notch" Persson, creatore di Minecraft. IIRC ha iniziato il gioco da solo, e quando il gioco ha guadagnato aderenza, ha iniziato a cercare collaboratori e persino a creare una società.

Mentre premiamo per realizzare qualcosa da soli, i grandi progetti realizzano il loro potenziale grazie alla collaborazione tra sviluppatori, non un singolo genio, che mi porta al mio prossimo punto.

Un mito

Dai un'occhiata a Il mito del programmatore Genius , un discorso di Ben Collins -Sussman e Brian Fitzpatrick a Google I / O 2009. Dovresti avere tutte le false aspettative lì. Il punto principale che voglio sottolineare qui è che a volte un singolo sviluppatore ottiene il merito di tutto, mentre ci sono più persone dietro.

È sicuramente possibile

Un altro esempio, a parte Linus Torvalds, è John Carmack. Ha portato Wolfenstein in soli quattro giorni, quando EA aveva stimato una squadra completa per due mesi.

Non è l'ammontare del codice, è la conoscenza architettonica e tecnica che ti permette di ottenere grandi cose con meno codice di quanto ti aspetteresti.

Dato l'abilità e la conoscenza (oltre il livello medio) puoi far sembrare il lavoro un po 'piccolo.

    
risposta data 07.06.2011 - 06:09
fonte
5

A causa della natura del lavoro che sto facendo, ho sviluppato un paio di applicazioni piuttosto grandi tutte da solo. Quindi sì, è fattibile. Potrei andare avanti per ore ma non ho molto tempo, quindi ecco alcuni pro e contro per esperienza personale.

Pro:

  • sei in pieno controllo e non c'è una squadra con cui combattere, quindi puoi andare con quello che pensi / sappia essere il migliore. Non perdere tempo in infinite discussioni su un piccolo aspetto del codice.
  • hai tutta l'architettura nella tua testa, sai letteralmente tutto, il supporto clienti è un gioco da ragazzi dato che conosci tutte le risposte da solo
  • impari molto su tutti gli aspetti della programmazione. Interfaccia utente di basso livello, di medio livello, di alto livello, ...

Contro:

  • nessuna squadra con cui combattere, quindi a volte prendi decisioni sbagliate senza che nessuno ti dica
  • è facile perdersi in esso, senza più vedere il quadro generale. E non c'è nessuno che possa aiutarti. (tranne SO / SA e simili:])
  • dedicare molto tempo all'assistenza clienti che preferiresti spendere per la programmazione
risposta data 07.06.2011 - 09:06
fonte
3

Con una certa dedizione e abilità una singola persona può sicuramente ottenere molto. Non è facile tuttavia, solo essere un buon programmatore non è abbastanza. Per un progetto di successo devi spesso pensare a casi d'uso, design dell'interfaccia utente, documentazione, supporto e molto altro. Una volta che le cose si stanno evolvendo e il numero degli utenti crescerà, tutto da solo diventerà sempre più irrealistico - questo è il punto in cui più persone entrano nel progetto (attraverso la partecipazione della comunità, assumendo persone o altro) o il progetto muore.

    
risposta data 08.06.2011 - 00:28
fonte
1

Dipende dal software che sta cercando di sviluppare, dal vincolo temporale e dalle competenze. Se sta sviluppando una semplice applicazione MIS è molto probabile che possa farlo in breve tempo. Cercando di sviluppare un software complicato come Photoshop, MS Word, Blender, Flash ed ecc, è possibile ma richiede molto tempo e ha la funzione più semplice e le funzionalità sono semplici.

    
risposta data 07.06.2011 - 05:51
fonte
1

Tutto dipende dall'abilità, dal tempo speso e dalla volontà di farlo. Più conoscenze hai, meno tempo ci vorrà per realizzare qualcosa. Avrai una conoscenza estremamente intima del codebase come unico sviluppatore che può anche velocizzare il processo di determinazione / refactoring / debugging.

Ho lavorato personalmente a un'applicazione di trasferimento da desktop a server. Ho codificato l'applicazione server, l'applicazione desktop e l'ho testata da sola. Ho scritto l'installer per l'applicazione anche. Ho trovato un modo per consentire il trascinamento e il rilascio sulle icone della barra delle applicazioni in Windows e persino di scrivere una nuova libreria Java da zero. L'ho fatto nel corso di un anno ed è ancora in fase di sviluppo e test.

L'intero progetto è stato un problema principale. Ogni giorno dopo la scuola ho lavorato al progetto e nei fine settimana. È massiccio come MS Word, Photoshop, ecc.? No. Il progetto è ancora ampio e in continua crescita, ed è possibile ottenere molto.

    
risposta data 07.06.2011 - 06:06
fonte
1

Attualmente sto lavorando a un progetto del genere nel mio tempo libero (è un'applicazione web, non un'applicazione desktop, ma i principi sono gli stessi). Ecco cosa ho trovato finora:

1) Non reinventare la ruota . Usa librerie / framework esistenti, piuttosto che fare tutto da zero. Un avvertimento qui: assicurati di prestare attenzione alle licenze in quanto si applicano alla distribuzione / rilascio / modello desiderato. Alcune licenze copyleft richiedono che apri il tuo "lavoro derivato". Alcune licenze consentono solo l'uso non commerciale. Tieni traccia delle librerie / framework che utilizzi in modo da poter fornire un'attribuzione appropriata nella schermata / area "Credits" / qualunque sia

2) Lavora in modo iterativo . Questo si collega a ciò che dukeofgaming ha detto con " Avvia Small ". Sei molto più propenso a seguire un progetto se riesci a vedere i risultati. Fino a quando non riesci a vedere qualcosa di funzionante, qualsiasi sviluppo che fai è l'equivalente di dipingere al buio.

3) Non temere di chiedere feedback / aiutare presto . Le probabilità sono che non sei bravo in tutto. Se sei bravissimo nel livello più basso della codifica, probabilmente fai schifo all'interfaccia utente. Vale anche il contrario. Non fa mai male ricevere consigli da chi è migliore di te in una certa area. Molte persone lo eviteranno perché sono preoccupati per qualcuno che ruba la loro idea. Non preoccuparti di questo - se qualcuno cerca di copiarti, vuol dire che sei su qualcosa di utile. Le idee sono economiche, l'implementazione è la chiave. Apple non ha inventato il lettore MP3, Microsoft non ha inventato il sistema operativo, Facebook non ha inventato il social network e Google non ha inventato il motore di ricerca. Quello che hanno fatto è renderlo irresistibile per gli utenti (e non succhiare).

    
risposta data 08.06.2011 - 01:16
fonte

Leggi altre domande sui tag