Шановні колеги-програмісти,
як ви робите "програмне планування", коли задіяні академічні дослідження? І, зі сторони, як ви переконаєте свого шефа, що писати програмне забезпечення не так, як будувати будинок, і це більше схоже на написання роману ?
Деталі горіли нижче.
Я керую невеликою командою розробників, яка працює в науково-дослідній лабораторії. Ми почали розробляти програмне забезпечення з метою оприлюднити один день (тобто продати та заробити на цьому гроші). Таке програмне забезпечення, крім іншого, залежить, принаймні, від двох незалежних напрямків дослідження: тобто є щонайменше дві доктора наук. кандидати, які, сподіваємось, одного дня вийдуть з робочим виконанням того, що нам потрібно.
Основне програмне забезпечення залежить також від інших, конкретніших ресурсів, про які ми, як розробники, можемо подбати: графічна візуалізація, деформація м'яких тіл тощо.
Мій бос попросив мене написати технічні характеристики, вимоги ТА криваву діаграму GANTT усього проекту. Зіткнувшись з тим, що я не маю уявлення про дослідницьку частину, і що такі дослідження є основоположними для програмного забезпечення, він сказав "робити припущення". Для ясності аргументу він професор, доктор філософії. студенти повинні придумати необхідні нам дослідження. І він походить із суворо інженерного походження: плануйте все спочатку, записуйте технічні характеристики і лише потім записуйте код, що "це остання частина".
Що я зараз роблю:
- Я розбив продукт за особливостями; кожна «особливість» фактично є окремим продуктом;
- Кожна функція побудована поверх попередньої;
- Після того, як функція (A) має працюючий прототип, команда може почати працювати над наступною особливістю (B), тоді як QA для A робиться (якщо гроші дозволяють, більше людей може бути занесено тощо);
- Особливості, які залежать від дослідження, стануть останніми: до цього часу, сподіваємось, дослідницька частина буде завершена ( коли ще велике питання);
Крім того, я налаштував команду використовувати SCRUM для розробки "версії 1.0 ", що відбудеться через кілька місяців. Цей термін можна встановити, виходячи з обґрунтованих припущень: ми перерахували всі необхідні функції, підрахували нашу готовність і дали обґрунтовану оцінку.
Отже, мої запитання, знову:
- Як мені зробити щасливим свого боса, в той же час витягнути щось із дверей?
- Як мені написати специфікації для чогось, що ми - розробники - не маємо поняття, чи можна це зробити чи ні? (Ми досі не вирішили, які бібліотеки використовувати для виконання деяких завдань; будемо робити це, коли потрібно)
- Як я можу отримати вимоги до цього, враховуючи, що поки немає ні клієнтів, ні інвесторів, просто багато інтересів та обіцянок?
- Як отримати мир у світі?
Я впевнений, що принаймні на одне моє питання буде відповідено :)
ps: Я пишу це анонімно, оскільки потенційний інвестор може отримати негативну реакцію, якщо це буде виявлено. Сподіваюся, ви зрозумієте. Однак я мушу сказати, що мені не подобається такий менталітет "приховувати правду": ця програма, ймовірно, принесе користь багатьом, і не маючи можливості говорити про це (з моїм ім'ям та моєю репутацією) відчувається як цензура. Але на жаль, я більше дбаю про ваші пропозиції.