AGILE DEVELOPMENT Flashcards
What Agile methodologies do you know?
- XP (Extreme Programming),
- DSDM (Dynamic Systems Development Method),
- Crystal Family,
- ASD (Adaptive Software Development),
- SCRUM,
- FDD (Feature-Driven Development),
- TDD
- LD (Lean Development),
- Open Source.
What are the XP values?
- Communication,
- Simplicity,
- Feedback,
- Courage,
- Respect.
What are the key practices of XP?
- Planning Game,
- Small but Frequent Releases,
- Customer Involvement (On-Site),
- Continuous Testing,
- Pair Programming,
- Collective Code Ownership,
- Continuous Inregration,
- Refactoring of Code
When is XP recommended?
- When developers know the requirements will change through the project,
- When there’s high risk,
- When the programmers team is smaller,
- When the development team is extended,
- When one of the project’s requirements is high productivity, since XP leads to increased productivity, in an automated unit and using functional tests,
- When customers are constantly changing demands or requirements,
What are the principles of the DSDM?
- Fixed iterations,
- Frequent releases,
- Total quality,
- Adaptability to changing requirements.
Characterize the DSDM.
Used for smaller teams, fixes time and resources by adjusting the number of features. The team is authorized to make decisions and the user is always involved in the development process. During the life cycle of the software there are always tests integrated directly in it.
What factors may change the method Crystal Family?
- Size of the team,
- Geographic location,
- Security,
- Resources.
How does the Crystal Family work?
The idea is to choose the methodology (crystal type) that aligns with the specific project’s needs, rathan than applying a one-size-fits-all approach, so each project gets a tailored process.
Characterize the Adaptive Software Development.
- Iterative and incremental process
- Fits better large and complex projects,
- Deliver of products with “good enough” quality,
- The high risk task are done first, so changes don’t affect the work much.
What’s the cycle process of ASD?
- Speculate - set the objctives and a plan based on components,
- Collaborate - balance the work,
- Learn - all stakeholders are envolved on the quality review and on the demonstration of the features developed.
What is the JAD technique?
This technique consists of a workshop where knowledge workers and IT specialists meet to define and review the business requirements for the system.
What are the main problems of ASD?
- Demands extensive user involvement,
- The focus on rapid interating and continuous feedback can lead to scope creep,
- The project can be expensive because this development method tests the features developed at all stages.
Explain the SCRUM agile framework.
- Scrum is characterized by its iterative and incremental approach, providing a structured yet flexible framework for teams to deliver high-value products.
- What chracterizes SCRUM are its “Sprints” where developers must deliver a set of items or finish work within a small amount of time, fostering quick and constant delivery.
- The team must be commited, focused, efficient and experienced in order for it to work properly.
Explain the complementarity property between SCRUM and XP.
While SCRUM provides management practives, XP focuses more on integrated software engenerring practices.
This combination can result in a more holistic and adaptable approach to software development.
What are the five processes of Feature-Driven Developement or FDD?
- Develop an Overall Model - indentifying major classes and their relationships,
- Build a Features List - a list of features grouped into sets and subject areas
- Plan by Fearture - group features into smalled and managebable sets, assigning them to spevific development teams,
For each feature set: - Design by Feature - break down into smalled tasks,
- Build by Feature - build one feature at a time (a “complete before moving to the next task” mindset)
What are the best practices in FDD?
- Domain object modelling,
- Develop by feature,
- Each class has a single responsible,
- Team features,
- Frequent releases,
- Configuration management.
What are the key principles of Lean Software Development?
- Perfect quality the first time,
- Waste minimization,
- Continuous improvement
- Products are processed “on demand” not “pushed”,
- Flexibility,
- Building and maintaining a long-term relationship with suppliers.
Explain the Open Source development method.
The fundamental idea behind this software development process is the free and open distribution of software to people, allowing anyone to view, use, modify and distribute it. Focusing on a collaborative and transparent approach, this method encourages community participation to achieve high-quality software.
Compare the Cathedral and Bazaar approaches and compare them.
The metaphorical comparison between the Cathedral and the Bazaar is a way of illustrating two ends of the spectrum in software development methodologies. While the Cathedral model emphasizes control and predictability, through a more centralized and controlled approach to software development, the Bazaar model emphasizes openness, collaboration, and adaptability, decentralizing the software developement making it open source.
Explain the DevOps methodology.
This method focuses on collaboration and communication between software development and IT operations teams in order to align their unique goals, achieving faster, more reliable and more frequent software releases with enhanced quality.
What is the DevOps Pipeline
This visual “Infinite Loop” reflects on the idea that DevOps is not a one-time process but an infinite cycle of development, deployment, monotoring, feedback and improvement that characterizes this approach to software delivery.
What is LeSS?
- Large-Scale Scrum, is an agile framework designed to scale the principles and practices of Scrum to large organizations,
- LeSS extends the Scrum framework to accommodate the complexities and challenges that arise when multiple Scrum teams work on a single product,
- LeSS emphasizes simplicity, customer-centricity, and continuous improvement in a large-scale context.
- It requires a commitment to organizational change and a focus on collaboration and customer value.
What is SAFe?
- Scaled Agile Framework, is an agile framework designed to help large organizations implement and scale agile and lean practices.
- It provides a set of principles, roles, events, and artifacts for organizations looking to scale agile beyond single teams to coordinate and deliver value across multiple teams and complex systems.
- SAFe is widely used in various industries to enable organizations to achieve business agility and respond effectively to changing market conditions.
- SAFe provides various configurations to tailor the framework to specific organizational needs.
- It is particularly well-suited for large and complex organizations where coordination and alignment across multiple teams and levels are critical.
Compare LeSS and SAFe.
- SAFe and LeSS represent two approaches to scaling agile practices in large organizations.
- SAFe is a comprehensive and structured framework with a hierarchical scaling approach, introducing additional roles and events. It involves significant organizational change, follows a prescriptive philosophy, and provides various configurations to suit different needs.
- In contrast, LeSS takes a minimalistic and lightweight approach, emphasizing simplicity, a “whole-team” approach, and a single Product Backlog for the entire organization. LeSS is designed to be flexible, organically scaling based on Scrum principles, and has a simpler learning curve.
- The choice between them depends on an organization’s preference for a structured, prescriptive framework (SAFe) or a more flexible, minimalist approach (LeSS).