Как организовать разработку программ?
Мы как раз сейчас внедряем методики Agile, конкретно Scrum.
Пока конечно плохо получается, но во всяком случае бэклог вести уже начали и программисты без дела сидеть перестали…
Имхо, главное это не Scrum или Agile, а правильный подход к проектированию. То есть сначала тщательная проработка архитектуры, рисование всевозможных схем, написание документации. И только потом приступать уже к кодингу.

Если проект маленький, то можно обойтись и без багтрекера. В Git лучше коммитить часто на локальной машине, а перед push делать squash в несколько коммитов.