Eure Erfahrungen/ Tipps: Projektmanagement und Versionierung für Einzelkämpfer?

am 02.07.2014 - 16:46 Uhr in
Hallo zusammen,
mich treibt zur Zeit ein Thema um. Nachdem ich nun 5 Jahre selbständig bin, hat sich einiges getan: Ich habe mich vom kleinen HTML-Bastler zum Drupal-Entwickler gemausert, mittlerweile programmiere ich viel selber und die Anzahl der Kunden und Projekte, bei denen ich mal was gemacht habe und an denen ich immer mal wieder etwas arbeite, nimmt stetig zu. Gleichzeitig nimmt auch die Komplexität der Projekte zu und in mir reift die Erkenntnis, dass ich mich mal intensiver mit Themen auseinander setzen sollte, die für mich bisher weniger eine Rolle spielten.
Konkret geht es um die Frage, wie man wohl am besten seine Arbeit organisiert... konkret: nutzt ihr als Einzelkämpfer ebenfalls solche Dinge wie GIT? Nutzt ihr eine andere Software/ Organisation zur Versionierung eurer Module? Organisiert ihr euch selber auch nach Techniken wie Scrum oder Kanban? Nutzt ihr auch für euch irgendeine Ticket-Software wie Redmine?
Wenn man "nur" an bestehenden Modulen herumkonfiguriert, ist das alles nicht so wild... aber wie gesagt, ich merke immer öfter, dass ich bei komplexen Projekten mit meinen Arbeiten etwas durcheinander gerate, ich verliere manchmal den Überblick, welche Funktionalitäten schon neu eingebaut sind oder ich lade Module auf Live-Seiten hoch, in denen auch Quellcode für Funktionalitäten enthalten ist, die noch gar nicht abgeschlossen und getestet sind. Das alles passiert mir bei meinem eigenen Projekt, weil ich Kundenprojekte einfach hintereinander weg abarbeite. Mein eigenes Projekt wird mal bearbeitet, dann kommt wieder ein Kundenauftrag und sobald der Auftrag weg ist, arbeite ich an meinem Projekt weiter - habe aber den Überblick darüber verloren, welche Funtkionalitäten ich wo schon eingebaut habe. Zudem kommt hinzu, dass ich merke, dass ich solche Dinge wie GIT brauche, wenn ich in einem Team arbeite - was als Programmierer ja öfters mal passieren kann.
Also meine Frage an euch: wie organisiert ihr euch, habt ihr einen Tipp, wie ich am besten vorgehen könnte oder wo ich hilfreiche Tipps finde? Was hat euch am besten geholfen?
Viele Grüße,
Tobias
- Anmelden oder Registrieren um Kommentare zu schreiben
Also, ich nutze netbeans mit
am 02.07.2014 - 17:04 Uhr
Also, ich nutze netbeans mit git. Wobei für die meisten Sachen die integrierte Versionierung von netbeans schon ausreicht, wenn ich mal daneben liege (also jeden zweiten Tag).
Dann habe ich mir mittlerweile angewöhnt mir pro Modul, das ich selbst baue, in die README meine todo reinzuschreiben. Warum da? Ich kenne mich.... Was ich nicht vor Ort habe finde ich nicht mehr oder wird ignoriert (habe ich im Kopf). Wenn ich es dann brauche weiß ich dass ich es mal gemacht habe, mehr aber auch nicht mehr. Zudem kloppe ich alle meine eigenen Module grundsätzlich in einen Unterordner. So lasse ich die importierten in sites/all/modules, die geschriebenen dann in sites/all/modules/custom.
Ein Zusatztool dass ich mich zwinge zu pflegen ist bei mir Tomboy. Weiß nicht ob es das auch für Win gibt. Ist mein Nachschlagewerk, dass ich mit dropbox synce und so auf allen meinen Geräten habe. Das ist quasi ein wiki, bestehend aus allen Anekdoten, die mir so passieren.
Habe ich ein schwieriges db_query geschrieben? -> Ab in drupal-> db_query.
Habe ich eine nützliche Funktion kennen gelernt? -> Ab in php, drupal. Also direkt 2 Verweise.
Dabei habe ich mir auch ein tag System angewöhnt.
Wichtige Funktionen, die ich immer wieder brauche, copy-paste ich dann direkt in meinen SRC Code. So habe ich locker 200 Funktionen (schätze ich), aber so erklärt, also ich mir selbst, dass ein Vollidiot sie verstehen kann. Warum? Häufig wenn ich am entwickeln bin ist während der Produktion das alles logisch. Nach aber 6 Monaten bin ich dann so schlau wie vorher.
Gruppenarbeit:
Arbeite ich im Team verwende ich TRAC, ein python Programm für den Webserver mit wiki, todo Liste, milestones, repository.
Das wichtigste:
Egal wie Du dich entscheidest, mache es immer. Es ist brutal, wenn Du stundenlang am Code knaupst, dich dann noch hinzusetzen und es zu dokumentieren. Erfordert Disziplin, weil jeder immer froh und glücklich ist wenn es läuft, manche verzichten auch auf Tests aus Angst noch was zu finden.
Dennoch: Immer! Vor der Arbeit: Lesen was als letztes gemacht wurde. Dann todo Liste checken und ergänzen, nach dem Schritt dokumentieren und Ziel abgleichen. Im Prinzip ist das schon Scrum, nur halt für Einzelkämpfer...
Das geht auch mit Drupal
am 03.07.2014 - 08:01 Uhr
Schau mal Erpal an
Mercurial
am 03.07.2014 - 09:06 Uhr
für die Versionierungsproblematik kann ich Dir Mercurial empfehlen. Dann kannst Du Deine Versionen auch auf einen Server oder anderen Rechner verteilen. Im Prinzip wie GIT, aber ich fand die GUI netter und es arbeitet sich sehr schnell damit. Du kannst auch genügend Anmerkungen über den Stand der Dinge machen. Wenn Du einen eigenen Server hast, kannst Du ja verschiedene Sachen ausprobieren, auch SVN funktioniert sehr gut.
Das hier funktioniert gut für die Abarbeitung von Fehlermeldungen
https://www.drupal.org/project/support
Danke erstmal für eure
am 03.07.2014 - 09:39 Uhr
Danke erstmal für eure Antworten - vor allem auch Dir, maen, für die ausführliche Beschreibung! Netbeans ist doch so eine IDE wie Eclipse, habe ich das richtig verstanden? das ist ja auch noch mal eine Baustelle, bisher arbeite ich mit PSPad und soweit ich jetzt mit Eclipse gearbeitet habe, fand ich da vieles sehr hilfreich - aber irgendwie bekomme ich da ähnliche Beklemmungen wie bei Photoshop ;-) Gibt es irgendwo eine gute Einführung in Eclipse? Ich möchte gerne Eclipse nutzen, weil ich mich gerade in die App-Entwicklung einarbeite und es für Android da bereits Packages für Eclipse gibt.
Tomboy werde ich mir mal anschauen (gibt es auch für Windows, habe ich schon entdeckt)... gerade dieses "Das habe ich doch schon mal gemacht" Gefühl und dann die Suche im Quellcode diverser Module wird immer häufiger und aufwendiger, da wäre eine zentrale Doku für eigene Code-Snippets sicher eine gute Sache.
Thema Versionierung: also mir sind jetzt GIT, SVN, Mercurial bekannt geworden. Bei dem Thema sitze ich aber auch wie das weiße Kaninchen vor der Schlange aus Sorge, ich könnte mir da jetzt unnötig was ans Bein binden, was mir nicht wirklich hilft, aber wieder neue Arbeit bringt. Ich müsste mich da ja auch erstmal einarbeiten, daher meine Frage:
Nutzt ihr solche Tools (GIT, SVN, Meruciral) tatsächlich in eurer Arbeit (auch als Einzelprogrammierer ohne Team) oder geht ihr dann anders vor?
Und Thema Projektmanagement: Im Moment mache ich mir zwar grobe Skizzen, programmiere dann aber los. Ich habe ein Word-Dokument, in dem ich mehr oder minder dokumentiere, was ich zuletzt gemacht habe und worin ich die nächsten Arbeiten sammle, Mit Trello führe ich eine grobe Todo, in der ich die Sachen sammle, die mir während meiner Arbeiten auffallen oder einfallen, deren Bearbeitung mich aber jetzt zu weit weg von meiner gerade aktuellen Arbeit entfernen würden. Erpal scheint mir mehr den Schwerpunkt auf CRM zu setzen als auf Projektmanagement. Ich habe schon mal mit Redmine gearbeitet und wie ich herausgefunden habe, gibt es die Möglichkeit, GIT, Mercurial & Co damit zu verbinden. Auch hier meine Frage:
Nutzt ihr solche Ticket- und Projektmanagement-Systeme wie Erpal und Redmine auch für euch selbst oder ist das mit Kanonen auf Spatzen schießen?
Ticket- und Projektmanagement-Systeme
am 03.07.2014 - 10:48 Uhr
die Nutzung von Mercurial ist problemfrei zu testen, auch local, wie auch git und svn. Ich kann mir die Arbeit nicht mehr ohne vorstellen.
Bei den Bugtrackern, kommt es auch die Größe der Applikation an. Nimm was überschaubares wie mantisbt und es ist OK.
Für einen Einzelkämpfer finde ich Redmine einfach zu umfangreich, zu viel Wartung.
Beim IDE benutze ich Eclipse, mit den PHP Plugins. Die IDE ist aber aus meiner Sicht wurscht, wenn sie denn alles macht, was man will.
Als Summe: Die Nutzung einer Versionierungssoftware und eines Bugtrackers wirst Du auch als einzelne Person nicht bereuen, ganz das Gegenteil.
Also, das Thema
am 03.07.2014 - 18:02 Uhr
Also,
das Thema Versionierung ist bei den großen IDEs, egal ob Eclipse, Netbeans oder Visual Studio (letzteres glaube ich zumindest) immer gleich gelöst:
Du klickst mit der rechten Maustaste auf den file in der Projektstruktur, und irgendwo im Menü gibt es dann die history. Und dann kannst Du diff aktivieren zwischen den verschiedenen Versionen. Das ist mittlerweile so gut gelöst dass das jeder kann, der den Windows Explorer beherrscht.
Anders als noch vor 10 Jahren! Schön mit buntem Einzug etc. Du kannst auch eien alte Version( erkennst Du am Timestamp) aktivieren ohne Code Verlust. Das bringen alle IDEs mit.
Und immer eins bedenken:
Egal was Du nimmst, und sei es Word, entscheidend ist nur dass Du Dir einen Rhythmus angewöhnst, immer schön zu dokumentieren und Änderungen plausibel festzuhalten. Immer!
Die Ägypter haben Pyramiden gebaut und hatten Papyrusrollen. Geht also alles!
Projektmanagement und Versionierung
am 04.07.2014 - 09:12 Uhr
Also erstmal danke für die Tipps. Das "A und O" ist sicher erstmal, eine gewisse Routine in die Dokumentation und Organisation zu bekommen - aber da habe ich immer so eine kleine Blockade. Jedes Mal hinterfrage ich, ob das so jetzt auch wirklich effektiv ist, ob es nicht auch besser geht, ob das überhaupt etwas bringt. Ich will mich da aus dieser kleinen Blockade herausholen und mir jetzt endlich ein System zulegen, das ich dann (hoffentlich) nicht immer wieder hinterfrage.
Gleichzeitig habe ich aber auch bei meinen neuen Aufträgen und/ oder Bewerbungen als freier Entwickler bemerkt, dass GIT/ Versionierung und der Umgang damit gerade bei verstreuten Teams eine Grundvoraussetzung sind - wie gesagt bin ich ja eigentlich kein ausgebildeter Programmierer sondern bin da so hineingewachsen. Meine Idee war es daher, mit diesen verbreiteten Systemen auch für mich zu arbeiten, um die entsprechede Erfahrung damit zu sammeln.
Jedenfalls danke ich euch erstmal für euer Feedback... ich werde mir da etwas überlegen