In this Agile glossary series, we’ll explain 19 key Agile terms that will help you decode this software development methodology.
And in this article, we will introduce
- Extreme Programming (XP)
image from proposalreflections.com
1. SCRUMScrum is an agile methodology for software project management. Scrum was invented in 1993 by Jeff Sutherland, John Scumniotales and Jeff McKenna. According to latest surveys Scrum is the most popular agile project management methodology in software development. Often Scrum mixed with Extreme Programming engineering practices like TDD and refactoring for better results.
Core Scrum practices are:
- Backlog (Product, Release, Sprint Backlog - lists of all functionality in product, release and sprint respectively)
- Iterative development (The whole project gets divided into Sprints usually 4 weeks duration each)
- Scrum meetings (daily meetings where team members answers the following questions: What have you done since the last scrum meeting? What has impeded your work? What do you plan on doing between now and the next scrum meeting?)
- Burn Down Charts (charts that show Sprint, Release and Product progress)
- Sprint review meeting (provides an inspection of project progress at the end of the every Sprint)
image from visual-paradigm.com
2. KanbanThe Kanban Method for application to IT and software development was formulated by David Anderson in 2010 as an approach to incremental, evolutionary process and systems change for organizations. It uses a work-in-progress limited pull system as the core mechanism to expose system operation (or process) problems and stimulate collaboration to continuously improve the system. Visualisation is an important aspect of Kanban as it allows to understand the work and the workflow. Although Scrum is still the most popular methodology, Kanban adoption within organizations is growing at a fast rate.
Core Kanban practices are:
- Visualize the workflow (written in kanji (Chinese characters), "kanban" means "sign" or "large visual board". Kanban boards are one of the ways to display progress)
- Limit Work-In-Progress (WIP) (use a pull system – establish and respect your ideal capacity)
- Manage Flow (monitor, measure and report the flow of work through each state)
- Make Process Policies Explicit (describe the process accurately in order to improve it)
- Implement Feedback Loops (compare expected outcomes with actual outcomes and make adjustments)
- Improve Collaboratively, Evolve Experimentally (use models & the scientific method to implement continuous, incremental and evolutionary changes)
image from bitrix24.com
3. Extreme Programming (XP)Extreme Programming is a software engineering methodology. There are five Values such as
that supported by quite many practices (Pair programming, Planning game, Continuous integration, Small releases, Simple design, etc.).
image from c-sharpcorner.com