Ваши рассуждения хороши, когда ПО пишется после разработки проекта. А бывает наоборот. Пишешь основной код, потом дают проект, дописываешь модуль привязки входов выходов и вперед. А так же бывает программа есть, достаточно типовая установка, и тебе дают проект. А там не PE21, а PIE33.