Wie viel kann ein Programmierer mit Softwareprodukten, für deren Entwicklung ganze Teams von Menschen benötigt werden, selbst erreichen? Mit anderen Worten, kann eine einzelne Person Photoshop, MS-Wörter usw. schreiben? Und wenn sie es nicht könnten, wäre Webentwicklung ein Bereich, in dem ein Programmierer viel tun könnte?
web-development
project-management
fender1901
quelle
quelle
Antworten:
Fangen Sie klein an
Linux ist derzeit viel umfangreicher als seine ersten Iterationen, aber das Wichtigste ist, dass es genügend Inhalte enthält, um an Bodenhaftung zu gewinnen.
Nur wenn es sich lohnt
Ich habe die persönliche Regel, dass es sich lohnt, große Dinge zu tun, wenn sie sich grundlegend von den anderen unterscheiden. Ansonsten tauchst du in einen roten Ozean .
Gut zu beginnen, aber nicht immer nachhaltig
Wenn Ihre Software gut genug ist, sollten Sie es ernst meinen. Nehmen wir zum Beispiel Markus "Notch" Persson, den Erfinder von Minecraft. Im IIRC startete er das Spiel alleine und als das Spiel an Fahrt gewann, suchte er nach Mitarbeitern und gründete sogar eine Firma.
Große Projekte lohnen sich nicht nur, um etwas zu erreichen, sondern sie entfalten ihr Potenzial durch die Zusammenarbeit von Entwicklern und nicht durch ein einziges Genie, das mich zum nächsten Punkt führt.
Ein Mythos
Schauen Sie sich The Myth of the Genius Programmer an , ein Vortrag von Ben Collins-Sussman und Brian Fitzpatrick auf der Google I / O 2009. Sie sollten dort alle falschen Erwartungen haben. Der wichtigste Punkt, den ich hier ansprechen möchte, ist, dass manchmal ein einzelner Entwickler den Kredit für die ganze Sache bekommt, während mehr Leute dahinter waren.
Es ist definitiv möglich
Ein anderes Beispiel neben Linus Torvalds ist John Carmack. Er portierte Wolfenstein in nur vier Tagen, als EA ein volles Team für zwei Monate veranschlagt hatte.
Es ist nicht die Menge an Code, sondern das architektonische und technische Wissen, mit dem Sie mit weniger Code große Dinge erreichen können, als Sie erwarten würden.
Angesichts der Fähigkeiten und Kenntnisse (überdurchschnittlich gut) können Sie viel Arbeit als wenig empfinden.
quelle
Aufgrund der Art der Arbeit, die ich mache, habe ich selbst ein paar ziemlich große Anwendungen entwickelt. Also ja, es ist machbar. Ich könnte stundenlang weitermachen, habe aber jetzt nicht viel Zeit. Hier sind einige Vor- und Nachteile aus persönlicher Erfahrung.
Vorteile:
Nachteile:
quelle
Mit etwas Engagement und Geschick kann eine einzelne Person definitiv viel erreichen. Es ist jedoch nicht einfach, nur ein guter Programmierer zu sein, ist nicht genug. Für ein erfolgreiches Projekt müssen Sie häufig über Anwendungsfälle, Benutzeroberflächendesign, Dokumentation, Support und vieles mehr nachdenken. Sobald die Dinge ins Rollen kommen und die Anzahl der Benutzer wächst, wird es zunehmend unrealistisch - an diesem Punkt kommen entweder mehr Menschen in das Projekt (durch Beteiligung der Community, Einstellung von Mitarbeitern oder auf andere Weise) oder das Projekt stirbt.
quelle
Dies hängt von der Software ab, die er zu entwickeln versucht, von der zeitlichen Beschränkung und von den Fähigkeiten. Wenn er eine einfache MIS-Anwendung entwickelt, ist es sehr wahrscheinlich, dass er dies in kurzer Zeit tun kann. Der Versuch, eine Software zu entwickeln, die so kompliziert wie Photoshop, MS Word, Blender, Flash usw. ist, ist möglich, aber es dauert lange und sie verfügt über die grundlegendsten Funktionen und die Funktionen sind einfach.
quelle
Es hängt alles von Können, Zeitaufwand und der Bereitschaft ab, dies zu tun. Je mehr Wissen Sie haben, desto weniger Zeit wird es brauchen, um etwas zu erreichen. Sie erhalten eine äußerst genaue Kenntnis der Codebasis als einziger Entwickler, was auch den Prozess des Herausfindens / Refactorings / Debuggens beschleunigen kann.
Ich habe persönlich an einer Desktop-zu-Server-Übertragungsanwendung gearbeitet. Ich habe die Serveranwendung und die Desktopanwendung codiert und alles selbst getestet. Ich habe sogar das Installationsprogramm für die Anwendung geschrieben. Ich habe eine Möglichkeit gefunden, Drag & Drop auf Taskleistensymbole in Windows zuzulassen und sogar eine neue Java-Bibliothek von Grund auf neu zu schreiben. Ich habe das im Laufe eines Jahres gemacht und es befindet sich noch in der Entwicklung und Erprobung.
Dieses gesamte Projekt war eine einzige Tortur. Jeden Tag nach der Schule habe ich sowohl am Projekt als auch am Wochenende gearbeitet. Ist es so umfangreich wie MS Word, Photoshop usw.? Nee. Das Projekt ist immer noch groß und wächst stetig, und es ist möglich, viel zu erreichen.
quelle
In meiner Freizeit arbeite ich selbst an einem solchen Projekt (es ist eine Webanwendung, keine Desktopanwendung, aber die Prinzipien sind dieselben). Folgendes habe ich bisher gefunden:
1) Das Rad nicht neu erfinden . Verwenden Sie vorhandene Bibliotheken / Frameworks, anstatt alles von Grund auf neu zu machen. Eine Einschränkung hier: Achten Sie darauf, dass Sie die Lizenzen beachten, da diese für Ihre gewünschte Distribution / Veröffentlichung / welches Modell auch immer gelten. Für einige Copyleft- Lizenzen ist es erforderlich, dass Sie Ihre "abgeleiteten Werke" als Open-Source-Version verwenden. Einige Lizenzen erlauben nur die nichtkommerzielle Nutzung. Behalten Sie die Bibliotheken / Frameworks im Auge, die Sie verwenden, damit Sie in Ihrem "Credits" -Bildschirm / Bereich / was auch immer eine entsprechende Zuordnung vornehmen können
2) Arbeiten Sie iterativ . Dies knüpft an das an, was dukeofgaming mit "Start Small" gesagt hat . Es ist viel wahrscheinlicher, dass Sie bei einem Projekt bleiben, wenn Sie Ergebnisse sehen können. Bis Sie sehen, dass etwas funktioniert, ist jede Entwicklung, die Sie durchführen, das Äquivalent zum Malen im Dunkeln.
3) Haben Sie keine Angst, frühzeitig um Feedback / Hilfe zu bitten . Die Chancen stehen gut, dass du nicht in allem gut bist. Wenn Sie in der unteren Ebene der Codierung großartig sind, sind Sie wahrscheinlich am UI scheiße. Das Umgekehrte gilt auch. Es tut nie weh, sich von denen beraten zu lassen, die in einem bestimmten Bereich besser sind als Sie. Viele Leute werden dies vermeiden, weil sie besorgt sind, dass jemand ihre Idee stiehlt. Mach dir darüber keine Sorgen - wenn jemand versucht, dich zu kopieren, bedeutet dies, dass du auf etwas Wertvolles stehst. Ideen sind billig, Umsetzung ist der Schlüssel. Apple hat den MP3-Player nicht erfunden, Microsoft hat das Betriebssystem nicht erfunden, Facebook hat das soziale Netzwerk nicht erfunden und Google hat die Suchmaschine nicht erfunden. Was sie taten, war, es für Benutzer zwingend zu machen (und nicht zu saugen).
quelle