Что делать, если начальник всегда откладывает важные решения относительно требований и общего дизайна?

12

Начиная новый проект, мой начальник всегда избегает принимать фиксированные решения. Он обычно говорит: хорошо, просто начни что-нибудь писать и будь как можно более универсальным. Когда вы закончите, мы посмотрим, как мы продолжим. Его аргумент в основном заключается в том, что вы никогда не знаете и «гибкой разработки».

Чтобы вопрос был как можно более общим: что вы будете делать, если ваш начальник не любит принимать решения?

Просто придерживайтесь его и напишите код, который может подвергнуться серьезному рефакторингу и частичному переписыванию через несколько недель? Или продолжайте обсуждать, пока босс не примет хотя бы несколько решений? Это более или менее моя нынешняя стратегия. Потому что это как закон физики, в какой-то момент что-то нужно доставить. Либо потому, что начальник босса хочет увидеть результаты, либо потому, что в какой-то момент все становится смешным.

Я также замечаю, что мой начальник критикует почти все. Даже предложения, которые основаны на его собственном ...

Джимбо
источник
1
В соответствии с лекциями SICP, начните писать код на LISP :)
Job
@Job - LISP предназначен для этого рабочего процесса? ;)
Джимбо
Lisp (но я бы порекомендовал Clojure) позволяет вносить радикальные изменения в дизайн. При правильном использовании он позволяет строить слои на слоях абстракции и менять свое мнение, добавлять функции и т. Д. Paulgraham.com/avg.html
Job

Ответы:

12

Сборка прототипов

Просто начните рисовать экраны, которые сначала ничего не делают (возможно, у вас достаточно для этого?)

Вы должны быть в состоянии сделать его частично работоспособным медленно и, в конечном итоге, реорганизовать часть плохого кода, когда станет яснее, что вы пытаетесь сделать.

Это общая проблема, что они не знают, чего хотят, пока не увидят что-то и не поймут, что они этого не хотят. Я обнаружил, что когда кто-то хочет, чтобы вы просто начали создавать «основу» или что-то «общее», например, то, что он говорит вам, вы просто попадете в беду, если попытаетесь. Фреймворки уже написаны, вам не нужно этого делать.

сойка
источник
Этот звук действительно знаком: «рамки». Вероятно, мне нужно подождать, чтобы все сложить в камень после показа хотя бы двух или трех демонстраций / прототипов.
Джимбо
4
+1 Никто не знает, чего они хотят. Все знают, чего не хотят. Критику легко получить и она может быть информативной.
JohnFx
4

Из вашего сообщения я столкнулся с несколькими проблемами: 0 - не ваша задача - управлять проектом, а ваша задача - собирать требования для конечных пользователей. 1-босс не знает точных требований 2-босс не говорит с конечными пользователями о требованиях 3-босс использует терминологию, которую он на самом деле не понимает, гибкую 4-вы разрабатываете какое-то решение, которое получает написано несколько раз, и вы не довольны

Что касается 1,2 и 3, с этим мало что можно сделать, если вы не старший человек. Однако можно сделать следующее:

A - Попросите его поделиться с вами планом проекта. У него может быть один, или он создаст один с указанием задач и сроков. Один из них должен касаться анализа и сбора требований. Если не предложите это.

B - Подготовить некоторые ссылки на важность требований для успеха проекта программного обеспечения

C - Подготовьте ему 1 страницу того, что такое Agile, а что нет.

D - Подготовьте ему список типичных входных данных для стадии проектирования и убедите его в ценности каждого из них.

E - Предложить в команду добавить бизнес-аналитика и / или разработчика моделей данных. Такие роли должны выполнять конечный пользователь, и они получат необходимую вам информацию или, по крайней мере, значительную ее часть.

F - Посмотрите, как другие разработчики связались с этим парнем.

Что касается # 4, вы можете предложить ему использовать подход прототипирования или генератор кода, который помог бы ему, вам и пользователю задуматься о функциональных аспектах приложения. Большинство инструментов не генерируют идеальный графический интерфейс, но, по крайней мере, вы можете получить требуемую функциональность.

Во всех случаях убедитесь, что вы четко задокументировали каждую из итераций и отправили ему электронное письмо о том, какой вклад вы получили, что вы сделали (в некоторых деталях) и каков результат. Убедитесь, что вы связываете результаты с соответствующей причиной, такой как (отсутствие требований и т. Д.).

К сожалению, некоторые люди не принимают советы. Поэтому будьте осторожны, как вы общаетесь с ним.

Это не очень хорошо!

Удачи.

Без шансов
источник
Спасибо за подробный ответ! Моя нынешняя должность находится между младшим и старшим, по крайней мере, так я описал себя во время A: Он никого не интересовал, эмпирическое понимание. B, C: Не сейчас ;-) По крайней мере, о текущем проекте он много знает о повседневных проблемах. E это хорошая идея. Сегодня я написал небольшую демонстрацию, мы много обсуждали это сегодня. Хотя я был поражен тем, сколько очков он был недоволен. Не могли бы вы объяснить, что вы имеете в виду под D?
Джимбо
Дизайн требует вложений. Например, модель данных (созданная при анализе), бизнес-правила, требования безопасности, варианты использования, базовая архитектура (веб-формы, формы Windows или что-то еще). Входные данные различаются по имени методологии, однако все они приводят к тому, что разработчик осознает, каким должен быть дизайн.
NoChance
4

Раньше у меня был такой начальник - на самом деле я шутил, что его девизом было «нерешительность - ключ к гибкости».

Независимо от того, какую работу по разработке вы делаете, вы, вероятно, в лучшем положении, чтобы решить проблему клиента, чем ваш начальник. Если вы не знаете, в чем заключается проблема, которую пытается решить клиент (а это не то же самое, что спецификация), то кто-то не выполняет сбор требований должным образом.

Нарисуйте несколько макетов страниц или создайте нефункциональный прототип. Но сделай что-нибудь. Из вашего поста не ясно, создаете ли вы программное обеспечение с полным клиентом или веб-приложения, но прелесть последнего заключается в том, что вы можете выпускать раньше, чаще, чаще. Начните с голых костей и работайте над этим. Фальстарт не причиняет вреда, если он вызывает диалог и некоторые решения принимаются.

У нас есть поговорка о $ WORK (внутренние веб-приложения) для наших клиентов: «Я дам вам кое-что, чтобы вы могли сказать мне, что вы хотите». Будьте готовы выбросить первый черновик, но вы можете быть удивлены, как редко вам это действительно нужно.

RET
источник
3

Укажите ему, что Agile-книги предлагают отложить принятие решений до тех пор, пока вы можете, но не более того . Каждое решение имеет точку, где оно должно быть принято, и, может быть, вы там сейчас.

С другой стороны, также спросите себя. Вам действительно нужно решить, какой уровень сохраняемости вы собираетесь использовать для этого приложения? Или вы можете начать писать его в CSV и держать его достаточно абстрагированным, чтобы принять это решение позже?

прецизионный самописец
источник
Для меня более или менее ясны технические решения: языки программирования, как выбирать библиотеки или постоянные уровни. У него есть твердые мнения на этот счет, и, честно говоря, мне действительно все равно, если этот выбор вменяемый. Это больше о вещах типа: как будет выглядеть экран? Какие вещи пользователь сможет делать и как? Я уже понял, что моя работа состоит в том, чтобы придумывать идеи. Но вряд ли возможно предложить абстрактные идеи и спросить его, согласен ли он с одной идеей.
Джимбо
3

Напишите свой собственный спецификационный документ и проведите рецензию, где вы объясните это, и он подпишет его. Тогда вы станете начальником, и ваш начальник перейдет к более межличностным, а не техническим вопросам.

Джонатан Клайн IEEE
источник
2

Вовлекитесь в «восходящее управление», поговорите с вашим боссом и клиентами, найдите некоторые решения, выберите лучшее решение для вашей команды, найдите недостатки в других и «управляйте» своим менеджером, чтобы он принял «правильное» решение.

И, конечно, убедитесь, что он думает, что это была его / ее идея. (особенно, когда все идет не так!)

NWS
источник
Когда инженеры-программисты превращаются в социальных инженеров .. :)
MattDavey
1
Серьезно, большинство проблем с программным обеспечением решаемо, его связь с другими полусентиментальными пакетами воды часто является проблематичным
NWS
1

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

Если вы перестали тратить время на реализацию того, чего не хотел ваш босс, то это на него, а не на вас, поскольку он знал о пути, по которому вы идете.

Кроме того, некоторым людям трудно начинать, но как только они видят что-то осязаемое, их разум начинает действовать. Может быть, ваш начальник такой, и если вы расскажете ему, что вы планируете делать в письменной форме, это заставит его задуматься.

Замочить
источник
0

Принимайте решения самостоятельно и начинайте кодировать. Конечно, гибкая разработка поможет (прочитайте Agile Patterns, Принципы и Практики Роберта С. Мартина, если вы еще этого не сделали), но вся гибкость в мире не поможет, если не будет принято никаких решений. Вы можете найти, что вам нужно просто развить то, что вы думаетенеобходимо, а затем изменить его по мере необходимости. Часто клиенты / начальники не знают, чего они хотят, пока не увидят этого или пока не увидят то, чего не хотят. Это, вероятно, выведет вас за рамки того, чтобы быть разработчиком, но это жизнь. Я часто нахожу, что я и мои коллеги эффективно принимаем деловые решения. Иногда это не ставится под сомнение, и решения, которые я принял, начинают вести бизнес, просто потому, что никто другой не примет решения. Обязательно перечислите ВСЕ ваши предположения и решения (без исключений) и представьте их своему боссу.

Пол Т Дэвис
источник