prototypes help users figure out what they want/will accept by showing the concepts and design options. Can be used in requirements engineering or design process (eg. mockups for UI)
prototype: concrete but partial implementation, quick to make and easy to discard
low fidelity prototype - omits many details, good for generating ideas (can include drawing and rearranging pieces of paper on a table to represent interaction)
high fidelity prototype - similar to final product with accurate details and tests in realistic scenarios
computer prototypes often used to make a shallow high fidelity 'feeling' prototype (looks high fidelity but no back end)
prototypes should always be discarded and not followed for development as do not consider non-functional requirements and are usually undocumented
test driven design - writing tests before code, as programs so they can be executed automatically, and run on the whole system every time something is added or changed
In XP, requirements are expressed as 'stories' or scenarios. These are then broken down into implementation tasks, which are used for schedule and cost estimates. The customer chooses the stories for the next release based on the estimates and their priorities
XP test cards:
Xp scenario:
XP task cards
Scrum: general agile method with focus on managing iterative development
Three phases of Scrum: initial planning phase - establish general objectives and do design, sprint cycles - fixed length, each cycle develops an increment of the system, project closure - wraps up the project and completes documentation
during scrum development (except select stage) team are isolated from customer and can communicate only through scrum master, whose job it is to protect the team from external distractions
The scrum master organises daily meetings, tracks and records decisions, and communicates with parties outside the team on their behalf. All team members share information at the daily standup describing their progress the day before and their plans for the day
scrum burndown: graph produced by scrum master showing progress vs ideal timeline
scrum pros: broken down into manageable chunks, unstable requirements do not stop progress, team always aware of how everything is coming along, customers get good incremental deliveries and can provide feedback