2009-09-24 7 views
7

Ich arbeitete eine Zeitlang als freiberuflicher PHP-Entwickler und kümmerte mich um alle Programmieraspekte. Obwohl ich mit einem Grafikdesinger gearbeitet habe, wurde alles von mir programmiert.Wie geht man mit einem Team mit einem PHP-Projekt um?

In diesen Tagen bekomme ich einen Job mit einem Team, um ein Projekt zu programmieren.

Also habe ich Angst vor dieser neuen Entwicklung. Wie man ein Team managt und die Arbeit teilt, verfolgen Sie die Änderung.

Ich werde nach kompletten Lösungen suchen.

+0

Sind Sie der Teamleiter oder ein Teammitglied? – Michelle

+0

ein Teamleiter .. – assaqqaf

Antwort

9

Das ist eine gute Frage; Ich bin mir sicher, dass viele Leute damit konfrontiert werden, wenn sie vom Freelancer zurück in eine Teamumgebung wechseln.

Zunächst einmal, keine Angst haben! Ihre Kollegen werden Sie zu einem besseren Programmierer machen, nur indem Sie sich ihren einzigartigen Wegen, Dinge zu tun, stellen. Und Sie haben jetzt großartige Ressourcen, auf die Sie zurückgreifen können, wenn Sie einfach nicht den Tippfehler finden, der Sie stundenlang verwirrt hat.

Die Zusammenarbeit am selben Projekt muss nicht schwierig sein. Unterteilen Sie es in modulare Stücke. Beginnen Sie mit dem Einrichten einer Gliederung, definieren Sie die E/A zwischen verschiedenen Funktionen/Methoden/Codesegmenten, und geben Sie jeder Person eine "Black Box", um sie mit Code auszufüllen.

Wenn Sie die Stärken der anderen lernen & Schwächen, können Sie Aufgaben auf Personen basierend auf ihren Stärken zu delegieren, um wichtige Meilensteine ​​zu erreichen, oder basierend auf ihren Schwächen, um ihnen zu helfen, ihre Fähigkeiten zu entwickeln.

Übernehmen Sie die Versionskontrolle so schnell wie möglich und investieren Sie so viel wie nötig, um zu lernen, wie Sie sie gut nutzen können. Stellen Sie sicher, dass Sie verstehen, wie Sie Zweige erstellen, verwenden und zusammenführen. Jedes Versionskontrollsystem wird funktionieren ... Ich empfehle entweder SVN (Subversion) oder CVS. Ich bevorzuge Subversion.

Entwickeln Sie ein System zur Fehlerverfolgung und zur Verfolgung von Aufgabenlisten für neue Funktionen. Es muss nicht schick sein zu arbeiten. Wenn Sie eine neue, kleine Operation sind, können Sie dies in etwas so einfach wie eine freigegebene Google Doc-Tabelle tun. Wenn Sie Geld ausgeben müssen, sind Atlassian JIRA und FogBugz beide großartige Issue-Tracking-Systeme.

Am wichtigsten, zuhören und respektieren, was Ihre neuen Kollegen zu sagen haben, auch wenn sie tot falsch liegen. Vergiss niemals, dass sie Verbündete und keine Gegner sind.

Viel Spaß! Und viel Glück.

+5

'git' ist ein fabelhaftes Versionierungssystem, das ist es auch wert, zu beachten. – brianreavis

0

Ich empfehle einige Bücher über erfolgreiches Team-Management zu lesen. Hier ist ein guter Ausgangspunkt:

Successful Team Management by Nicky Hayes

Haftungsausschluss: Ich habe nie dieses Buch lesen. Ich weiß nicht einmal, ob es gut ist. Andere in derselben Kategorie können Ihnen jedoch helfen.

0

Sie müssen auf jeden Fall ein Versionskontrollsystem verwenden, wenn Sie nicht bereits sind - einige gute Optionen sind git (außergewöhnlich schnell und voll ausgestattet, http://git-scm.com/) oder bzr (viel langsamer, aber einfacher zu bedienen, http://bazaar-vcs.org/)

2

Die Joel Test dient als ordentlichen Überblick über Teammanagement Best Practices

  • Verwenden der Quellcodeverwaltung
  • pflegen einen Zeitplan
  • Dokument Ihres Design
  • -Test
  • ein Task-Tracking-System verwenden
2

Ein wichtiger Teil der teambasierten PHP-Entwicklung besteht darin, die Funktionalität in mehrere Dateien aufzuteilen. Die meisten PHP-Entwickler fallen in zwei Lager; Webentwickler, die eine serverseitige Sprache lernen mussten, und Softwareentwickler, die zur Webentwicklung wechseln. Die ersten schreiben ihren gesamten Code in monströsen verdrehten Dateien, und die letzteren verwenden PHP, um sauber aussehenden Code zu schreiben, aber oft gelingt es ihnen nicht, das Layout ohne Tabellen zu beherrschen.

Um großartige Arbeit mit PHP zu machen, ist es wichtig, beides richtig zu machen. Die Teamentwicklung erfordert die Trennung verschiedener Teile der Funktionalität und der Benutzeroberfläche in verschiedene Dateien, entweder durch Includes oder durch Verwendung eines Frameworks. Beachten Sie jedoch, dass sowohl die Software- als auch die Web-Seite die gleiche Lösung haben; Trennung des Modells vom Controller aus der Sicht, Trennung von Inhalt und Layout.

Noch eine Sache: Die typische Verzeichnisstruktur der Stamm-/Zweigstellenversion funktioniert nicht so gut mit der Webarbeit. Was ich normalerweise mache, ist eine devel- und eine live-Verzeichnisstruktur. Ihre Entwickler arbeiten im Zweig devel, und wenn Sie die Änderungen auf der Live-Site anwenden möchten, müssen Sie lediglich Ihrer Versionskontrollsoftware mitteilen, dass sie dieselben Änderungen anwenden soll (Subversion ist sehr gut darin).

Viel Glück.

0

Ich werde nach kompletten Lösungen suchen.

Nun, Ihr nurkomplette Lösung ist eine professionelle Software-Entwicklung-Manager zu mieten.

Wenn Sie immer noch hoffen, sich selbst zu bewältigen, dann müssen Sie vergessen, selbst Code zu schreiben. Sie müssen sich darauf konzentrieren, Aufgaben, Quellcode und Qualität der Software zu verwalten (Testen). Es gibt natürlich Tools, aber Tools sind keine vollständigen Lösungen (egal wie gut diese Tools sind). Hier ist eine Metapher für: Wenn du einen guten Hammer hast, bedeutet das nicht unbedingt, dass du alle Nägel glatt und nie verbiegen wirst.

Daher erfordert die Verwaltung des Software-Entwicklungsteams Wissen und Erfahrung, nicht nur Werkzeuge. Es ist sehr unterschiedlich aus dem Schreiben von Anwendung auf eigene Faust.

Und sei mutig!

0

Eine interessante Idee, die ich zu diesem Thema gehört habe, ist Test Driven Development (TDD), wo Sie die Tests mit PHPUnit oder SimpleTest schreiben und dann an das Entwicklungsteam übergeben. Wenn die Tests bestanden sind, gilt die Aufgabe als erledigt.

1

Ich fing an, Trac zu verwenden, als ich anfing, mit einem anderen Entwickler auf einer Anwendung zu arbeiten. Es ist eine großartige Möglichkeit, Aufgaben zuzuordnen, Bugs und Features, Versionen usw. zu verfolgen, die ich zusammen mit Subversion verwende.Wie viele andere bereits erwähnt haben, benötigen Sie eine Möglichkeit, Jobs zuzuweisen, Fehler zu verfolgen und natürlich Versionskontrolle, was sehr wichtig ist.

Kommunikation ist oberstes Gebot! E-Mail, bevorstehendes Google Wave, ein kostenloser IRC-Server, etwas, das leicht zugänglich ist und von anderen genutzt wird. Jeder muss auf derselben Seite sein, nichts Schlimmeres, als an einer Funktion oder einem Block Code zu arbeiten, um herauszufinden, dass jemand anderes das gleiche Problem anspricht.

Viel Glück! Es ist eine ganz andere Atmosphäre, wenn Sie führen und verwalten. Sei offen für Vorschläge des Teams.

Verwandte Themen