Периодически задается вопрос: обязан ли проектировщик ПО уметь программировать?
Наблюдения и опыт показывает, что: проектировщик не обязан уметь программировать.
причем у такого проектировщика - проект может получаться даже
лучше, чем у проектировщика-программиста.
т.к. программисту часто мешает весь
его лес знаний, т.к. за этим лесом бывает тяжело увидеть и сформулировать суть
проекта.
но в то же время, проектировщика-непрограммиста нельзя
подпускать к непосредственной реализации проекта.
т.е. обязательно должен
быть человек: который возьмет проект, его осмыслит - и преобразует проект
уже в термины кода.
если же проектировщика-непрограммиста просто поставить
над кодерами, то в итоге получается решение - буквальное - что вижу в проекте,
то и делаю.
написано в проекте - фабрика, делаем класс- фабрика, хотя в
данном случае может уместнее было фабрику сделать через одну строчку
кода
написано в проекте - надо уметь складывать 1+2, будем делать складывание
1+2; а складывать 2+1 - уже не будем
и т.д.
можно провести параллель с
производством: там есть деление на конструкторов и технологов.
Первые знают
что надо сделать, вторые - знают как это можно сделать.
и соответственно
есть: как главный конструктор, так и главный технолог.
и первые прорабатывают
проект с учетом конструкции, а вторые прорабатывают проект с учетом
технологии. при разработке ПО получается все тоже самое: "главный проектировщик" - должен ответить на вопрос "что строится", а "главный программист" на вопрос "как строится" (фактически задача "главного программиста" - это увязать цели и задачи проекта с огнями разработки)