Уважаемые коллеги-программисты!
как вы делаете «планирование программного обеспечения», когда участвуют академические исследования? И, на заметку, как вы убедите своего босса, что написание программного обеспечения - это не строительство дома, а написание романа ?
Кровавые подробности ниже.
Я отвечаю за небольшую команду разработчиков, работающих в исследовательской лаборатории. Мы начали разработку программного обеспечения с целью обнародовать один день (то есть продавать и зарабатывать на этом деньги). Такое программное обеспечение зависит, среди прочего, по крайней мере от двух независимых направлений исследований: то есть, по крайней мере, два кандидата наук. кандидаты, которые, мы надеемся, однажды выступят с рабочим осуществлением того, что нам нужно.
Основное программное обеспечение зависит также от других, более конкретных ресурсов, о которых мы, как разработчики, можем позаботиться: рендеринга графики, деформации мягких тел и т. Д.
Мой начальник попросил меня написать спецификации, требования и чертову диаграмму Ганта для всего проекта. Столкнувшись с тем фактом, что я не имею понятия об исследовательской части, и что такие исследования имеют основополагающее значение для программного обеспечения, он сказал: «делайте предположения». Для ясности аргумента он - профессор, доктор философии студенты должны придумать нужное нам исследование. И он исходит из чисто инженерного опыта: сначала спланируй все, запиши спецификации и только потом запиши код «это последняя часть».
Что я делаю сейчас:
- Я разбил продукт по возможностям; каждая «черта» де-факто является отдельным продуктом;
- Каждая функция построена поверх предыдущей;
- Как только у функции (A) есть рабочий прототип, команда может начать работать над следующей функцией (B), в то время как QA for выполняется для A (если позволяют деньги, можно привлечь больше людей и т. Д.);
- Функции, которые зависят от исследований, будут последними: к тому времени, надеюсь, исследовательская часть будет завершена ( когда все еще остается большой вопрос);
Также я поручил команде использовать SCRUM для разработки «версии 1.0 », которая должна состояться через несколько месяцев. Этот срок может быть установлен на основе разумных предположений: мы перечислили все необходимые функции, мы посчитали нашу доступность и дали разумную оценку.
Итак, мои вопросы, опять же:
- Как сделать моего босса счастливым, и в то же время получить что-нибудь за дверью?
- Как мне написать спецификации для чего-то, что мы, разработчики, понятия не имеем, возможно ли это сделать или нет? (Мы до сих пор не решили, какие библиотеки использовать для некоторых задач; мы сделаем это, когда потребуется)
- Как мне получить требования для этого, учитывая, что пока нет ни клиентов, ни инвесторов, только много интересов и обещаний?
- Как мне обрести покой в мире?
Я уверен, что хотя бы на один из моих вопросов ответят :)
PS: Я пишу это анонимно, так как потенциальный инвестор может иметь неприятные последствия, если это будет обнаружено. Надеюсь, вы поймете. Однако я должен сказать, что мне не нравится этот менталитет «сокрытия правды»: эта программа, вероятно, принесет пользу многим, и неспособность открыто говорить об этом (с моим именем и моей репутацией) выглядит как цензура. Но, увы, сейчас я забочусь о ваших предложениях.
Ответы:
Я был в этой должности несколько раз, и, имея опыт, вы не можете рассчитывать на то, что аспирант проведет исследование, которое имеет отношение к делу, и вы, конечно же, не можете рассчитывать на то, что оно будет происходить в полезные сроки. Аспирантам специально разрешено идти туда, куда их интересуют их научные интересы, и может быть очень трудно оказаться вниз по течению, когда они вдруг начинают срываться на боковой дорожке, которая важна для них, но не для вас. Это основной источник риска для вашего проекта, поэтому вы должны использовать соответствующие стратегии по снижению риска в своем плане проекта.
Учитывая это, работайте, когда вам нужно выполнить (см. Исследовательский грант; это определяется вашим финансированием, а не чем-либо еще) и сколько времени потребуется, чтобы доставить, если исследование выполнено . Это займет несколько всемогущих догадок, но с этим ничего не поделаешь; сделать эти предположения явными в оценке времени . Позже, управляйте риском, оставаясь в достаточно тесном контакте со студентами PhD (например, сидя на их обучающих сессиях один раз в месяц), чтобы, если похоже, они не собирались предоставить то, что вам нужно вовремя, вы можете продумайте стратегии смягчения в деталях. Если вам повезет, игра окупится, и вы получите что-то полезное из исследования. Странные вещи произошли.
Все остальное будет следовать из знания того, кем будут ваши клиенты, и размышления о том, как вы хотите, чтобы они использовали конечный продукт (и как они будут его использовать). Если вы этого не знаете, вы никому не продадите. Но вы должны это знать или, по крайней мере, скоро это выяснить. (Если это определяется исследовательской частью, у вас большие проблемы! Исследовательские проекты, безусловно, могут дать отрицательные или частично отрицательные результаты; это происходит постоянно, даже если об этом не всегда сообщают широко).
В заключение, я думаю, это ужасно стыдно, что вы делаете это анонимно, так как все, что вы делаете, - это советуетесь с конкретным типом управления проектами. Вы не упоминаете, что является предметом исследования или кто его проводит, или кто-либо из ваших сотрудников, и не имеет значения для этого вопроса, Единственная причина, по которой это может быть проблемой, - это если вы искали финансирование, не связанное с НИОКР, до проведения исследования, но это потребовало бы либо раскрытия вами уровня риска (вероятно, вложения инвестиций!), Либо крайне нечестного; поскольку вы планируете быть честным, это не должно происходить, поскольку проект должен искать финансирование такого рода только после того, как риски станут более определенными. (Если вы - как группа - нечестно относитесь к потенциальным инвесторам, это проблема тут же, и она закончится слезами. Или судебными исками.)
источник
Будьте умны и добивайтесь успеха.
Если вы не знаете, с чем собираетесь взаимодействовать, это проблема. Какие входные данные вы даете волшебный ящик? Какие выводы вы получаете от волшебной коробки? Это также поможет исследователям определить, что такое магия.
Если ваша академия была профинансирована за счет гранта, то он, вероятно, написал исследовательское предложение. Возьми это. Если это похоже на какое-либо из предложений о гранте на исследования, которые я видел (и написал), у него будет график и «спецификация» того, что они пытаются сделать.
Требования - это то, что конечные пользователи алгоритма / вещь-ма-джиг. Посмотрите, можете ли вы взять у них интервью (или у потенциальных клиентов / клиентов).
В противном случае ешьте свою собачью еду.
Не по теме :-)
источник
Я думаю, что при планировании научных исследований за один раз, и разработка tgen не очень хорошо работает. Я работаю в исследовательском институте, и мы работаем больше, используя быстрое прототипирование. Часто разработка прототипа дает представление о том, что именно нужно. Быстро создав прототип, вы можете получить обратную связь от вашего босса и исследователей и определить, было ли это то, чего они ожидали, а также посмотреть, работает ли ваш подход. После этого вы можете реорганизовать и улучшить свой код. Это то, что я вижу на практике в научно-исследовательских институтах, где я работал.
источник