Agile buzz words!
But being honest - those of us in the agile arena do ourselves no favours talking about velocity and Kanban boards without first explaining some of these terms!
I expect the following blog to be more of a WIP (Work in Progress) page as I add new terms over time
Also check out.... https://www.christianmiles.com/faqs
Specific criteria identified by the customer/stakeholder/Product Owner/Team for each functional requirement. The acceptance criteria are written in simple terms and from a perspective of the user.
As a.....I want to..... so that I can......
Activity conducted to determine whether or not a system satisfies its acceptance criteria.
A conceptual philosophy or mindset for undertaking projects. Agile is a framework that can be applied to numerous fields (not just software development)
Within agile exists different implementations the most famous being Scrum and Kanban
BDD - Behaviour Driven Development
Behaviour driven development is a software development technique that encourages collaboration between developers, non-technical and business participants.
BDD focuses on obtaining a clear understanding of desired software behaviour through discussion with stakeholders.
A burn-down chart is a visual tool for measuring and displaying progress.
A burn-down chart is simply a line chart representing remaining work over time. Burn-down charts are used to measure the progress of an agile project at both a iteration (sprint) and project level - against the backlog and identified MVP.
TheDaily Standup is probably the most famous agile ceremony, I've spoked to teams numerous times who 'believe' their agile simply because they are doing this one activity!
The daily standup should occur everyday at the same time and lasts around 15 minutes or less.
Each team member should come prepared with the following information:
- What did I do yesterday
- What am I planning to do today
- What impediments do I currently have?
Also referred to as “Done Done”, this term is used to describe all the various tasks that need to happen before a story is considered potentially releasable.
A large and probably little understood story that needs to eventually be broken down into user stories.
Kanban based on the just-in-time delivery and optimisation of work flows is probably the 2nd most popular implementation of agile working.
It emphasises that developers pull work from a queue - The task travels horizontally through swim lanes (being pulled at each point) until reaching 'Done'
Another methodology borrowed from Toyota! Its a set of techniques and principles for delivering more values with the same or less resources by eliminating waste across processes
A concept from eXtreme Programming, Similar to paired development but involves 3+ people working around one work station.
Pair programming is a development technique from XP (eXtreme programming) in which two programmers work together at one workstation.
One types the code while the other reviews each line of code as it is typed in. The person typing is called the driver. The person reviewing the code is called the observer (or navigator). The two programmers should switch roles frequently.
Also called Scrum poker, its a consensus-based technique for estimating, mostly used to estimate effort or relative size of tasks in software development.
Acts as a repository for requirements targeted for release at some point. These are typically high level requirements with high level estimates. The requirements are listed on the backlog in priority order and maintained by the product owner.
The Product Owner represents the voice of the customer and is accountable for ensuring that the Team delivers value to the business.
The Product Owner is responsible for writing customer-centric items (typically user stories), prioritizes them, and adds them to the product backlog.
Scrum teams should have one Product Owner.
A team meeting that happens at the end of every development iteration to review lessons learned and to discuss how the team can be more efficient in the future. It is based on the principles of applying the learning from the previous sprint to the upcoming sprint.
Scrum is a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value. It is based on the adaptive and iterative methodology of software development.
Scrumban is a mix between Scrum and Kanban.... There is some debate in certain agile circles as to the existence of Scrumban!
The Scrum master is accountable for removing impediments to the ability of the team to deliver the sprint goal/deliverables. The ScrumMaster is not the team leader but acts as a buffer between the team and any distracting influences. The ScrumMaster ensures that the Scrum process is used as intended. The ScrumMaster is the enforcer of rules. A key part of the ScrumMaster’s role is to protect the team and keep them focused on the tasks at hand. The role has also been referred to as servant-leader to reinforce these dual perspectives.
A short, time-boxed piece of research, usually technical, on a single story that is intended to provide just enough information that the team can estimate the size of the story.
Sprint / Iteration
A fixed duration period of time where user stories are chosen to work on. The term Sprint comes from the Scrum methodology and is analogous to the term Iteration. A sprint is defined as a 2-4 week increment of software development activities that delivers working software and the end of the increment. External influences are not allowed to change the requirements of the stories being worked on.
At the beginning of each sprint, the team has sprint planning with an end result being a backlog of work that the team anticipates completing at the end of the sprint. These are the items that the team will deliver against throughout the duration of the sprint.
Is a pre-sprint planning meeting attended by the core agile team. During the meeting the Product Owner describes the highest priority features to the team as described on the product backlog. The team then agrees on the number of features they can accomplish in the sprint and plans out the tasks required to achieve delivery of those features. The planning group works the features into User Stories and assigns Acceptance criteria to each story.
Each Sprint is followed by a Sprint review. During this review the software developed in the previous Sprint is reviewed and if necessary new backlog items are added.
Unit of estimation measuring complexity and size.
A user story can be broken down in to one or more tasks. Tasks are estimated daily in hours (or story points) remaining by the developer working on them.
Taskboard / Storyborad /Kanban Board/Information Radiator
A wall chart with cards or post-it that represents all the work for in a given sprint. The notes are moved across the board to show progress.
The Team is responsible for delivering the product. A Team is typically made up of 5–9 people with cross-functional skills who do the actual work (analyse, design, develop, test, technical communication, document, etc.).
When forming teams it's generally considered wise to use the 2-pizza rule.. IE. teams should not be so big that they cannot be fed with 2 pizzas.... Which probably means a team of 2 developers :-)
The team should be self-organizing and self-led, but often work with some form of project or team management.
Test Driven Development
Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes a failing automated test case that defines a desired improvement or new function, then produces code to pass that test and finally refactors the new code to acceptable standards.
Test Driven Development (TDD) is described in this Wikipedia page for full description
Time-boxing is a planning technique common in planning projects - A period of time is agreed on and work stops once that period of time has elapsed.
A user story is a very high-level definition of a requirement, containing just enough information so that the developers can produce a reasonable estimate of the effort to implement it. A user story is one or more sentences in the everyday or business language of the end user that captures what the user wants to achieve. A user story is also a placeholder for conversation between the users and the team. The user stories should be written by or for the customers for a software project and are their main instrument to influence the development of the software. User stories could also be written by developers to express non-functional requirements (security, performance, quality, etc.)
It is a relative number which describes how much work the team can get 'done' during a time-box.
A really important concept with agile... development effort should be focused on delivering features rather than horizontal layers of code which provide no business advantage.
Also known as Work in Progress is any work that has been started but has yet to be completed.
All agile teams should impose strict WIP limits.
Nothing to with a version of Windows! XP (eXtreme Programming) is a software development methodology intended to improve software quality.
Agile does not talk about how to implement software projects at the coding level but XP is a much favoured framework.
It advocates frequent "releases" in short development cycles (time-boxing) and using techniques such as paired programming, TDD, automated tested and continuous builds.