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