Inför tenta Flashcards
What does it mean for microservices to be highly maintainable and testable?
Microservices are designed to be highly maintainable and testable, meaning they are structured in a way that allows developers to easily understand, update, and enhance them. This structure also facilitates testing, enabling quick validation and bug fixing.
What is meant by microservices being loosely coupled?
Microservices are loosely coupled, meaning each service is independent and interacts with other services through simple, well-defined interfaces. This independence allows for changes in one service without impacting others, enhancing flexibility in development and deployment.
Why is independent deployability important for microservices?
Microservices are independently deployable, which allows each service to be deployed, updated, scaled, and restarted without affecting the operation of other services. This feature supports continuous deployment and integration practices, enabling more agile responses to market changes.
How are microservices organized?
Microservices are organized around business capabilities, which means each service is designed to achieve a specific business function or requirement. This organization aligns development with business goals and enables more intuitive scaling and enhancement of services based on business needs.
What does it mean that microservices are owned by a small team?
Each microservice is owned by a small team that is responsible for the full development lifecycle of the service—from design through production and maintenance. This ownership allows for focused expertise, faster development cycles, and more personalized accountability in service management.
What are agile software engineering methods and their primary focus?
Agile software engineering methods prioritize rapid product development and delivery. They are based on iterative development with minimal overhead, enabling quick adaptation and continuous improvement throughout the software development lifecycle.
What is Extreme Programming (XP) and what key practices did it introduce?
Extreme Programming (XP) is an agile method that enhances software quality and responsiveness to changing customer requirements. It introduced key agile practices such as user stories, test-first development, and continuous integration, which are now mainstream in software development.
What is Scrum and how does it differ from Extreme Programming?
Scrum is an agile method focused on planning and management without defining specific engineering practices. Unlike XP, Scrum allows the development team to choose technical practices that are most suitable for the product, emphasizing flexibility in the method’s application.
What is the product backlog in Scrum?
In Scrum, the product backlog is a prioritized list of work items that the team needs to address. It serves as the primary planning artifact from which tasks are pulled into sprints for execution.
What are sprints in Scrum?
Sprints are fixed-time periods, usually two to four weeks long, during which specific work items from the product backlog are developed into a potentially shippable product increment. Each sprint aims to produce a completed increment that requires no further work to be deployable.
What is a self-organizing team in the context of Scrum?
A self-organizing team in Scrum is a group of developers that determines how to address work items by consensus and collaboration. They manage their own workload and methodology, fostering ownership and accountability within the team.
What is incremental development in Scrum?
Incremental development involves building the software in small, manageable increments. Each increment encompasses a set of features from the backlog that are completed during sprints and are ready for delivery at the end of each sprint.
What is a software product feature?
A software product feature is a fragment of functionality that fulfills a specific need or desire of the user when using the product. It is an essential part of the product’s capabilities.
What is the first stage of product development regarding features?
The first stage of product development is to identify and list the product features. Each feature is named and given a brief description of its functionality to clarify what it does and why it’s necessary.
What are personas in product development?
Personas are fictional character portraits of potential users who might use your product. They are crafted based on user research to represent different user types and their respective needs and behaviors.
What should a persona description include?
A persona description should provide a vivid picture of a typical product user, including their educational background, technology experience, and motivations for using the product.
What is a scenario in product development?
A scenario is a narrative that describes a specific situation in which a user interacts with the product’s features to achieve something they desire. It helps visualize how the product is used in real life.
How should scenarios be written?
Scenarios should always be written from the user’s perspective and should be based on personas or real users to ensure they accurately reflect user needs and how the product is intended to be used.
What are user stories?
User stories are concise, structured narratives that detail specific functionalities or features a user expects from the software. They help to refine and add details to scenarios or describe system features.
What influences feature identification and design?
Feature identification and design are influenced by user research, domain knowledge, existing product knowledge, and technology expertise. These elements guide the development of relevant and feasible features.
How can features be identified from scenarios and stories?
Features can be identified by analyzing user actions described in scenarios and stories, thinking about what functionalities are needed to support these actions within the software product.
What is software architecture?
Software architecture is the fundamental organization of a system, defined by its components, the relationships among those components, and their interactions with the environment, guided by principles for its design and evolution.
How does the architecture of a software system influence its properties?
The architecture significantly impacts non-functional system properties such as reliability, efficiency, and security, shaping how well the system meets these critical operational criteria.
What does architectural design involve?
Architectural design involves understanding the critical issues for the product and creating system descriptions that outline components and their relationships.