Наскільки чітко визначений проект повинен бути досить добре, щоб ви розпочали роботу та дізналися, куди ви збираєтесь прямувати протягом наступних двох тижнів.
Як майстер Scrum, я просто скажу, що вам потрібно визначити грубі особливості вашого продукту в аркуші Excel або деінде, тільки щоб відслідковувати свої особливості. Створення їх історій користувача дуже допомагає задуматися про те, яка функція вам буде потрібна далі. Потім визначте їх пріоритетними: Найважливіша чи імперативна особливість до вершини та найменша донизу.
Після того, як ви перерахували деякі найважливіші функції, виберіть функції, які, на вашу думку, ви зможете розвинути, приведіть до стану "Готово" через два тижні або місячний період, якщо бажаєте. Потім підірвіть ці вибрані функції, щоб ви могли почати кодування в кількох.
Під час кодування ви, безумовно, будете думати про інші елементи, необхідні для розробки, щоб привести вибрані функції у стан "Готово". Готово означає, що вам більше нічого робити, тобто тестування, кодування, складання, документація закінчена!
У будь-який час ваш список вибраних функцій може розширюватися, якщо ви досягнете мети, тобто ви зможете розробити все, про що говорили, протягом даного періоду.
Словом, нічого не повинно бути ідеальним. Додайте кілька ідей, поділіться з товаришами і подивіться, чи є те, що написано, має сенс відповідати затребуваним вимогам до товару. Якщо так, то ви в! Щоб зрозуміти, я перейду з простим продуктом для управління клієнтами. Що потрібно?
As a user, I may manage the Customers;
As a system, I persist changes to the underlying data store;
As a user, I need to enter my credentials to be able to manage customers;
As a system, I have to authenticate the user against the Active Directory;
Ваш перший проект може бути таким же простим! Тоді ми можемо побачити, що безпека є важливою складовою нашої системи, чи достатньо важливою є остаточний пріоритет (Y / N)? Це залежатиме від вимог, яким ви повинні відповідати. Скажімо, що тут є найважливіше управління клієнтами. Отже, у наступному спринті нам потрібно вміти керувати клієнтами базовим, але прийнятним способом. Що таке управління клієнтами?
As a user, I may manage Customers;
-> As a user, I add a customer to the system;
-> As a user, I change a customer details;
-> As a user, I delete a customer;
-> As a system, I flag a deleted customer as being inactive instead of deleting it;
-> As a user, I need to list the customers;
-> As a user, I search the customers data bank for a given customer;
-> ...
Це вже ілюструє достатню кількість функцій, щоб можна було розпочати розробку програми. Якщо ваші програмісти потребують подальших інструкцій, можливо, один розробник, який задоволений діаграмами класів, може спроектувати клас клієнта та його властивості та методи! Але що стосується мене, то з цим декількома написаними нами було б достатньо, щоб почати. Деякі функції можуть бути додані або змінені по ходу. Важливо - зосередитись на тому, що ви сказали, що буде зроблено. У нашому прикладі це справа управління клієнтами. Нам не потрібно дбати про автентифікацію користувача, оскільки це станеться пізніше в наступному спринті.
Я сподіваюся, що це допомагає! =)