Я думаю, что вы запутываете планирование и дизайн/архитектуру. Планирование обычно относится к деловой стороне вещей - сколько людей будут делать что-то в течение долгого времени. Дизайн/архитектура должен иметь дело с тем, как делать все правильно, предполагая, что у вас достаточно времени и бюджета.
С точки зрения дизайна большинство разработчиков знают UML в некоторой степени, но не обязательно используют его. Если им предоставляются инструменты CASE, они могут использовать диаграммы классов для индивидуального использования, но не часто использовать другие. Инструменты CASE заставляют вас использовать «формальную форму» UML, поэтому они довольно строги и ограничивают их творческое использование. Модель CASE часто создается для получения кода. В моей собственной компании мы создаем тонну кода, но не используем UML вообще.
Для совместного проектирования и обзора (например, на чертеже) UML чаще встречается, потому что «все говорят». Однако из наблюдательных исследований, которые я сделал и опубликовал, UML, нарисованный на доске, просто означает конец - люди заимствуют определенные обозначения, но используют их для общения идей. Таким образом, вы увидите такие вещи, как последовательности и поток управления на диаграмме классов. Полученные артефакты - это не то, что вы могли бы просто захватить в инструмент CASE. Вы можете увидеть my dissertation для многих фотографий того, как выглядят эти вещи, когда вы группируете кучу опытных разработчиков для создания дизайна.
С точки зрения планирования, мой опыт в том, что это сильно отличается между компаниями-разработчиками программного обеспечения и компаниями, которые также разрабатывают программное обеспечение. В последнем (которые составляют большинство) планирование на макроуровне часто делается на основе корпоративной культуры и планирования бизнес-стиля, такого рода материал, который вы изучаете в МВА. Обычно это не касается программного обеспечения, и, что касается управления, вы можете создавать программное обеспечение или выпекать кексы, это всего лишь цифры. На более микроуровне нет какой-либо официальной системы. Инструменты, такие как диаграммы и таблицы Gantt, используются для отслеживания того, что по сути является наилучшим вариантом догадок и сокращенных расписаний. Но, в конце концов, это зависит от опыта руководства - бывшие разработчики обычно сильнее на этом. Некоторые методы, такие как Agile, упрощают планирование в некотором роде.
Просто получить A, получить стажировку, а затем получить работу. Я использую не более 20% того, что я узнал в колледже. Степень колледжа - это способ отсеять некомпетентных людей, плюс это очень дорогая таблетка для плацебо. Фактическое обучение начинается с работы. Это не имеет значения; просто хорошо в классе. –
@Hamish: степень в колледже дает вам фон CS, который может быть полезен в задании (например, лучше понять, как разрабатываются алгоритмы, как доказать правильность, как измерить производительность), это не значит, учите вас быть разработчиком или иметь инженерные навыки.Если бы торговые школы, которые просто учили развитие, были конкурентоспособными и высококачественными, меньше компаний сосредоточились бы на степенях СС. – Uri
Я полностью согласен с Хэмишем в связи с тем, что теперь я использую менее 20% (может быть, менее 10, я думаю, иногда) того, что я узнал в колледже. Тем не менее, я не знаю, это ли это только я или что, но приличный кусок из этих 10-20 процентов был из моих классов разработки программного обеспечения. Профессор был действительно знающим парнем, который был в отрасли уже давно. Мне жаль, что я не смогу вернуться назад и не освоить советы этих классов сейчас, когда я знаю, о чем это говорит. – Brandi