Системный аналитик описывает алгоритмы преобразования данных, но на верхнем уровне. Естественно эти алгоритмы не будут оптимальными (у СА ограниченные знания в алгоритмах и опыт их применения + недостаток знаний свойств технологий). Именно в момент чтения спецификации разработчик должен понять, чего добивается аналитик и предложить альтернативу, пускай на словах, после чего имплементировать её в код.
Аналитик протаптывает дорожку для разработчика, но последний должен тоже держать на себе часть ответственности, где надо сокращать, а где надо усложнять маршрут. Из разработчика должны порождаться требования, иначе всё будет как в институте: "если аудитория не задаёт вопросов, то ей либо всё понятно, либо ничего не понятно".
Разработчик не должен понимать 'что добивается аналитик', он должен прочесть явную стори с мотивацией и ограничениями.