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