1/49
Flashcards on Main Concepts of Agile Programming
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
What is Agile?
Agile is a project management and software development approach that emphasizes iterative development, collaboration, flexibility, and rapid delivery of small, functional pieces of a system.
What are the Agility Principles?
Agility principles include customer satisfaction through early delivery, embracing change, frequent delivery, daily collaboration, motivated teams, face-to-face communication, working software as progress, sustainable development, technical excellence, simplicity, self-organizing teams, and regular reflection for improvement.
What are the Agile Phases?
The six Agile phases are: 1) Requirements Gathering, 2) Design the Requirements, 3) Construction/Iteration, 4) Testing, 5) Deployment, and 6) Feedback.
When should Agile be used?
Agile is best used when frequent changes are expected, the team is highly skilled, the customer is actively involved, and the project is small in size.
What are Agile Methods?
Common Agile methods include Extreme Programming (XP), Scrum, Adaptive Software Development (ASD), Dynamic Systems Development Method (DSDM), Crystal, Feature Driven Development (FDD), Lean Software Development (LSD), Agile Modeling (AM), and Agile Unified Process (AUP).
Agile Project Management
A system development method using iterative and incremental delivery in short cycles.
Iterative Development
A process where parts of the system are built and refined repeatedly in small increments.
Agile
A methodology based on adaptive planning, early delivery, collaboration, and quick response to change.
Agile Practices
Involve collaborative, self-organizing, cross-functional teams that adapt and evolve during the project.
Agile Methodology
A project approach divided into phases, involving constant stakeholder collaboration and evaluation.
Agile Cycle
A repeating process of planning, executing, and evaluating work to enable continual improvement.
Agile Software Process
A process assuming unpredictable requirements and priorities, with overlapping design and construction phases.
Design & Construction in Agile
Performed together so design is proven while being created.
Agile Planning
Planning is flexible as analysis, design, construction, and testing are less predictable than in traditional models.
Customer Satisfaction
Deliver valuable software early and continuously to keep customers satisfied.
Welcome Change
Agile encourages adapting to changes in requirements, even late in development.
Competitive Advantage
Agile harnesses change for the customer's competitive gain.
Frequent Delivery
Deliver working software every few weeks or months, favoring shorter cycles.
Collaboration
Business people and developers must work together daily throughout the project.
Motivated Teams
Projects should be built around motivated individuals with trust and support.
Face-to-Face Conversation
The most effective communication method within development teams.
Working Software as Progress
The main measure of progress in Agile is functioning software.
Sustainable Development
Agile promotes maintaining a constant pace for all parties involved.
Technical Excellence
Ongoing attention to quality and good design improves agility.
Simplicity
Maximize the amount of work not done; it's essential in Agile.
Self-Organizing Teams
These teams yield the best architectures, requirements, and designs.
Reflection and Adjustment
Teams regularly reflect and improve their behavior for effectiveness.
Agile Meaning
Agile means being swift or versatile and focuses on iterative development.
Iterations
Short development cycles (1 to 4 weeks) where the team delivers a working product.
Agile Scope Planning
Scope and requirements are set early, including the number and length of iterations.
Risk Reduction
Breaking projects into smaller parts reduces risks and speeds delivery.
Requirements Gathering
Define business goals, evaluate feasibility, and estimate time and effort.
Requirement Design
Work with stakeholders to define needs using diagrams like UML or user flow.
Construction/Iteration
Start building with minimal, simple functionality and plan for improvements.
Testing Phase
The QA team tests performance and identifies bugs or issues.
Deployment Phase
Release the software into the real-world work environment.
Feedback Phase
Gather and act on user feedback to improve the product in future iterations.
Frequent Changes
Agile is best when the project requires frequent updates or changes.
Skilled Team
Agile suits highly experienced and qualified development teams.
Active Customer Involvement
Ideal when the customer can frequently meet and communicate with the team.
Small Projects
Agile works best for small, manageable project sizes.
Extreme Programming (XP)
The most widely used agile method focused on coding practices and frequent releases.
Adaptive Software Development (ASD)
Emphasizes rapid adaptation to changing requirements.
Scrum
A structured Agile method based on sprints and regular team rituals like stand-ups.
Dynamic Systems Development Method (DSDM)
An Agile method emphasizing user involvement and frequent delivery.
Crystal
A family of lightweight Agile methods tailored by project size and criticality.
Feature Driven Development (FDD)
Focuses on designing and building software features.
Lean Software Development (LSD)
Focuses on eliminating waste and improving efficiency in the development process.
Agile Modeling (AM)
Practices for modeling software in a lightweight, agile-friendly manner.
Agile Unified Process (AUP)
A simplified version of the Rational Unified Process following Agile principles.