Пишу средний проект на java.
Сроки довольно сжатые.
Как лучше распределить свое время:
1.Писать код по намеченной логике, и уже в конце начать его тестировать.
2.Или разбить логику на под задачи и писать/тестировать по кусочкам.
Второй способ кажется логичней, но допустим написав 1-5 пункты своей задачи и протестировав я пойму что 8 и 9 пункты вынуждают меня 1-5 пункты переписать. Так собственно и произошло, поэтому я этот вопрос и задаю. В итоге время на тесты было потрачено впустую.
И если есть хорошие статьи на эту тему буду благодарен.
Ответ
Agile (итеративное) управление проектом удлиняет сроки разработки (во втором варианте вы по сути описываете именно agile технологию), но минимизирует риски не неверного проектирования.
К сожалению в 90% проектов при написании ТЗ (или планировании проекта) невозможно на 100% сразу определить все возможные проблемы. Как правильно отметили вы же сами ответили, проект после какой-то стадии начинает жить своей собственной жизнью, а именно:
1-5 пункты своей задачи и протестировав я пойму что 8 и 9 пункты вынуждают меня 1-5 пункты переписать.
Если проект небольшой или вы уверены в том, что риски неверного проектирования минимальны, то можно сразу писать и тестировать в конце.
Можно выбрать другой способ разбить задачу не на 8-9 пунктов, а только на 2-3 пункта ибо чем больше пунктом/итераций, тем более вы даете свободу нелинейности проектирования, зато чем меньше пунктов, тем больше рисков неверного проектирования.
Соответственно, вам нужно определить этапы/итерации проекта не исходя из внутренней логики проекта, а исходя из рисков неверного проектирования, то есть если вы видите в проекте, скажем 10 логических этапов, из которых 5 вам хорошо понятны, а еще 5 "темный лес", то имеет смысл проект разделить на 6 этапов: на 1 этап в котором собрать 5 понятных вам пунктов, а 5 непонятных так и оставить как 5 этапов. Понятно, что такое не всегда возможно, но тем не менее - как общая идея.
Комментариев нет:
Отправить комментарий