Контроль версій
Оскільки ви працюєте в команді, вам найбільше цікаво, що ви хочете щось розповсюджувати. Ваші кандидати - Git і Mercurial. Це означає, що ваша команда може взяти на себе місце, не порушуючи проект, але все ж відстежувати їх роботу, а потім пересилати ці зобов'язання на центральний сервер. Це також набагато швидше і має менше конфліктів злиття, оскільки код відстежується як набір змін, а не редагування. Прочитайте, хоча посібник з hginit (написаний співзасновником переповнення стека не менше), і ви зрозумієте трохи більше про те, що таке DVCS. http://hginit.com/
Ви також повинні використовувати сховище для розгортання замість rsync або ftp.
Тестова розробка
Залежно від того, що ви робите тестування, ви можете витратити багато часу. Я не кажу, що ви повинні повністю його пропустити, для менших проектів це накладні витрати. Якщо ви пишете бібліотеку чи великий довгостроковий проект, обов'язково напишіть тести для цього. Тести допоможуть у фазі технічного обслуговування. Майте на увазі, що TDD не може знайти всіх ваших помилок. Будуть проблеми із користувацьким досвідом, проблеми з компонуванням, проблеми з продуктивністю тощо.
Налагодження
Xdebug - це ваш єдиний вибір тут. Він добре інтегрується з Netbeans. Якщо ви відчуваєте необхідність коли-небудь друкувати змінні, вам слід скористатися файлом журналу. Використовуйте функцію журналу фреймворків, це набагато безпечніше у виробництві.
Планування / діаграми
Якщо ви використовуєте хороший фреймворк, вам не потрібно занадто багато робити детальні діаграми. Будьте простими та працюйте у коротших циклах випуску, легко перепланувати. Вимоги та технічні характеристики проекту неодмінно змінюються, тому я б не витрачав на них весь ваш час. Пам'ятайте, що специфікація коду IS є на найбільш детальному рівні.
Використовуйте інструмент відстеження помилок (див. Нижче), щоб розбити специфікацію на завдання, які ви можете призначити членам команди. Використовуйте центральний інструмент для документування проектів, трекер помилок, ймовірно, матиме вікі.
Ви можете використовувати такий інструмент, як Mysql Workbench, щоб створити схеми баз даних на діаграмах та експортувати їх як SQL.
Рамки та ООП
Це, мабуть, найважливіша частина. Знайдіть собі популярний фреймворк, який підтримуватиме швидкий розвиток та повторне використання коду. Деяким людям не сподобається, що я це кажу, але рамки повинні диктувати ваш спосіб роботи. Він повинен забезпечувати структуру, щоб один розробник міг перемикати проект і точно знати, де знаходиться контролер певної сторінки, що саме є змінними шаблону та як запитувати модель. Деякі рамки дають тут занадто велику гнучкість, і ви побачите, що розробники не завжди використовують фреймворк однаково. Мені подобається філософія пітона; повинен бути один очевидний спосіб зробити все. Ось чому мені подобаються джанго і рейки, вони досить впевнені в собі, і це означає, що я можу подивитися на код когось іншого і зрозуміти, що це робить. Symfony виглядає як найкращий варіант тут,
Існує багато питань, що стосуються рамки, щодо переповнення стека, як цей:
/programming/2648/what-php-framework-would-you-choose-for-a-new-application-and-why
Відстеження помилок
Отримайте у вашої команди хороший трекер помилок, який створений для розробників. Не використовуйте щось над спрощеним, як basecamp. Redmine та Unfuddle - це два приклади чудових помилок помилок, вони також можуть відстежувати час та інтегруватись із вашими сховищами. Ваша команда повинна використовувати цей інструмент для спілкування з питань, а не електронною поштою чи чатом. Це спрощує нового розробника, коли наявна історія помилок і документів. Ця стаття пояснює, що саме потрібно робити будь-якому хорошому трекеру помилок та чому. http://www.joelonsoftware.com/articles/fog0000000029.html