How to to manage & develop big TYPO3 projects?

php, project-management, typo3

Solution

Problems we could find in large TYPO3 projects are not to much different from any development project.

General practices :

- configure continuous integration platform with continuous deployment tools;

- Test Driven Development with automated testing;

- robust architecture (dB, URL routing, ...);

- performance tests during development;

- use versionning with formatted comments;

- use powerful IDE as PHPStorm, Eclipse, Netbeans;

Common TYPO3 practices :

- use official API;

- follow TYPO3 API code guideline;

- use TYPO3 hooks where You can if You need to modify the logic of Core or 3rd party extensions;

- use TypoScript constants to separate data from logic in Your configuration;

Additional references :

- TYPO3 Best Practice Workshop

- TYPO3 Best Practices (de)

- TDD & Best Practices mit TYPO3 (de)

Extensions could help to manage complex TYPO3 installation :

- caretaker

- additional reports

Use modern project management methodologies & tools

- Scrum, Kanban, lean developement principles

- Bugtrackers as Redmine, Trac

Books :

- php|architect's Guide to Enterprise PHP Development

Problem

I am developing TYPO3 projects since 2006 now, and projects are getting bigger and more complex. Setting up a simple CMS site with a contact form and news listing is all routine. Right now, we finished a bigger project: A platform for an international company with countless extensions: Login & registration, news, listing database records, dynamic contact forms, surveys & statistics, intranet functions: document upload & download, several backend "tweaks" per TCA modifications, etc. . The project managers got upset at us developers, because sometimes, after we finished on function X and later committed function Y to the dev server, function X was broken. This was related to typoscript settings, extension interdependencies, versioning errors or sometimes simple programming mistakes and typos. I know how to take care of the latter, but in general: From your experience: How can we develop an error-proof system in TYPO3, where everything works in hand and extensions don't get in their way? In other words: How can we secure and isolate functionalities (extensions) - and avoid those interdepency issues? We are working in a DEV team with two developers, and we already use: - Subversion Repository - Local DEV server for development & testing - External typoscript configuration files, split into single files for each extension Edit for Bountyhunters: What I am looking for is a best-practice-summary that might include these topics: - General workflow habits - General coding habits - Reliability of our subversion commits (or Git) - Unit testing (PHPUnit, Selenium?) - Deployment (I haven't yet figured out how automated deployment can help us) - Typoscript best practices

Original source