Agile Development Methodologies Flashcards
Waterfall Criticisms - Pros
- Detailed specification of requirements.
- Precise plan and road-map.
- Controlled and prescriptive.
- Defined start and end points.
- Clear demarcation at each phase.
Waterfall Criticisms - Cons
- Users rarely know all the requirement up front.
- Limited visibility of product until last stage.
- Inflexible, difficult to change direction of requirements.
- Much effort and planning needed before starting.
- Created distance between developer and user.
Agile manifesto
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Agile Objectives
- Continuous innovation
- Improved time-to-market
- People and process adaptability
- Product adaptability
- Reliable results
Agile Principles
- Customer satisfaction by rapid delivery of useful software
- Welcome changing requirements, even late in development
- Working software is delivered frequently (weeks)
- Working software is the principal measure of progress.
- Sustainable development, able to maintain a constant pace
- Close, daily cooperation between business people and developers.
- Face-to-face conversation is the best form of communication
- Projects are built around motivated individuals, who should be trusted.
- Continuous attention to technical excellence and good design
- Simplicity
- Self-organizing teams
- Regular adaptation to changing circumstances
Traditional project/Agile trade off
Traditional:
Cost /\
/ \
/___\
Time Scope
Agile:
Value/\
/ \
/___\
Quality Constraints
What are the agile trade off goals?
Value goal: build a releasable product
Quality goal: build a reliable adaptable product
Constraint goal: achieve value and quality goals with acceptable constraints
What are the DSDM objectives?
- Right solution
- Right time
- Team & stakeholders remain focused on business outcome
- Early investment returns
- No quality compromise
What are the DSDM principles?
- Focues on the business need
- Deliver on time
- Collaborate
- Never compromise quality
- Build incrementally from firm foundations
- Develop iterativiely
- Communicate continuously and clearly
- Demonstrate control
MoSCoW rules?
Must have
Should Have
Could have
Would have but won’t this time
What are the SCRUM principles?
- Empirical process control: observation and experimentation rather than detailed up-front planing
- Self-organization: workers will deliver greater value when self-organized, resulting in better team buy-in and shared ownership
- Collaboration: project management as a shared value-creation process
- TIme-boxing: time is a limit constraint and must be used to manage project planning and execution
- Iterative development: iteration will deliver products that better satisfy customer needs.
What are the roles in traditional development?
- Business analyst: analyses main business aspects of the system and designs the new business processes and policies
- Project manager: lead team member who does planning, reporting, scheduling and staff management and acts as primary point of contact
for project - System analyst: identifies how technology can improve business processes and designs new business processes and the new system
- Technical architect: technical expert who design how the various system components fit together to provide a stable working system
What are the roles in agile development?
- Developer: key worker in Scrum team, self-organized, no hierarchy, empowered to estimate
- Scrum master: team member who does admin, reporting, coaching, monitor.
- Product owner: customer stakeholder. Prioritizes add details to user stories and make decisions on behalf of the business.
What requirements should have user stories?
I.N.V.E.S.T
- Independent: the user should be self-contained.
- Negotiable: Story can be changed
- Estimable: Story must be defined
- Sized: break bigger epics into smaller stories
- Testable: Story must provide necessary information.
What are the agile criticisms?
- Can’t sprint forever
- Co-location and distributed development
- Cost can be expensive
- Requires awareness and knowledge of scrum
- Endless development
- Unclear when development should stop
- Unsuited for development of some infrastructure components