И да и нет.
У грамотного ПМа будет тим лид которому он доверяет и который проверен временем. Все технические аспекты он будет делегировать ему. ПМ должен заниматься стратегией, тактикой, бюджетом и договорами и решением споров команды и заказчика. Если в проекте agile, то роль ПМа сводится именно к этому. Все коммуникации с заказчиком будут лежать на команде и тим лиде.
Если тим лид для ПМа новый, он не даст санкции на расход ресурсов. Он будет контролировать чтобы убедится в отвественности и грамотности тим лида.
Если ПМ доверяет тим лиду, а тим лид доверяет команде, то всё будет нормально с проектом. И понимать все друг друга начнут. И отвественность разделять. И программисты не будут гнуть свою линию, и причёсывать код в ущерб срокам. Все эти действия должны быть согласованы. В первую очередь с ПМом, так как он первый кто несёт отвественность за сроки и бюджет.
У Google Guava есть набор методов в классе Preconditions которые прячут тот самый if (condition) throw Exception(message) при этом сохраняют удобство читаемости «assert ...» (в одну строку).
Это действительно уменьшает количество кода по сравнению с if'ами и становится понятно какие вариации недопустимы.
Одно «но»: Не все указывают эти предусловия в javadoc'ах и не все в общем-то их читают, но хорошо что в исходники заглядывают.
Это вам просто так везло. Мне приходилось делать красивые и удобные биллинговые системы под веб и заниматься оптимизацией крупных кластерных приложений. Всё на Java. Поэтому я не согласен с вашим обобщением. Хотя это может просто мне так повезло с работой.
Не хочу теперь в дойче банк :)
У грамотного ПМа будет тим лид которому он доверяет и который проверен временем. Все технические аспекты он будет делегировать ему. ПМ должен заниматься стратегией, тактикой, бюджетом и договорами и решением споров команды и заказчика. Если в проекте agile, то роль ПМа сводится именно к этому. Все коммуникации с заказчиком будут лежать на команде и тим лиде.
Если тим лид для ПМа новый, он не даст санкции на расход ресурсов. Он будет контролировать чтобы убедится в отвественности и грамотности тим лида.
Если ПМ доверяет тим лиду, а тим лид доверяет команде, то всё будет нормально с проектом. И понимать все друг друга начнут. И отвественность разделять. И программисты не будут гнуть свою линию, и причёсывать код в ущерб срокам. Все эти действия должны быть согласованы. В первую очередь с ПМом, так как он первый кто несёт отвественность за сроки и бюджет.
Это действительно уменьшает количество кода по сравнению с if'ами и становится понятно какие вариации недопустимы.
Одно «но»: Не все указывают эти предусловия в javadoc'ах и не все в общем-то их читают, но хорошо что в исходники заглядывают.
Если бы не холодная война, кто его знает на каком уровне была бы сейчас космическая отрасль.
Не хочу теперь в дойче банк :)