Les produits logiciels nécessitant des équipes entières de développement, combien un programmeur peut-il accomplir seul? En d'autres termes, une seule personne pourrait-elle écrire Photoshop, MS Word, etc ...? Et s'ils ne le pouvaient pas, le développement web serait-il un domaine où un programmeur pourrait faire beaucoup?
web-development
project-management
fender1901
la source
la source
Réponses:
Commencer petit
Linux est actuellement beaucoup plus gros que ses premières itérations, mais l'important est qu'il soit sorti avec suffisamment de choses pour gagner du terrain.
Seulement si ça vaut le coup
J'ai la règle personnelle que les gros trucs valent la peine d'être faits s'ils sont fondamentalement différents des autres. Sinon, vous plongez dans un océan rouge .
Bon pour commencer, mais pas toujours durable
Si votre logiciel est assez bon, vous voudrez peut-être le prendre au sérieux. Prenez par exemple Markus "Notch" Persson, créateur de Minecraft. IIRC il a commencé le jeu seul, et quand le jeu a gagné du terrain, il a commencé à chercher des collaborateurs et a même commencé une entreprise.
Tout en récompensant de réaliser quelque chose seul, les grands projets réalisent leur potentiel par la collaboration des développeurs, pas un seul génie, ce qui m'amène à mon prochain point.
Un mythe
Consultez The Myth of the Genius Programmer , une conférence de Ben Collins-Sussman et Brian Fitzpatrick à Google I / O 2009. Vous devriez y avoir toutes les fausses attentes. Le point principal que je veux souligner ici est que, parfois, un seul développeur obtient le crédit pour l'ensemble, alors qu'il y avait plus de gens derrière.
C'est tout à fait possible
Un autre exemple, à part Linus Torvalds, est John Carmack. Il a porté Wolfenstein en seulement quatre jours, quand EA avait estimé une équipe complète pour deux mois.
Ce n'est pas la quantité de code, c'est la connaissance architecturale et technique qui vous permet de réaliser de grandes choses avec moins de code que vous attendez.
Compte tenu des compétences et des connaissances (au-delà du niveau moyen), vous pouvez faire en sorte que beaucoup de travail vous semble peu.
la source
En raison de la nature du travail que je fais, j'ai développé moi-même quelques applications assez volumineuses. Alors oui, c'est faisable. Je pourrais continuer à ce sujet pendant des heures, mais je n'ai pas beaucoup de temps maintenant, alors voici quelques avantages et inconvénients de mon expérience personnelle.
Avantages:
Les inconvénients:
la source
Avec un certain dévouement et des compétences, une seule personne peut certainement accomplir beaucoup. Ce n'est pas facile cependant, être un bon programmeur ne suffit pas. Pour réussir un projet, vous devez souvent penser aux cas d'utilisation, à la conception de l'interface utilisateur, à la documentation, au support et bien plus encore. Une fois que les choses commenceront et que le nombre d'utilisateurs augmentera, tout cela à lui seul deviendra de plus en plus irréaliste - c'est le point où soit plus de personnes se joignent au projet (via la participation communautaire, l'embauche de personnes ou autrement) ou le projet meurt.
la source
Cela dépend du logiciel qu'il essaie de développer, des contraintes de temps et des compétences. S'il développe une application SIG simple, il est tout à fait possible qu'il puisse le faire en peu de temps. Essayer de développer un logiciel aussi compliqué que Photoshop, MS Word, Blender, Flash et etc. c'est possible mais cela prend beaucoup de temps et il a la fonction la plus basique et les fonctionnalités sont simples.
la source
Tout dépend des compétences, du temps passé et de la volonté de le faire. Plus vous avez de connaissances, moins il vous faudra de temps pour accomplir quelque chose. Vous obtiendrez une connaissance extrêmement intime de la base de code en tant que développeur unique, ce qui peut également accélérer le processus de définition / refactorisation / débogage.
J'ai personnellement travaillé sur une application de transfert de bureau à serveur. J'ai codé l'application serveur et l'application de bureau et j'ai tout testé moi-même. J'ai même écrit le programme d'installation de l'application. J'ai trouvé un moyen de permettre le glisser-déposer sur les icônes de la barre d'état système sous Windows et j'ai même fini par écrire une nouvelle bibliothèque Java à partir de zéro. Je l'ai fait au cours d'une année et c'est toujours en cours de développement et de test.
L'ensemble de ce projet a été une épreuve unique. Tous les jours après l'école, j'ai travaillé sur le projet ainsi que les week-ends. Est-il aussi massif que MS Word, Photoshop, etc.? Nan. Le projet est toujours important et ne cesse de croître et il est possible de réaliser beaucoup de choses.
la source
Je travaille actuellement sur un tel projet moi-même pendant mon temps libre (c'est une application web, pas une application de bureau, mais les principes sont les mêmes). Voici ce que j'ai trouvé jusqu'à présent:
1) Ne réinventez pas la roue . Utilisez les bibliothèques / frameworks existants, plutôt que de tout faire à partir de zéro. Une mise en garde ici: assurez-vous de prêter attention aux licences car elles s'appliquent à la distribution / version / quel que soit le modèle souhaité. Certaines licences de copyleft exigeront que vous "open-source" votre "travail dérivé". Certaines licences autorisent une utilisation non commerciale uniquement. Gardez une trace des bibliothèques / frameworks que vous utilisez afin que vous puissiez fournir une attribution appropriée dans votre écran / zone "Crédits" / peu importe
2) Travailler de manière itérative . Cela rejoint ce que dukeofgaming a dit avec "Start Small" . Vous êtes beaucoup plus susceptible de vous en tenir à un projet si vous pouvez voir des résultats. Jusqu'à ce que vous puissiez voir quelque chose fonctionner, tout développement que vous faites est l'équivalent de la peinture dans l'obscurité.
3) N'ayez pas peur de demander des commentaires / de l'aide dès le début . Il y a de fortes chances que vous ne soyez pas bon en tout. Si vous êtes doué pour le codage de bas niveau, vous craignez probablement pour l'interface utilisateur. L'inverse s'applique également. Cela ne fait jamais de mal de demander conseil à ceux qui sont meilleurs que vous dans un certain domaine. Beaucoup de gens éviteront cela parce qu'ils craignent que quelqu'un vole leur idée. Ne vous inquiétez pas à ce sujet - si quelqu'un essaie de vous copier, cela signifie que vous êtes sur quelque chose de valable. Les idées sont bon marché, la mise en œuvre est la clé. Apple n'a pas inventé le lecteur MP3, Microsoft n'a pas inventé le système d'exploitation, Facebook n'a pas inventé le réseau social et Google n'a pas inventé le moteur de recherche. Ce qu'ils ont fait, c'est le rendre attrayant pour les utilisateurs (et non pas nul).
la source