Системы управления проектами
Для постоянного общения с другими участниками процесса необходимо, чтобы история переписки сохранялась и к ней был удобный доступ. Для этого используют сервисы и веб-приложения для управления проектами, такие как TeamLab. или Redmine.
Redmine — открытое серверное веб-приложение для управления проектами и задачами (в том числе для отслеживания ошибок). Redmine написан на Ruby и представляет собой приложение на основе широко известного веб-фреймворка Ruby on Rails. Распространяется согласно GNU General Public License.
Функциональные возможности
Данный продукт предоставляет следующие возможности:
- ведение нескольких проектов;
- гибкая система доступа, основанная на ролях;
- система отслеживания ошибок;
- диаграммы Ганта и календарь;
- ведение новостей проекта, документов и управление файлами;
- оповещение об изменениях с помощью RSS-потоков и электронной почты;
- форумы для каждого проекта;
- учёт временных затрат;
- настраиваемые произвольные поля для инцидентов, временных затрат, проектов и пользователей;
- лёгкая интеграция с системами управления версиями (SVN, CVS, Git, Mercurial, Bazaar и Darcs);
- создание записей об ошибках на основе полученных писем;
- поддержка множественной аутентификации LDAP;
- возможность самостоятельной регистрации новых пользователей;
- многоязычный интерфейс (в том числе русский);
- поддержка СУБД MySQL, Microsoft SQL Server[2], PostgreSQL, SQLite, Oracle.
Подобные приложения помогают распределять задачи между разработчиками и задавать для них приоритет, отслеживать затраченное время и многое другое.
Системы контроля версий
Так же при командной разработке возникает проблема версионности. Если два разработчика одновременно открыли один и тот же файл и начали его редактировать, то при сохранении результатов неизбежно возникнут проблемы. Второй просто перезапишет изменения первого. Для избежания подобных ситуаций существуют системы контроля версий, например SVN или GIT. Это еще одна незаменимая вещь при командной разработке.
В SVN (не сомневаюсь, что и в GIT тоже) есть крайне полезные хуки — скрипты, срабатывающие по определенному событию. В их числе post commit. Этот хук при выполнении коммита загружает в указанное место на сервере все отредактированные файлы. Это очень удобно, например, при работе с версткой. Сверстал макет, сделал коммит — дал ссылку заказчику. Если он обнаружил баги — исправил, сделал коммит, ответил, что можно проверять. Никаких загрузок архивов на сервер, которые при большом количестве правок отнимают много времени.
IDE
IDE — (Integrated Development Environment — интегрированная среда разработки. Как ни странно, но многие разработчики, особенно это касается программистов, пользуются примитивным софтом, например Notepad++. Программа незаменима когда нужно что-то быстро отредактировать. Загружается он моментально, это несомненный плюс. Но когда речь заходит о ежедневном использовании, подобные миниатюрные приложения должы уступать место полноценным IDE со всеми их преимуществами. Рассмотрим PHPStorm, имеющий следующие полезные функции:
- Встроенная поддержка систем управления версиями. Открыл проект, нажал Сtrl + T — апдейт выполнен. Внес изменения, нажал Сtrl + K — коммит выполнен.
- Автовыгрузка на FTP. Не всегда есть возможность установить и настроить SVN на сервере у клиента. В таких случаях приходится работать по-старинке — через FTP. Но PHPStorm и здесь нам облегчит жизнь — при сохранении файл автоматически обновляется на сервере. А при загрузке проекта программа обновляет все файлы до последней версии, если они за это время изменились.
- удобный интерфейс,
- красивые темы оформления,
- автокомплит кода,
- инспекция кода на ошибки (например встроенный W3C валидатор для HTML и CSS) и т.д.
Облачные хранилища данных
Помимо текстовых файлов, при работе в команде нужно обмениваться и бинарными (напр. изображения). Для этих целей системы контроля версий использовать смысла мало: при возникновении конфликта все равно объединить два файла не удастся, при большом количестве ревизий репозиторий будет иметь огромный размер. В случае с PSD файлами, которые зачастую весят по 20 мегабайт и более, эта проблема вообще становится критичной. По этому для таких целей лучше подойдет облачное хранилище данных. Среди которых можно выделить ЯндексДиск, Google Drive, Dropbox и другие.