SlideShare ist ein Scribd-Unternehmen logo
Software
Entwicklung im
         Team
                  Stefan Brandt
                     28.04.2010
        PHP Usergroup D/DU/KR
Über mich...
•  Stefan Brandt

•  PHP seit 2001 (register_globals=on)

•  Fachinformatiker Systemintegration

•  Zend Certified Engineer

•  TWT Interactive GmbH

•  Aktuelles Team
    •  10 PHP Entwickler

•  XING: http://www.xing.com/profile/Stefan_Brandt27

•  Privat: Handball & Reisen
Disclaimer
  Die nachfolgenden Punkte beruhen auf meinen/
   unseren praktischen Erfahrungen

  Empfehlungen

  Nicht in Stein gemeißelt

  Keine Garantie! ;-)
Software Entwicklung im
Team ...
 ... hat viele Bestandteile
1.  Menschen
2.  Tools und Standards
3.  Prozesse
4.  Kommunikation
#1:
Verwendung von
Versionskontrolle
Versionskontrolle
  Grundlage für Arbeit an einer gemeinsame Codebasis.

  Jeder arbeitet in seiner eigenen Arbeitskopie.

  Schafft mehr Transparenz
     Wer hat was wann und warum geändert?
     Welche Dateien waren betroffen?
     Rollback bei Fehlern einfach möglich
     Hilfsmittel und kein Kontrollmittel

  Gute, kostenlose Systeme verfügbar
     Subversion
     GIT
     Bazaar
     etc.

  Kein Grund es nicht zu benutzen!
#2:
  Standardisieren der
Entwicklungsumgebung
Standardisierte
Entwicklungsumgebung

  Editor, IDE, Build-Werkzeuge, Entwicklungsserver, etc.

  Erleichtert die Integration neue Mitarbeiter/Teammitglieder

  Kann von den Sysadmins vorinstalliert werden

  Besserer Support möglich (alle haben die gleichen
   Probleme) ;-)

  Einstellungen und Tools können zentral vorgegeben werden

  Zentrale Dokumentation wird durch Standards erst möglich
#3:
Definition und Einsatz eines
    Coding Standards
Coding Standards
  Jeder Entwickler hat einen eigenen Stil

  Coding Standards vereinheitlichen die Formatierung

  Der gesamte Code wird für alle leichter lesbar.

  Einarbeitung in „fremde“ Codeteile wird beschleunigt.

  Fertige Coding Standards gibt es ...
     PEAR Coding Styleguide
     Zend PHP Coding Standards
     etc.

  Alternative: Definition eines eigenen Standards

  Tipp: Beachten Sie bei der Einführung die Kompatibilität zu ggf.
   eingesetzten Frameworks.

  Herausforderung: Trennung von „neuem“ und „legacy“ Code.
#4:
„Unterstützung“ beim
Einhalten des Coding
     Standards
Coding Standards einhalten
  Standards sind nur sinnvoll, wenn sich alle daran halten

  Erfahrung zeigt, dass die pure Existenz die Einhaltung nicht
   garantiert.

  Regelmäßige, automatische Überprüfung daher erforderlich
    PHP_CodeSniffer

  Integration in IDE stellt sinnvolle Unterstützung dar
     Eclipse PTI (http://www.phpsrc.org/)
    Netbeans (http://www.whitewashing.de/blog/articles/127)

  Problematisch aber wirkungsvoll: Einsatz von Pre-Commit-
   Hooks, die das einchecken verhindern.
#5:
Einsatz von Code Reviews
Code Reviews
  Führen sie einen Prozess bzw. Tool zur Durchführung von Code
   Reviews ein.

  Viele Vorteile
     Besseres Verständnis des gesamten Codes
     Code wird besser
     Know How Transfer wird vereinfacht
     Fehler fallen früher auf (Vier-Augen-Prinzip)
     Flexiblere Einsatzmöglichkeiten der einzelnen
      Teammitglieder.
     Förderung von „Collective Code Ownership“

  Teammitglieder sollten sich gegenseitig „reviewen“ um
   Flaschenhälse zu vermeiden.
Review Board
#6:
Build automatisieren
Build automatisieren
  Verwenden Sie ein Tool um ihre Builds zu automatisieren
     Phing
     Ant
     Make, etc.

  Spart Zeit und Kosten

  Schont die Nerven

  Grundlage für weitere Automatisierung
     Generierung von Modelklassen
     Ausführen von Unittests
     Erstellung von PEAR-Paketen
     etc.
#7:
Führen Sie ihren Build
  regelmäßig aus.
Continous Integration

  Die Software wird kontinuierlich gebaut und getestet.

  Intervall gesteuert oder nach jedem commit.

  Im Fehlerfall wird eine Benachrichtigung ans Team verschickt.

  Es entsteht ein zeitlicher Bezug zwischen Commit und
   fehlerhaftem Build.

  Fehlersuche beschränkt sich in der Regel auf die vom letzten
   Commit betroffenen Dateien.

  Erlaubt weitere Analysen, PHP_Codesniffer, Metriken, etc.

  Kostenlose Tools: phpUnderControl bzw. Cruisecontrol, Hudson
#8:
Setzen Sie Unittests ein
Unittests
  Lassens Sie besser schlafen.

  Nimmt die Angst vor Veränderungen.

  Änderungen sind vorprogrammiert.

  Wenige Tests sind besser als gar keine.

  Guter Start: Ein Test pro Bug.

  Tests müssen automatisiert durchgeführt werden.
#9:
Verwenden Sie ein Tool zur
  zentralen Verwaltung
Bugtracker, Wiki, etc.
  Moderne Tools verbinden Bugtracker, Wiki, uvm. unter einer
   Oberfläche.

  Alle Informationen liegen an einer zentralen Stelle vor.

  Unterstützen bei Verwaltung von Repositories, Usern und
   Gruppen.

  Grundlage für Statistiken und weitere Automatisierung.

  Freie und kommerzielle Systeme verfügbar:
     Redmine
     Trac
     Jira
#10:
Fragen und Antworten!
Quellen und Links
  Software Entwicklung im Team von Stephan Schmidt
   http://www.slideshare.net/schst/softwareentwicklung-im-team

  Continuous Integration: Improving Software Quality and
   Reducing Risk
   http://www.amazon.com/Continuous-Integration-Improving-
   Software-Reducing/dp/0321336380

  Source Code Management
     Subversion http://subversion.apache.org/
     GIT http://git-scm.com/
     Bazaar http://bazaar.canonical.com/

  PHP_CodeSniffer
   http://pear.php.net/package/PHP_CodeSniffer/

  PHP_CodeSniffer
     Eclipse PHP Tool Integration PTI http://www.phpsrc.org
     Integration in Netbeans
      http://www.whitewashing.de/blog/articles/119
Quellen und Links
  CodeReview-Tools
     ReviewBoard http://www.reviewboard.org/
    Rietvield
     http://code.google.com/intl/de-DE/appengine/articles/
     rietveld.html

  Build-Tools:
     Phing http://phing.info/
    Ant http://ant.apache.org/
    Make http://www.gnu.org/software/make/

  Continous Integration
    Cruisecontrol http://cruisecontrol.sourceforge.net/
    phpUnderControl http://www.phpundercontrol.org/
    Hudson http://hudson-ci.org/
Quellen und Links
  Unittesting
     PHPUnit http://www.phpunit.de

  Projektverwaltung:
    Redmine http://www.redmine.org/
    Trac http://trac.edgewall.org/
    JIRA http://www.atlassian.com/software/jira/
    XINC http://code.google.com/p/xinc/

Weitere ähnliche Inhalte

Andere mochten auch

ALKAID-Herramientas-de-Desarrollo-Software
ALKAID-Herramientas-de-Desarrollo-SoftwareALKAID-Herramientas-de-Desarrollo-Software
ALKAID-Herramientas-de-Desarrollo-Software
Alkaid · Open Source Business Software
 
Certificates
CertificatesCertificates
Certificates
Mohamed Hassan
 
simphiwe cv
simphiwe cvsimphiwe cv
simphiwe cv
sippy Simphiwe
 
UniversityofTexasatArlington_AFPM_Submission2
UniversityofTexasatArlington_AFPM_Submission2UniversityofTexasatArlington_AFPM_Submission2
UniversityofTexasatArlington_AFPM_Submission2
Nicholas Ballard
 
Cuatro problemas ambientales
Cuatro problemas ambientalesCuatro problemas ambientales
Cuatro problemas ambientales
priscilamedina123
 
#Horizon2020 and #OpenAccess in 10 minutes!
#Horizon2020 and #OpenAccess in 10 minutes!#Horizon2020 and #OpenAccess in 10 minutes!
#Horizon2020 and #OpenAccess in 10 minutes!
Jean-François Dechamp
 
Izinkondlo zika bw vilakazi
Izinkondlo zika bw vilakaziIzinkondlo zika bw vilakazi
Izinkondlo zika bw vilakazi
Nsindiso Clement
 
SSC Electrical & Building Materials
SSC Electrical & Building MaterialsSSC Electrical & Building Materials
SSC Electrical & Building Materials
Salum Awadh
 
Hubbell Guatemala 2011
Hubbell Guatemala 2011Hubbell Guatemala 2011
Hubbell Guatemala 2011
Victor Ponce
 
fundamentals of electrical engineering
 fundamentals of electrical engineering fundamentals of electrical engineering
fundamentals of electrical engineering
ayushi kesarvani
 
Load Balancing In Cloud Computing newppt
Load Balancing In Cloud Computing newpptLoad Balancing In Cloud Computing newppt
Load Balancing In Cloud Computing newppt
Utshab Saha
 
Suxo carta abril 2012(3)
Suxo carta abril 2012(3)Suxo carta abril 2012(3)
Suxo carta abril 2012(3)
Erbol Digital
 
Geo 101 solar power
Geo 101 solar power Geo 101 solar power
Geo 101 solar power
walliejones
 
Test
TestTest
Test
ahpvista
 

Andere mochten auch (14)

ALKAID-Herramientas-de-Desarrollo-Software
ALKAID-Herramientas-de-Desarrollo-SoftwareALKAID-Herramientas-de-Desarrollo-Software
ALKAID-Herramientas-de-Desarrollo-Software
 
Certificates
CertificatesCertificates
Certificates
 
simphiwe cv
simphiwe cvsimphiwe cv
simphiwe cv
 
UniversityofTexasatArlington_AFPM_Submission2
UniversityofTexasatArlington_AFPM_Submission2UniversityofTexasatArlington_AFPM_Submission2
UniversityofTexasatArlington_AFPM_Submission2
 
Cuatro problemas ambientales
Cuatro problemas ambientalesCuatro problemas ambientales
Cuatro problemas ambientales
 
#Horizon2020 and #OpenAccess in 10 minutes!
#Horizon2020 and #OpenAccess in 10 minutes!#Horizon2020 and #OpenAccess in 10 minutes!
#Horizon2020 and #OpenAccess in 10 minutes!
 
Izinkondlo zika bw vilakazi
Izinkondlo zika bw vilakaziIzinkondlo zika bw vilakazi
Izinkondlo zika bw vilakazi
 
SSC Electrical & Building Materials
SSC Electrical & Building MaterialsSSC Electrical & Building Materials
SSC Electrical & Building Materials
 
Hubbell Guatemala 2011
Hubbell Guatemala 2011Hubbell Guatemala 2011
Hubbell Guatemala 2011
 
fundamentals of electrical engineering
 fundamentals of electrical engineering fundamentals of electrical engineering
fundamentals of electrical engineering
 
Load Balancing In Cloud Computing newppt
Load Balancing In Cloud Computing newpptLoad Balancing In Cloud Computing newppt
Load Balancing In Cloud Computing newppt
 
Suxo carta abril 2012(3)
Suxo carta abril 2012(3)Suxo carta abril 2012(3)
Suxo carta abril 2012(3)
 
Geo 101 solar power
Geo 101 solar power Geo 101 solar power
Geo 101 solar power
 
Test
TestTest
Test
 

Ähnlich wie Software Entwicklung im Team

Ueberlegungen Projektmanagement Web Applications
Ueberlegungen Projektmanagement Web ApplicationsUeberlegungen Projektmanagement Web Applications
Ueberlegungen Projektmanagement Web Applications
Günther Haslbeck
 
Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI
Florian Bosselmann
 
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsSoftware-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Andreas Schreiber
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Bjoern Reinhold
 
Config as Code: Der Weg zu Configuration as Code
Config as Code: Der Weg zu Configuration as CodeConfig as Code: Der Weg zu Configuration as Code
Config as Code: Der Weg zu Configuration as Code
DevOps Meetup Bern
 
Top 10 Internet Trends 2005
Top 10 Internet Trends 2005Top 10 Internet Trends 2005
Top 10 Internet Trends 2005
Jürg Stuker
 
Templates, Code & Tools
Templates, Code & ToolsTemplates, Code & Tools
Templates, Code & Tools
Ulrich Krause
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
Ulrich Krause
 
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Bjoern Reinhold
 
Agiles Testen - Überblick
Agiles Testen - ÜberblickAgiles Testen - Überblick
Agiles Testen - Überblick
Claudia Haußmann 🦋
 
Software-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-Anwendungen
Gjero Krsteski
 
DevSecOps .pptx
DevSecOps .pptxDevSecOps .pptx
DevSecOps .pptx
ChristianBauer61
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem Softwerker
Dennis Wilson
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Gregor Biswanger
 
Web Entwicklung mit PHP - Teil 3 Beta
Web Entwicklung mit PHP - Teil 3 BetaWeb Entwicklung mit PHP - Teil 3 Beta
Web Entwicklung mit PHP - Teil 3 Beta
Hans-Joachim Piepereit
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
Thorsten Kamann
 
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Kai Donato
 
Composer und TYPO3
Composer und TYPO3Composer und TYPO3
Composer und TYPO3
Peter Kraume
 
6 verschiedene Arten von Software
6 verschiedene Arten von Software6 verschiedene Arten von Software
6 verschiedene Arten von Software
YUHIRO
 
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareEinsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Andreas Schreiber
 

Ähnlich wie Software Entwicklung im Team (20)

Ueberlegungen Projektmanagement Web Applications
Ueberlegungen Projektmanagement Web ApplicationsUeberlegungen Projektmanagement Web Applications
Ueberlegungen Projektmanagement Web Applications
 
Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI
 
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsSoftware-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
Config as Code: Der Weg zu Configuration as Code
Config as Code: Der Weg zu Configuration as CodeConfig as Code: Der Weg zu Configuration as Code
Config as Code: Der Weg zu Configuration as Code
 
Top 10 Internet Trends 2005
Top 10 Internet Trends 2005Top 10 Internet Trends 2005
Top 10 Internet Trends 2005
 
Templates, Code & Tools
Templates, Code & ToolsTemplates, Code & Tools
Templates, Code & Tools
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
Agiles Testen - Überblick
Agiles Testen - ÜberblickAgiles Testen - Überblick
Agiles Testen - Überblick
 
Software-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-Anwendungen
 
DevSecOps .pptx
DevSecOps .pptxDevSecOps .pptx
DevSecOps .pptx
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem Softwerker
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
 
Web Entwicklung mit PHP - Teil 3 Beta
Web Entwicklung mit PHP - Teil 3 BetaWeb Entwicklung mit PHP - Teil 3 Beta
Web Entwicklung mit PHP - Teil 3 Beta
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
 
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
 
Composer und TYPO3
Composer und TYPO3Composer und TYPO3
Composer und TYPO3
 
6 verschiedene Arten von Software
6 verschiedene Arten von Software6 verschiedene Arten von Software
6 verschiedene Arten von Software
 
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareEinsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
 

Software Entwicklung im Team

  • 1. Software Entwicklung im Team Stefan Brandt 28.04.2010 PHP Usergroup D/DU/KR
  • 2. Über mich... •  Stefan Brandt •  PHP seit 2001 (register_globals=on) •  Fachinformatiker Systemintegration •  Zend Certified Engineer •  TWT Interactive GmbH •  Aktuelles Team •  10 PHP Entwickler •  XING: http://www.xing.com/profile/Stefan_Brandt27 •  Privat: Handball & Reisen
  • 3. Disclaimer   Die nachfolgenden Punkte beruhen auf meinen/ unseren praktischen Erfahrungen   Empfehlungen   Nicht in Stein gemeißelt   Keine Garantie! ;-)
  • 4. Software Entwicklung im Team ...  ... hat viele Bestandteile 1.  Menschen 2.  Tools und Standards 3.  Prozesse 4.  Kommunikation
  • 6. Versionskontrolle   Grundlage für Arbeit an einer gemeinsame Codebasis.   Jeder arbeitet in seiner eigenen Arbeitskopie.   Schafft mehr Transparenz   Wer hat was wann und warum geändert?   Welche Dateien waren betroffen?   Rollback bei Fehlern einfach möglich   Hilfsmittel und kein Kontrollmittel   Gute, kostenlose Systeme verfügbar   Subversion   GIT   Bazaar   etc.   Kein Grund es nicht zu benutzen!
  • 7. #2: Standardisieren der Entwicklungsumgebung
  • 8. Standardisierte Entwicklungsumgebung   Editor, IDE, Build-Werkzeuge, Entwicklungsserver, etc.   Erleichtert die Integration neue Mitarbeiter/Teammitglieder   Kann von den Sysadmins vorinstalliert werden   Besserer Support möglich (alle haben die gleichen Probleme) ;-)   Einstellungen und Tools können zentral vorgegeben werden   Zentrale Dokumentation wird durch Standards erst möglich
  • 9. #3: Definition und Einsatz eines Coding Standards
  • 10. Coding Standards   Jeder Entwickler hat einen eigenen Stil   Coding Standards vereinheitlichen die Formatierung   Der gesamte Code wird für alle leichter lesbar.   Einarbeitung in „fremde“ Codeteile wird beschleunigt.   Fertige Coding Standards gibt es ...   PEAR Coding Styleguide   Zend PHP Coding Standards   etc.   Alternative: Definition eines eigenen Standards   Tipp: Beachten Sie bei der Einführung die Kompatibilität zu ggf. eingesetzten Frameworks.   Herausforderung: Trennung von „neuem“ und „legacy“ Code.
  • 12. Coding Standards einhalten   Standards sind nur sinnvoll, wenn sich alle daran halten   Erfahrung zeigt, dass die pure Existenz die Einhaltung nicht garantiert.   Regelmäßige, automatische Überprüfung daher erforderlich   PHP_CodeSniffer   Integration in IDE stellt sinnvolle Unterstützung dar   Eclipse PTI (http://www.phpsrc.org/)   Netbeans (http://www.whitewashing.de/blog/articles/127)   Problematisch aber wirkungsvoll: Einsatz von Pre-Commit- Hooks, die das einchecken verhindern.
  • 14. Code Reviews   Führen sie einen Prozess bzw. Tool zur Durchführung von Code Reviews ein.   Viele Vorteile   Besseres Verständnis des gesamten Codes   Code wird besser   Know How Transfer wird vereinfacht   Fehler fallen früher auf (Vier-Augen-Prinzip)   Flexiblere Einsatzmöglichkeiten der einzelnen Teammitglieder.   Förderung von „Collective Code Ownership“   Teammitglieder sollten sich gegenseitig „reviewen“ um Flaschenhälse zu vermeiden.
  • 17. Build automatisieren   Verwenden Sie ein Tool um ihre Builds zu automatisieren   Phing   Ant   Make, etc.   Spart Zeit und Kosten   Schont die Nerven   Grundlage für weitere Automatisierung   Generierung von Modelklassen   Ausführen von Unittests   Erstellung von PEAR-Paketen   etc.
  • 18. #7: Führen Sie ihren Build regelmäßig aus.
  • 19. Continous Integration   Die Software wird kontinuierlich gebaut und getestet.   Intervall gesteuert oder nach jedem commit.   Im Fehlerfall wird eine Benachrichtigung ans Team verschickt.   Es entsteht ein zeitlicher Bezug zwischen Commit und fehlerhaftem Build.   Fehlersuche beschränkt sich in der Regel auf die vom letzten Commit betroffenen Dateien.   Erlaubt weitere Analysen, PHP_Codesniffer, Metriken, etc.   Kostenlose Tools: phpUnderControl bzw. Cruisecontrol, Hudson
  • 21. Unittests   Lassens Sie besser schlafen.   Nimmt die Angst vor Veränderungen.   Änderungen sind vorprogrammiert.   Wenige Tests sind besser als gar keine.   Guter Start: Ein Test pro Bug.   Tests müssen automatisiert durchgeführt werden.
  • 22. #9: Verwenden Sie ein Tool zur zentralen Verwaltung
  • 23. Bugtracker, Wiki, etc.   Moderne Tools verbinden Bugtracker, Wiki, uvm. unter einer Oberfläche.   Alle Informationen liegen an einer zentralen Stelle vor.   Unterstützen bei Verwaltung von Repositories, Usern und Gruppen.   Grundlage für Statistiken und weitere Automatisierung.   Freie und kommerzielle Systeme verfügbar:   Redmine   Trac   Jira
  • 25. Quellen und Links   Software Entwicklung im Team von Stephan Schmidt http://www.slideshare.net/schst/softwareentwicklung-im-team   Continuous Integration: Improving Software Quality and Reducing Risk http://www.amazon.com/Continuous-Integration-Improving- Software-Reducing/dp/0321336380   Source Code Management   Subversion http://subversion.apache.org/   GIT http://git-scm.com/   Bazaar http://bazaar.canonical.com/   PHP_CodeSniffer http://pear.php.net/package/PHP_CodeSniffer/   PHP_CodeSniffer   Eclipse PHP Tool Integration PTI http://www.phpsrc.org   Integration in Netbeans http://www.whitewashing.de/blog/articles/119
  • 26. Quellen und Links   CodeReview-Tools   ReviewBoard http://www.reviewboard.org/   Rietvield http://code.google.com/intl/de-DE/appengine/articles/ rietveld.html   Build-Tools:   Phing http://phing.info/   Ant http://ant.apache.org/   Make http://www.gnu.org/software/make/   Continous Integration   Cruisecontrol http://cruisecontrol.sourceforge.net/   phpUnderControl http://www.phpundercontrol.org/   Hudson http://hudson-ci.org/
  • 27. Quellen und Links   Unittesting   PHPUnit http://www.phpunit.de   Projektverwaltung:   Redmine http://www.redmine.org/   Trac http://trac.edgewall.org/   JIRA http://www.atlassian.com/software/jira/   XINC http://code.google.com/p/xinc/