Agile & Scrum Flashcards
Illustrate the Agile Sprints
define agile
Agility is an iterative model with the ability to create and respond to change in order to profit in a turbulent business environment — balancing flexibility with stability.
Instead of structured plans and detailed specifications and objectives, agile is unsure about what will be done, how much value be created, in what timeframe.
traditional vs. agile
Traditional planning
delivering a set scope within a set budget within an estimated amount of time
Agile planning
greatest value in terms of functionality, as defined by the client, within a fixed time
Core Beliefs of Waterfall
- Requirements to build the software product properly are known at project start
- Accurate customer feedback of their want and needs at project start
- Customer feedback is only needed at the end of the project
- Project status = completed milestones
- Separate groups that effectively do analysis, design, code, and test. There is little loss of information in the handoff between these groups.
- Handoffs can be done effectively by writing down what was done in each step.
- You can test at the end and get the required quality
- Management can effectively schedule time
Core Beliefs of Agile
- unknowns from the start
- customers unable to give accurate wants at the start; instead proceedingly gaining clarity
- get customer feedback as often as possible
- give developers frequent feedback
- working code is the most accurate way of seeing the progress of the development effort
- collaboration minimises delays as well as the loss of information between people
- testing early and during the development cycle improves the conversation between developers and customers and testers and, thus, improves the quality of the code
- management sets work expectations, not how that work is done
- transparency
5 phases of a project
- requirements
- design
- implementation
- verification
- maintenance
Some agile guidelines
individuals and interactions over processes and tools
- value your people and their relationships; part of the value system
- brainstorm, share understanding, develop shared objectives and collaboration
- nothing should ever be thrown over a wall in an agile world
- never let your tools define your process; define process, then choose tools
working code over comprehensive documentation
- give them enough to be getting on with
- problems to solve
- some wireframes
- data samples
- and even make some of it deliberately vague, so a conversation has to occur
customer collaboration over contract negotiation
- more than asking customers when you don’t know an answer
- have them in planning, get them in the room with you
- having stakeholders interact with engineers and designers can produce real ‘Aha!’ moments — face-to-face
- collaboration is built on good trust and, if so, the need for formal contract is less
responding to change over following a plan
- “I have always found that plans are useless, but planning is indispensable.”
When to be agile
When…
- requirements are not clearly understood
- there a prototype is quickly needed
- project can be broken down into increments, which can be carried out in series of iterations
purpose of prototypes
customer feedback: created to help the customer identify and refine requirements and design features
other reasons may include
- Display or show the new product (e.g. for investors)
- Test an idea to see if it really works.
- Test the design to see if it passes certain requirements.
- Use it to evaluate where improvements are necessary.
sprints / iterations
one development cycle in an agile project
- Each iteration is reviewed and critiqued by the project team, which should include stakeholder representatives
- Insights gained from the critique determine what the next step should be in the project
how is collaboration a foundation in agile
Collaboration encourages a strong relationship built on mutual respect and trust.
That respect and trust is what increases productivity, reduces development costs.
Collaboration between
- business and development teams
- customer and project
- supplier and project
Transparency and agile methods
- essential for agile methods.
- the team’s plan and progress is very public
- anyone that has an interest can ask and see
Benefits of Agile methods
- Working software is delivered much more quickly and successive iterations can be delivered frequently, at a consistent pace
- Closer collaboration between developers and the business
- Changes to requirements can be incorporated at any point of the process – even late in development
- Opportunity for continuous improvement for live systems
- Highly transparent
Limitations of Agile methods
- Often more difficult to understand than linear methods (initially)
- Documentation neglected too much may cause issues
- Bad agile implantation is costly, inefficient, cause culture conflict
- Not knowing when to stop iterating
- Potentially difficult to monitor and control
more agile guidlines
- create personas: summary of all project stakeholders
- delight the customer, not just satisfy
- give the customer early and continues software delivery
- face-to-face meetings
- build projects around motivated individuals; give them the environment and tools they need, and trust them to get the job done
- agility promotes sustainable pace; sponsors, developers, and users could continue indefinitely
- continuous attention to technical excellence and good design
- but just enough quality is enough
- don’t spend days regression testing a feature that you’re not sure of the value of
- keep it simple; be smart and don’t waste
- at regular intervals, the team reflects on how to become more effective