Я работаю в средней / крупной компании, которая придерживается, как мне кажется, некоторых хороших практик для развития, возможно, не самых лучших, но достаточно хороших.
У нас есть некоторый ресурс для разработки, который реализуется на основе "делай, тестируй, если это полезно, иначе выбрасывай". Я обнаружил, что большинство из так называемых лучших практик иногда идеально идеально, но невозможно или даже вредно в реальной жизни.
Например, мы используем сайт dotproject для нашей команды. Идея заключалась в том, чтобы отслеживать задачи, обновлять прогресс и так далее. Мы использовали «сделай, проверь, если» с ним, и результат был… мы выбросили его и просто сохранили форум, который был чрезвычайно полезен для общения между нами и отслеживания выводов встреч и списков TO DO… Отслеживание каждой задачи с другой стороны оказалось трудоемким и нереальным.
Во-первых, никто этого не делал, это не занимало много времени, но разработчики ненавидели это и делали их несчастными, потому что им приходилось помнить, что нужно было обновлять каждое задание, оценки времени выполнения задания оказались нереальными времени.
Итак, мой вопрос: какие методы разработки вы пробовали и нашли полезными / бесполезными?
Я имею в виду, что, как и в реальной жизни, это не теоретическая передовая практика, а практический опыт. Я ищу новые методы (или инструменты или что-то в этом роде) и хотел бы узнать, что делать дальше. Наш текущий статус:
- Внутренняя система отслеживания ошибок (полезно)
- Полуавтоматические сборки (каждый разработчик должен поддерживать эквивалент make-файла, чтобы система могла их создавать).
- НЕТ автоматизированного тестирования. Тестирование проводится тестовой командой. У нас есть интеграционные тесты и широкие системные тесты.
- Две лаборатории тестирования, одна для команды тестирования, другая для разработчиков (в случае, если им необходимо выполнить тестирование, включающее более одной машины, или выполнить тестирование вне машины разработки)
- В целом нет юнит-тестирования. В некоторых библиотеках они есть, но обычно разработчик тестирует свои модули так, как хочет.
- Полная спецификация с использованием дверей.
- Протоколы испытаний. Официально, написано в Word.
- Контроль источника (Clear Case). Обычно все делается в основной ветке, всякий раз, когда мы отправляем версию, она помечается, при необходимости создается ветка для исправлений этой версии.
Примечание: Когда вы можете (если не возражаете: P), можете ли вы попытаться обосновать свое предложение? Как и почему это было полезно? Как улучшить вашу работу?