Category: Blog

  • ranquiz

    Ranquiz Logo

    Ranquiz

    ¡Bienvenido a Ranquiz, la red social donde tus listas cobran vida!

    Ranquiz es una plataforma única que te permite explorar, crear y compartir listas sobre una amplia variedad de temas, desde personajes de videojuegos hasta tus comidas favoritas. Ya sea que estés buscando descubrir nuevas recomendaciones, compartir tus intereses o simplemente divertirte explorando listas creadas por otros usuarios, Ranquiz tiene algo para ti.

    Características principales

    • Explora listas: Sumérgete en una variedad de listas creadas por otros usuarios y descubre nuevos temas que te apasionen.
    • Crea tus propias listas: Deja volar tu imaginación y crea listas personalizadas sobre cualquier tema que te guste. Desde películas y libros hasta lugares para visitar, las posibilidades son infinitas.
    • Comparte con tus amigos: Haz que tus listas sean públicas para que otros usuarios puedan disfrutarlas o compártelas directamente con tus amigos y familiares.
    • Diviértete y aprende: Explora, vota y comenta en las listas de otros usuarios para divertirte mientras descubres nuevos intereses y conocimientos.

    Instrucciones de instalación y ejecución local

    Requisitos previos

    Asegúrate de tener instalado/configurado lo siguiente en tu sistema:

    • Python (preferiblemente Python 3.x)
    • MariaDB
    • Cuenta de Cloudinary
    • Cuenta de Gmail

    Pasos a seguir

    1. Clona el repositorio:
      git clone https://github.com/MarioPB05/ranquiz.git
    1. Instala las dependencias:
      cd ranquiz
      pip install -r requirements.txt
    1. Configura las siguientes variables de entornos en un archivo .env en la raíz del proyecto:
    Variable de Entorno Descripción Valor Recomendado
    APP_SECRET_KEY Clave secreta utilizada por Django para firmar cookies y otros datos sensibles
    APP_DEBUG_MODE Modo de depuración de la aplicación. Puede ser True para activarlo, o False para desactivarlo False
    DB_NAME Nombre de la base de datos de la aplicación ranquiz_db
    DB_USER Nombre de usuario de la base de datos
    DB_PASSWORD Contraseña de la base de datos
    DB_HOST Host de la base de datos
    DB_PORT Puerto de la base de datos 3306
    CLOUDINARY_CLOUD_NAME Nombre del cloud en Cloudinary utilizado para almacenar y gestionar imágenes
    CLOUDINARY_API_KEY Clave de la API de Cloudinary
    CLOUDINARY_API_SECRET Secreto de la API de Cloudinary
    EMAIL_HOST Host del servidor de correo electrónico smtp.gmail.com
    EMAIL_USE_TLS Indica si se debe usar TLS (True/False) para el servidor de correo electrónico True
    EMAIL_USE_SSL Indica si se debe usar SSL (True/False) para el servidor de correo electrónico False
    EMAIL_PORT Puerto utilizado por el servidor de correo electrónico 587
    EMAIL_HOST_USER Dirección de correo electrónico utilizada para enviar correos electrónicos
    EMAIL_HOST_PASSWORD Contraseña de la dirección de correo electrónico utilizada
    1. Inicializa la base de datos:
      python manage.py migrate
    1. Ejecuta el servidor:
      python manage.py runserver 127.0.0.1:8000
    1. Accede a la aplicación en tu navegador: Abre tu navegador web y visita http://127.0.0.1:8000

    ¡Y eso es todo! Ahora deberías poder ejecutar Ranquiz en tu entorno local y empezar a explorar sus características.


    Estructura del Proyecto

    El proyecto Django sigue una arquitectura Modelo-Vista-Controlador (MVC), que se organiza en tres aplicaciones principales:

    API

    La aplicación API maneja las solicitudes entrantes y dirige el flujo de datos al servicio correspondiente para su procesamiento. Aquí se encuentra la lógica de presentación y la coordinación de las respuestas a las solicitudes del cliente.

    Componentes:

    • Controladores (Controllers): Responsables de manejar las solicitudes entrantes y dirigirlas al servicio apropiado para su procesamiento.
    • Modelos (Models): Representan la estructura de datos de la aplicación y definen la interacción con la base de datos.
    • Servicios (Services): Encapsulan la lógica de negocio y se utilizan para realizar operaciones específicas en los datos del modelo, como operaciones CRUD y cualquier otra lógica de negocio necesaria.
    • Routing.py (Enrutamiento): Contiene las rutas de la API y las vincula a los controladores correspondientes, especificando qué controlador manejará cada ruta.

    Core

    La aplicación Core maneja las solicitudes relacionadas con el frontend de la aplicación. Aquí se completan las vistas utilizando los servicios proporcionados por la API. Los datos obtenidos de los servicios se utilizan para rellenar las plantillas HTML.

    Websockets

    La aplicación Websockets se encarga de gestionar todas las solicitudes del protocolo WebSocket. WebSocket es un protocolo de comunicación bidireccional y en tiempo real que permite una conexión persistente entre el cliente y el servidor a través de la web, facilitando la transmisión eficiente de datos con baja latencia.

    En nuestra aplicación, hemos utilizado la funcionalidad de Websockets para implementar notificaciones en tiempo real. Esto permite a los usuarios recibir actualizaciones instantáneas sobre eventos importantes dentro de la aplicación, como nuevos comentarios, cambios en las listas favoritas o nuevos seguidores. Gracias a Websockets, podemos proporcionar una experiencia de usuario más dinámica e interactiva, manteniendo a los usuarios informados de manera oportuna sobre las actividades relevantes en la plataforma.


    Share Codes

    En nuestro proyecto, la columna share_code se repite en la mayoría de las tablas y desempeña un papel crucial en la representación única de diversos objetos, como listas, categorías, usuarios, entre otros.

    El share code es un estándar diseñado para generar un código único que represente un objeto específico dentro de nuestra aplicación. Este estándar está definido por los dos primeros dígitos que indican el área a la que está asociada:

    • LS: Listas
    • CS: Categorías
    • US: Usuarios

    Los siguientes 18 dígitos del share code son el identificador único del recurso al que apuntan.

    Ventajas de utilizar Share Codes

    1. Seguridad: Una de las principales ventajas de utilizar share codes es que proporciona una capa adicional de seguridad a nuestra aplicación. Al mostrar un código único en lugar de los IDs de la base de datos, protegemos la información sensible de nuestros recursos.
    2. Portabilidad: Los share codes son independientes de la infraestructura subyacente, lo que significa que se pueden utilizar fácilmente en diferentes entornos y sistemas sin necesidad de cambiar la lógica de la aplicación.
    3. Uniformidad: Al seguir un estándar predefinido para generar share codes, mantenemos una consistencia en la representación de nuestros recursos en toda la aplicación, lo que facilita su gestión y mantenimiento a largo plazo.
    4. Privacidad: Al ocultar los IDs de la base de datos detrás de los share codes, protegemos la privacidad de nuestros usuarios al evitar que se revelen detalles innecesarios sobre la estructura interna de nuestra base de datos.

    El uso de share codes es una práctica recomendada en el desarrollo de aplicaciones web que ofrece múltiples beneficios, tanto en términos de seguridad como de usabilidad. En nuestro proyecto, hemos adoptado esta técnica para garantizar la seguridad de nuestros usuarios finales.


    Autores

    Visit original content creator repository https://github.com/MarioPB05/ranquiz
  • recessjs-docs

    A statically generated blog example using Next.js and Markdown

    This example showcases Next.js’s Static Generation feature using Markdown files as the data source.

    The blog posts are stored in /_posts as Markdown files with front matter support. Adding a new Markdown file in there will create a new blog post.

    To create the blog posts we use remark and remark-html to convert the Markdown files into an HTML string, and then send it down as a prop to the page. The metadata of every post is handled by gray-matter and also sent in props to the page.

    Preview

    Preview the example live on StackBlitz:

    Open in StackBlitz

    Demo

    https://next-blog-starter.vercel.app/

    Deploy your own

    Deploy the example using Vercel:

    Deploy with Vercel

    Related examples

    How to use

    Execute create-next-app with npm or Yarn to bootstrap the example:

    npx create-next-app --example blog-starter blog-starter-app
    
    

    or

    yarn create next-app --example blog-starter blog-starter-app
    
    

    Your blog should be up and running on http://localhost:3000! If it doesn’t work, post on GitHub discussions.

    Deploy it to the cloud with Vercel (Documentation).

    Notes

    This blog-starter uses Tailwind CSS. To control the generated stylesheet’s filesize, this example uses Tailwind CSS’ v2.0 purge option to remove unused CSS.

    Visit original content creator repository https://github.com/kazewaze/recessjs-docs
  • standard-edition

    Roadiz Standard Edition CMS

    Join the chat at https://gitter.im/roadiz/roadiz

    Roadiz is a modern CMS based on a polymorphic node system which can handle many types of services and contents. Its back-office has been developed with a high sense of design and user experience. Roadiz theming system is built to live independently of back-office allowing easy switching and multiple themes for one content basis. For example, it allows you to create one theme for your desktop website and another one for your mobile, using the same node hierarchy. Roadiz is released under MIT license, so you can reuse and distribute its code for personal and commercial projects.

    Documentation

    Standard edition

    This is the production-ready edition for Roadiz. It is meant to set up your Apache/Nginx server root to the web/ folder, keeping your app sources and themes secure.

    Usage

    # Create a new Roadiz project on develop branch
    composer create-project roadiz/standard-edition;
    # Navigate into your project dir
    cd standard-edition;
    # Create a new theme for your project
    bin/roadiz themes:generate --symlink --relative FooBar;
    # Go to your theme
    cd themes/FooBarTheme;
    # Build base theme assets
    yarn; # or npm install
    yarn build; # or npm run build

    Composer will automatically create a new project based on Roadiz and download every dependency.

    Composer script will copy a default configuration file and your entry-points in web/ folder automatically and a .env file in your project root to set up your Docker development environment.

    Update Roadiz and your own theme assets

    composer update -o --no-dev
    
    # Re-install your theme in public folder using relative symlinks (MacOS + Unix)
    # remove --relative flag on Windows to generate absolute symlinks
    bin/roadiz themes:assets:install --symlink --relative FooBar;

    Develop with Docker

    Docker on Linux will provide awesome performances, and a production-like environment without bloating your development machine:

    # Copy sample environment variables
    # and adjust them against your needs.
    nano .env;
    # Build PHP image
    docker-compose build;
    # Create and start containers
    docker-compose up -d;
    
    # Adapt Makefile with your theme name and NPM/Yarn
    # This will be useful to generate assets and clear cache
    # in one command
    nano Makefile; 
    cd themes/FooBarTheme;
    # Install NPM dependencies for your front-end dev environment.
    yarn; # npm install;
    # Then build assets
    yarn build; # npm run build
    Issue with Solr container

    Solr container declares its volume in .data/solr in your project folder. After first launch this folder may be created with root owner causing Solr not to be able to populate it. Just run:
    sudo chown -R $USER_UID:$USER_UID .data (replacing $USER_UID with your local user id).

    Develop with PHP internal server

    # Edit your Makefile "DEV_DOMAIN" variable to use a dedicated port
    # to your project and your theme name.
    nano Makefile;
    
    # Launch PHP server
    make dev-server;

    Install your theme assets and execute Roadiz commands

    You can directly use bin/roadiz command through docker-compose exec:

    # Install Rozier back-office assets
    docker-compose exec -u www-data app bin/roadiz themes:assets:install Rozier
    
    # Install your theme assets as relative symlinks
    docker-compose exec -u www-data app bin/roadiz themes:assets:install --symlink --relative FooBar

    On Linux

    Pay attention that PHP is running with www-data user. You must update your .env file to reflect your local user UID during image build.

    # Type id command in your favorite terminal app
    id
    # It should output something like
    # uid=1000(toto)

    So use the same uid in your .env file before starting and building your docker image.

    USER_UID=1000

    Update Roadiz sources

    Simply call composer update to upgrade Roadiz. You’ll need to execute regular operations if you need to migrate your database.

    Maximize performances for production

    You can follow the already well-documented article on Performance tuning for Symfony apps.

    Optimize class autoloader

    composer dump-autoload --optimize --no-dev --classmap-authoritative

    Increase PHP cache sizes

    ; php.ini
    opcache.max_accelerated_files = 20000
    realpath_cache_size=4096K
    realpath_cache_ttl=600

    Build a docker image with Gitlab Registry

    You can create a standalone Docker image with your Roadiz project thanks to our roadiz/php80-nginx-alpine base image, a continuous integration tool such as Gitlab CI and a private Docker registry. All your theme assets will be compiled in a controlled environment, and your production website will have a minimal downtime at each update.

    Make sure you don’t ignore package.lock or yarn.lock in your themes not to get dependency errors when your CI system will compile your theme assets. You may do the same for your project composer.lock to make sure you’ll use the same dependencies’ version in dev as well as in your CI jobs.

    Standard Edition provides a basic configuration set with a Dockerfile:

    1. Customize .gitlab-ci.yml file to reflect your Gitlab instance configuration and your theme path and your project name.
    2. Add your theme in Composer pre-docker scripts to be able to install your theme assets into web/ during Docker build:
    php bin/roadiz themes:assets:install MyTheme
    
    1. Add your theme in .dockerignore file to include your assets during build, update the following lines to force ignored files into your Docker image:
    !themes/BaseTheme/static
    !themes/BaseTheme/Resources/views/base.html.twig
    !themes/BaseTheme/Resources/views/partials/*
    
    1. Enable Registry and Continuous integration on your repository settings.
    2. Push your code on your Gitlab instance. An image build should be triggered after a new tag has been pushed and your test and build jobs succeeded.
    Visit original content creator repository https://github.com/roadiz/standard-edition
  • FlutterCleanArchitecture

    flutter_clean_architecture

    This is a simple for Clean Architecture using the Provider Pattern

    App architecture

    Data Flow

    Structure

    Exception Flow

    Structure

    Run with Flavor (dev | stag | prod)

    flutter run --flavor dev --dart-define=FLAVOR=dev If using the another library not build with null-safety. Please run with argument flutter run --no-sound-null-safety

    Environment

    Framework

    • Dart: ‘>=2.12.0 <3.0.0’
    • Flutter: ‘>=2.0.0’

    iOS

    • iOS 13+

    Android

    • Android 5.1+
      • minSdkVersion 22
    • targetSdkVersion 30

    Code Style

    Assets, Fonts

    If added some assets or fonts

    Models

    If added some models for api results

    Auto generate resource

    flutter packages pub run build_runner build --delete-conflicting-outputs

    Auto generate mock class using on Unit Test

    Example: After created the test class, and run command below, the mock class MockMovieRepository will auto generate

    @GenerateMocks([MovieRepository])
    void main() {
      late MovieRepository repository;
    }

    flutter pub run build_runner build --delete-conflicting-outputs

    Auto generate asset image

    fluttergen -c pubspec.yaml

    Getting Started

    This project is a starting point for a Flutter application.

    A few resources to get you started if this is your first Flutter project:

    For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

    Visit original content creator repository https://github.com/bachhoan88/FlutterCleanArchitecture
  • ZoomNet

    (CVPR 2022) Zoom In and Out: A Mixed-scale Triplet Network for Camouflaged Object Detection

    license: mit LAST COMMIT ISSUES STARS ARXIV PAPER ARXIV PAPER

    @inproceedings{ZoomNet-CVPR2022,
    	title     = {Zoom In and Out: A Mixed-scale Triplet Network for Camouflaged Object Detection},
    	author    = {Pang, Youwei and Zhao, Xiaoqi and Xiang, Tian-Zhu and Zhang, Lihe and Lu, Huchuan},
    	booktitle = CVPR,
    	year      = {2022}
    }
    

    Extensions to the conference version can be found: https://github.com/lartpang/ZoomNeXt.

    Changelog

    • 2022-3-16
      • Add the link of the method prediction maps of Table 1 in our paper.
    • 2022-03-08
      • Add the link of arxiv version.
    • 2022-03-07
      • Add the link of paper.
    • 2022-03-05:
      • Update weights and results links.
      • Fixed some bugs.
      • Update dataset links.
      • Update bibtex info.
    • 2022-03-04:
      • Initialize the repository.
      • Add the model and configuration file for SOD.

    Usage

    Dependencies

    Some core dependencies:

    • timm == 0.4.12
    • torch == 1.8.1
    • pysodmetrics == 1.2.4 # for evaluating results

    More details can be found in <./requirements.txt>

    Datasets

    More details can be found at:

    Training

    You can use our default configuration, like this:

    $ python main.py --model-name=ZoomNet --config=configs/zoomnet/zoomnet.py --datasets-info ./configs/_base_/dataset/dataset_configs.json --info demo

    or use our launcher script to start the one command in commands.txt on GPU 1:

    $ python tools/run_it.py --interpreter 'abs_path' --cmd-pool tools/commands.txt  --gpu-pool 1 --verbose --max-workers 1

    If you want to launch multiple commands, you can use it like this:

    1. Add your commands into the tools/commands.txt.
    2. python tools/run_it.py --interpreter 'abs_path' --cmd-pool tools/commands.txt --gpu-pool <gpu indices> --verbose --max-workers max_workers

    NOTE:

    • abs_path: the absolute path of your python interpreter
    • max_workers: the maximum number of tasks to start simultaneously.

    Testing

    Task Weights Results
    COD GitHub Release Link GitHub Release Link
    SOD GitHub Release Link GitHub Release Link

    For ease of use, we create a test.py script and a use case in the form of a shell script test.sh.

    $ sudo chmod +x ./test.sh
    $ ./test.sh 0  # on gpu 0

    Method Comparisons

    Paper Details

    Method Detials

    Comparison

    Camouflaged Object Detection

    Salient Object Detection

    Visit original content creator repository https://github.com/lartpang/ZoomNet
  • Professional-Scrum-Master-Preparation-PSM1

    Purpose of the Scrum Guide

    We developed Scrum in the early 1990s. We wrote the first version of the Scrum Guide in 2010 to help people worldwide understand Scrum. We have evolved the Guide since then through small, functional updates. Together, we stand behind it.
    The Scrum Guide contains the definition of Scrum. Each element of the framework serves a specific purpose that is essential to the overall value and results realized with Scrum. Changing the core design or ideas of Scrum, leaving out elements, or not following the rules of Scrum, covers up problems and limits the benefits of Scrum, potentially even rendering it useless.
    We follow the growing use of Scrum within an ever-growing complex world. We are humbled to see Scrum being adopted in many domains holding essentially complex work, beyond software product development where Scrum has its roots. As Scrum’s use spreads, developers, researchers, analysts, scientists, and other specialists do the work. We use the word “developers” in Scrum not to exclude, but to simplify. If you get value from Scrum, consider yourself included.
    As Scrum is being used, patterns, processes, and insights that fit the Scrum framework as described in this document, may be found, applied and devised. Their description is beyond the purpose of the Scrum Guide because they are context sensitive and differ widely between Scrum uses. Such tactics for using within the Scrum framework vary widely and are described elsewhere.

    Q&A

    Question:

    What can Scrum be used for? (choose all that apply)

    • Develop products and enhancements.
    • Research and identify viable markets, technologies, and product capabilities.
    • Release products and enhancements, as frequently as many times per day.
    • Develop and sustain Cloud (online, secure, on-demand) and other operational environments for product use
    • Sustain and renew products.

    Explanation
    Scrum was initially developed for managing and developing products. Starting in the early 1990s, Scrum has been used extensively, worldwide, to:

    1. Research and identify viable markets, technologies, and product capabilities;
    2. Develop products and enhancements;
    3. Release products and enhancements, as frequently as many times per day;
    4. Develop and sustain Cloud (online, secure, on-demand) and other operational environments for product use; and,
    5. Sustain and renew products.

    Scrum has been used to develop software, hardware, embedded software, networks of interacting function, autonomous vehicles, schools, government, marketing, managing the operation of organizations and almost everything we use in our daily lives, as individuals and societies.


    Question:

    What does the word “development” mean in the context of Scrum? (choose the best answer)

    • Software and hardware development
    • Development of an operational environment for the Product
    • Product development, its releasing and sustaining
    • Complex work that can include all the suggested options and even more
    • Research and identifying of viable markets, technologies, and Product capabilities

    Explanation
    When the words “develop” and “development” are used in the Scrum Guide, they refer to complex work including software and hardware development, development and releasing of products and enhancements, development and sustaining product operational environments, research and identifying of viable markets and technologies, and even more.

    Scrum Definition

    Scrum is a lightweight framework that helps people, teams and organizations generate value through adaptive solutions for complex problems.

    Q&A

    Question:

    What is Scrum? (choose the best answer)

    • A software development cookbook including the best agile practices.
    • A complete process to deliver complex products.
    • Scrum is a lightweight framework that helps people, teams, and organizations generate value through adaptive solutions for complex problems.

    Question:

    Scrum is a technique for developing complex products. (Select the best answer)

    • FALSE
    • TRUE

    Explanation
    Scrum is “considered” a framework, not a methodology, process, techniques, etc. It can be used to develop new products or maintain/sustain existing ones.


    Question:

    True or False: Scrum is not a definitive method or technique.

    • FALSE
    • TRUE

    Explanation
    Scrum: A framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value. Scrum is not a process, technique, or definitive method. Rather, it is a framework within which you can employ various processes and techniques.


    In a nutshell, Scrum requires a Scrum Master to foster an environment where:

    Q&A

    Question:

    When the Scrum Team becomes mature enough in using Scrum, they won’t need a Scrum Master anymore. (Select the best answer)

    • FALSE
    • TRUE

    1. A Product Owner orders the work for a complex problem into a Product Backlog.
    2. The Scrum Team turns a selection of the work into an Increment of value during a Sprint.
    3. The Scrum Team and its stakeholders inspect the results and adjust for the next Sprint.
    4. Repeat

    Scrum is simple. Try it as is and determine if its philosophy, theory, and structure help to achieve goals and create value. The Scrum framework is purposefully incomplete, only defining the parts required to implement Scrum theory. Scrum is built upon by the collective intelligence of the people using it. Rather than provide people with detailed instructions, the rules of Scrum guide their relationships and interactions.

    Various processes, techniques and methods can be employed within the framework. Scrum wraps around existing practices or renders them unnecessary. Scrum makes visible the relative efficacy of current management, environment, and work techniques, so that improvements can be made.

    Q&A

    Question:

    Which three following are true about Scrum? (choose the best three answers)

    • The Scrum Master is Scrum’s way of having a project manager for a self-managed context
    • Scrum is founded on empiricism and lean thinking.
    • Scrum is a lightweight framework that helps people, teams, and organizations generate value through adaptive solutions for complex problems.
    • Scrum is a methodology and you can adapt to your needs as you wish
    • Each element of the framework serves a specific purpose that is essential to the overall value and results realized with Scrum.

    Question:

    Which of the following are valid ways of dealing with regulatory compliance issues in Scrum? (choose the best two answers)

    • They are handled by a Compliance team
    • Throughout the product development
    • They are treated as regular Product Backlog items and addressed in early Sprints. However, independent of the situation, every Sprint must have at least some business functionality, no matter how small.
    • They are dealt with specialized Sprints before developing business functionality

    Explanation
    During a Sprint, the Scrum Team turns a selection of the work into an Increment of value. In other words, for each Sprint, the Scrum Teams must deliver business functionality. Further, Scrum Teams are cross-functional, meaning the members have all the skills necessary to create value for each Sprint.

    Scrum Theory

    Scrum is founded on empiricism and lean thinking. Empiricism asserts that knowledge comes from experience and making decisions based on what is observed. Lean thinking reduces waste and focuses on the essentials.

    Scrum employs an iterative, incremental approach to optimize predictability and to control risk. Scrum engages groups of people who collectively have all the skills and expertise to do the work and share or acquire such skills as needed.

    Scrum combines four formal events for inspection and adaptation within a containing event, the Sprint. These events work because they implement the empirical Scrum pillars of transparency, inspection, and adaptation.

    Q&A

    Question:

    Upon what type of process control is Scrum based? (choose the best answer)

    • Complex
    • Hybrid
    • Defined
    • Empirical

    Question:

    Select which are not part of the pillars that uphold Scrum? (choose all that apply)

    • Teamwork
    • Agility
    • Transparency
    • Cross-functionality
    • Self-organization
    • Inspection
    • Adaptation

    Question:

    Which three following are true about Scrum? (choose the best three answers)

    • The Scrum Master is Scrum’s way of having a project manager for a self-managed context
    • Scrum is founded on empiricism and lean thinking.
    • Scrum is a lightweight framework that helps people, teams, and organizations generate value through adaptive solutions for complex problems.
    • Scrum is a methodology and you can adapt to your needs as you wish
    • Each element of the framework serves a specific purpose that is essential to the overall value and results realized with Scrum.

    Question:

    Which of the following is Scrum founded upon? (choose the best two answers)

    • Extreme Management
    • Lean Thinking
    • PDCA
    • Rapid Application Development
    • Empiricism

    Question:

    Which three of the following are pillars of Scrum? (Select the best three answers)

    • Collaboration
    • Inspection
    • Adaptation
    • Sustainable ace
    • Value optimization
    • Transparency

    Question:

    The three pillars of empiricism are: (choose the best answer)

    • Planning, Demonstration, Retrospective.
    • Planning, Inspection, Adaptation.
    • Inspection, Transparency, Adaptation.
    • Respect For People, Kaizen, Eliminating Waste.
    • Transparency, Eliminating Waste, Kaizen.

    Question:

    Which two of the following are pillars of Scrum? (Select the best two answers)

    • Value optimization
    • Adaptation
    • Creativity
    • Sustainable pace
    • Transparency

    Transparency

    The emergent process and work must be visible to those performing the work as well as those receiving the work. With Scrum, important decisions are based on the perceived state of its three formal artifacts. Artifacts that have low transparency can lead to decisions that diminish value and increase risk.

    Transparency enables inspection. Inspection without transparency is misleading and wasteful.

    Q&A

    Question:

    Which of the following best describes transparency?

    • The process should be visible and understood by stakeholders and project managers.
    • Significant aspects of the process must be visible to those responsible for the outcome.
    • Significant aspects of the process must be visible to stakeholders and project managers.
    • The whole process should be visible to everyone.

    Inspection

    The Scrum artifacts and the progress toward agreed goals must be inspected frequently and diligently to detect potentially undesirable variances or problems. To help with inspection, Scrum provides cadence in the form of its five events.

    Inspection enables adaptation. Inspection without adaptation is considered pointless. Scrum events are designed to provoke change.

    Q&A

    Question:

    How regularly should Scrum users examine Scrum artifacts and progress approaching a Sprint Goal? (choose the best answer)

    • Frequently, but it should not get in the way of the work
    • After the Daily Scrum
    • As frequently as possible
    • At the Sprint Review

    Adaptation

    If any aspects of a process deviate outside acceptable limits or if the resulting product is unacceptable, the process being applied or the materials being produced must be adjusted. The adjustment must be made as soon as possible to minimize further deviation.

    Adaptation becomes more difficult when the people involved are not empowered or self-managing. A Scrum Team is expected to adapt the moment it learns anything new through inspection.

    Q&A

    Question:

    If any aspects of a process deviate outside acceptable limits so that the resulting product will be unacceptable, when must an adjustment be made? (choose the best answer)

    • During the next Sprint Review.
    • As soon as possible to minimize further deviation
    • Whenever the Product Owner approves it.
    • During the next Daily Scrum.
    • Whenever the Scrum Master approves it.

    Scrum Values

    Successful use of Scrum depends on people becoming more proficient in living five values:

    Commitment, Focus, Openness, Respect, and Courage
    1. The Scrum Team commits to achieving its goals and to supporting each other.
    2. Their primary focus is on the work of the Sprint to make the best possible progress toward these goals.
    3. The Scrum Team and its stakeholders are open about the work and the challenges.
    4. Scrum Team members respect each other to be capable, independent people, and are respected as such by the people with whom they work.
    5. The Scrum Team members have the courage to do the right thing, to work on tough problems.

    These values give direction to the Scrum Team with regard to their work, actions, and behavior. The decisions that are made, the steps taken, and the way Scrum is used should reinforce these values, not diminish or undermine them. The Scrum Team members learn and explore the values as they work with the Scrum events and artifacts. When these values are embodied by the Scrum Team and the people they work with, the empirical Scrum pillars of transparency, inspection, and adaptation come to life building trust.

    Q&A

    Question:

    Select the five Scrum Values. (choose all that apply)

    • Openness
    • Commitment
    • Respect
    • Focus
    • Agility
    • Rapid development
    • Courage
    • Lean

    Question:

    Which three Scrum values are demonstrated by focusing on the most valuable items first? (Select the best three answers)

    • Cross-functionality
    • Courage
    • Earned Value
    • Focus
    • Respect

    Question:

    Which Scrum value is demonstrated when we continuously show the correct performance on a burn-down chart that everyone can see? (Select the best answer)

    • Openness
    • Self-management
    • Adaptation
    • Trust

    Question:

    Which of the following ways of forming Scrum Teams meet Scrum´s values? (choose the best two answers)

    • The Scrum Masters form the teams
    • Management collaborates to form the teams
    • Bring all the candidate members together and let them organize into Scrum Teams
    • Existing teams propose the new Scrum Teams

    Explanation
    The people from the Scrum Teams should be respected as capable of self-organizing. Management’s job is to give them the support and environment necessary for being efficient. This is the bottom-up intelligence mindset expected for Scrum to succeed.

    Scrum Team

    The fundamental unit of Scrum is a small team of people, a Scrum Team. The Scrum Team consists of one Scrum Master, one Product Owner, and Developers. Within a Scrum Team, there are no sub-teams or hierarchies. It is a cohesive unit of professionals focused on one objective at a time, the Product Goal.

    Q&A

    Question:

    What is the fundamental unit of Scrum? (choose the best answer)

    • The Developers.
    • The Scrum Master.
    • The Scrum Guide’s rules.
    • A small team of people.
    • The Learning process.

    Question:

    A Scrum Team consists of the following: (choose the best three answers)

    • Developers
    • Product Owner
    • Users
    • Scrum Master
    • Customers

    Scrum Teams are cross-functional, meaning the members have all the skills necessary to create value each Sprint. They are also self-managing, meaning they internally decide who does what, when, and how.

    Q&A

    Question:

    When does a Developer become accountable for the value of a Product Backlog item selected for the Sprint? (choose the best answer)

    • At the Sprint Planning Event.
    • During the Daily Scrum.
    • Never. The entire Scrum Team is accountable for creating value every Sprint.
    • Whenever a team member can accommodate more work.

    Question:

    When does a Developer become the sole owner of an item on the Sprint Backlog? (choose the best answer)

    • Never. All Sprint Backlog items are “owned” by the Developers on the Scrum Team.
    • At the Sprint Planning event.
    • Whenever a team member can accommodate more work.
    • During the Daily Scrum.

    Question:

    What are the characteristics of a Scrum Team? (choose the best three answers)

    • Accountability belongs to the Scrum Team as a whole
    • Cross-functional
    • Having at least one test engineer as a Developer
    • Everybody must be full-time
    • Scrum recognizes no sub-teams or hierarchies, within a Scrum Team

    Question:

    Select three of the following actions that Scrum Master may take in starting up a Scrum implementation: (choose the best three answers)

    • Ensure that a bonus system is in place for the top performance of individuals.
    • Ask the Product Owner to explain the product, its business need, history, goals, and context.
    • Ask the Developers to discuss and identify the way they are going to develop the product.
    • Ask the development managers to introduce their departments and capabilities
    • Ask the Scrum Team to work together and prepare a complete Product Backlog.
    • Ask the Developers to introduce themselves to each other and tell about their skills and background

    Explanation
    Product Backlog is never complete. It has to be about the project and people internal to it, not the external departments. Remember that the team is cross-functional and does everything needed for the project, without outside help. Having a reward system is harmful to the unity of the team.


    Question:

    Which two of the following actions may a Scrum Master take in starting up an initiative to develop a new product? (Select the best two answers)

    • Ask the Developers to introduce themselves to each other and tell about their skills and background.
    • Ensure that a bonus system is in place for the top performance of individuals.
    • Ask the Product Owner to explain the product, its business need, history, goals, and context.
    • Ask the team to work together and prepare a complete Product Backlog.
    • Ensure that there’s a clear understanding of the whole scope of the project.

    Question:

    Select three of the following actions that Scrum Master may take in starting up a project:

    • Ensure that a bonus system is in place for the top performance of individuals.
    • Ask the Developers to discuss and identify the way they are going to develop the product.
    • Ask the Developers members to introduce themselves to each other and tell about their skills and background
    • Ask the development managers to introduce their departments and capabilities
    • Ask the team to work together and prepare a complete Product Backlog.
    • Ask the Product Owner to explain the project, its business need, history, goals, and context.

    Explanation
    Product Backlog is never complete. It has to be about the project and people internal to it, not the external departments. Remember that the team is cross-functional and does everything needed for the project, without outside help. Having a reward system is harmful to the unity of the team.

    The Scrum Team is small enough to remain nimble and large enough to complete significant work within a Sprint, typically 10 or fewer people. In general, we have found that smaller teams communicate better and are more productive.

    Q&A

    Question:

    What is the typical size for a Scrum Team? (choose the best answer)

    • 9.
    • 10 or fewer.
    • 7 plus or minus 2.
    • Minimum of 7.

    Question:

    How many people are there in a Scrum Team with optimal size? (Select the best answer)

    • 10 or less.
    • 4 to 12
    • 3 to 11
    • 5 ± 3
    • 3 to 10

    If Scrum Teams become too large, they should consider reorganizing into multiple cohesive Scrum Teams, each focused on the same product. Therefore, they should share the same Product Goal, Product Backlog, and Product Owner.

    Q&A

    Question:

    True or False: When multiple teams work together on the same product, each team has its Product Owner. Therefore, it is possible to have multiple Product Owners for the same product.

    • True
    • False

    Question:

    True or False: All Scrum Teams working on the same Product must use a single Product Backlog.

    • True
    • False

    Question:

    True or False: When multiple teams work together on the same product, each team should maintain a separate Product Backlog to reduce complexity.

    • True
    • False

    Question:

    You are a Scrum Master and about to begin working with five new Scrum Teams; all working on the same product. Which of the following should you strive for? (choose the best two answers)

    • There should be only a single Product Backlog
    • There should be five Project Backlogs, inheriting from a single Product Backlog
    • There should be five Product Owners, reporting to a Chief Product Owner
    • There should be only a single Product Owner
    • There should be five Product Backlogs, one for each Scrum Team
    • There should be five Product Owners, one for each Scrum Team

    Question:

    Which two statements are correct about the number of Product Owners when there are three products being developed using Scrum? (Select the best two answers)

    • There can be a single Product Owner for all products.
    • There can be a different Product Owner for each product.
    • There should be only one Product Owner.
    • Each product should have a separate Product Owner.

    Question:

    In scaled Scrum, each Scrum Team demonstrates their individual Increment. (Select the best answer)

    • FALSE
    • TRUE

    Question:

    Which three statements are correct when four teams are working on a product? (Select the best three answers)

    • There can be multiple Scrum Masters.
    • There can be multiple Definitions of Done.
    • There can be multiple Product Backlogs.
    • Each Scrum Team maintains its individual Sprint Backlog.
    • There is only one Sprint Backlog each Sprint.
    • There is only one Definition of Done.

    Question:

    When multiple teams are working on the same product, one person can be a Developer on more than one Scrum Team. (Select the best answer)

    • TRUE
    • FALSE

    Explanation
    None of the Scrum accountabilities are necessarily full-time, and a single person can occupy more than one role or the same role in more than one team; e.g., there may be a special expertise that is needed in multiple teams, but it’s not needed in a full-time basis. So, one person can provide that special type of expertise to multiple teams.

    The Scrum Team is responsible for all product-related activities from stakeholder collaboration, verification, maintenance, operation, experimentation, research and development, and anything else that might be required. They are structured and empowered by the organization to manage their own work. Working in Sprints at a sustainable pace improves the Scrum Team’s focus and consistency.

    Q&A

    Question:

    True or False: The Product Owner is the main person responsible for engaging the stakeholders

    • False
    • True

    Question:

    Who is responsible for engaging the stakeholders?
    (Select the best answer)

    • The Project Manager
    • The Developers
    • The Product Owner
    • The Scrum Master
    • The Scrum Team

    Question:

    Who’s responsible for quality?
    (Select the best answer)

    • Team leaders
    • The Developers
    • Testers
    • The Scrum Team

    The entire Scrum Team is accountable for creating a valuable, useful Increment every Sprint. Scrum defines three specific accountabilities within the Scrum Team: the Developers, the Product Owner, and the Scrum Master.

    Q&A

    Question:

    Who is accountable for creating a valuable, useful Increment every Sprint. (choose the best answer)

    • The Developers.
    • The Product Owner.
    • The Scrum Master.
    • The Scrum Team.
    • The team leaders.

    Developers

    Developers are the people in the Scrum Team that are committed to creating any aspect of a usable Increment each Sprint.

    The specific skills needed by the Developers are often broad and will vary with the domain of work. However, the Developers are always accountable for:

    • Creating a plan for the Sprint, the Sprint Backlog;
    • Instilling quality by adhering to a Definition of Done;
    • Adapting their plan each day toward the Sprint Goal; and,
    • Holding each other accountable as professionals.
    Q&A

    Question:

    Who is committed to creating any aspect of a usable Increment each Sprint?

    • The Scrum Team.
    • The team leaders.
    • The Product Owner.
    • The Developers.
    • The Scrum Master.

    Question:

    Which of the following are true? (Select the best three answers)

    • The Developers are always accountable for instilling quality by adhering to a Definition of Done
    • The fundamental unit of Scrum is a small team of people, a Scrum Team.
    • The Product Owner is responsible for the sizing Product Backlog items.
    • Sprints are the heartbeat of Scrum, where ideas are turned into value.

    Question:

    True or False: The Product Owner and the Scrum Master cannot be a part of Developers

    • False
    • True

    Explanation
    Scrum does not prohibit the Product Owner or the Scrum Master do development work. However, it is not the best practice because it could create a conflict of interest.


    Question:

    Which of the following are true? (Select the best three answers)

    • The Developers are always accountable for instilling quality by adhering to a Definition of Done
    • The fundamental unit of Scrum is a small team of people, a Scrum Team.
    • The Product Owner is responsible for the sizing Product Backlog items.
    • Sprints are the heartbeat of Scrum, where ideas are turned into value.

    Explanation
    c. The Developers who will be doing the work are responsible for the sizing. The Product Owner may influence the Developers by helping them understand and select trade-offs.


    Question:

    Which of the following are the responsibilities of the Developers of a Scrum Team? (choose the best three answers)

    • Report their progress to management
    • Estimate the size of Product Backlog items
    • Do the work planned in the Sprint Backlog
    • Select Product Backlog items for the Sprint
    • Order the Product Backlog

    Explanation
    Comments: a. False, the Scrum Team is self-managed and doesn’t report progress to management. B. True, The Developers who will be doing the work are responsible for the sizing. C. True, Developers are the people in the Scrum Team that are committed to creating any aspect of a usable Increment each Sprint in light of the Sprint Backlog. D. True, during Sprint Planning, the Developers select items from the Product Backlog to include in the current Sprint. e. False, the Product Owner is accountable for ordering the Product Backlog. This one can be tricky because it is possible for the Product Owner to delegate the task of ordering the Product Backlog to Developers. However, since the question is asking for the three best answers, this one shouldn’t be considered correct.

    Product Owner

    The Product Owner is accountable for maximizing the value of the product resulting from the work of the Scrum Team. How this is done may vary widely across organizations, Scrum Teams, and individuals.

    The Product Owner is also accountable for effective Product Backlog management, which includes:

    • Developing and explicitly communicating the Product Goal;
    • Creating and clearly communicating Product Backlog items;
    • Ordering Product Backlog items; and,
    • Ensuring that the Product Backlog is transparent, visible and understood.

    The Product Owner may do the above work or may delegate the responsibility to others. Regardless, the Product Owner remains accountable.

    For Product Owners to succeed, the entire organization must respect their decisions. These decisions are visible in the content and ordering of the Product Backlog, and through the inspectable Increment at the Sprint Review.

    The Product Owner is one person, not a committee. The Product Owner may represent the needs of many stakeholders in the Product Backlog. Those wanting to change the Product Backlog can do so by trying to convince the Product Owner.

    Q&A

    Question:

    Who is responsible for maximizing the value of the work the Scrum Team performs?

    • The Scrum Master and The Developers
    • The Developers
    • The Product Owner
    • The Product Owner and The Developers
    • The Scrum Team
    • The Scrum Master

    Question:

    Who is accountable for maximizing the value of the product resulting from the work of the Scrum Team?
    (choose the best answer)

    • The Scrum Master and The Developers
    • The Scrum Master
    • The Scrum Team
    • The Product Owner
    • The Developers
    • The Product Owner and The Developers

    Question:

    Which statement best describes a Product Owner’s responsibility?
    (choose the best answer)

    • Managing the project and ensuring that the work meets the commitments to the stakeholders.
    • Optimizing the value of the work the Scrum Team does.
    • Keep stakeholders from distracting the Developers.
    • Directing the Developers.

    Question:

    Select the three most applicable items that Product Backlog management includes: (choose the best three answers)

    • Ensuring that the Product Backlog is transparent, visible, and understood
    • Developing and explicitly communicating the Product Goal
    • Presenting Product Backlog items to the Key Stakeholders
    • Moving Product Backlog items into the Sprint Backlog
    • Ordering Product Backlog items

    Question:

    Which of the following is NOT correct about the Scrum Master?
    (Select the best answer)

    • Manages the Product Backlog
    • Helps the organization to implement Scrum
    • Is a true leader who serves the Scrum Team and the larger organization
    • Causes the removal of impediments

    Question:

    Who is accountable for managing the Product Backlog? (choose the best answer)

    • The Product Owner
    • The Developers
    • The Scrum Master
    • The Key Stakeholders

    Question:

    Who is allowed to update the Product Backlog?
    (choose the best two answers)

    • The Product Discovery team.
    • The Scrum Master.
    • The Developers, but the Product Owner remains accountable.
    • The key stakeholders.
    • The Product Owner.
    • The Developers.

    Question:

    Which two statements best describe the Product Backlog?
    (Select the best two answers)

    • It changes as we learn more about the product.
    • Contains all tasks identified by the Developers.
    • It’s used to create the project plan.
    • The Product Owner is accountable for it.

    Question:

    Who should know the most about the progress toward a business objective or a release, and be able to explain the alternatives most clearly? (choose the best answer)

    • The Product Owner
    • The Project Manager
    • The Developers
    • The Scrum Master

    Explanation
    The Product Owner is the sole person responsible for ordering the Product Backlog. Their responsibilities include making the Product Backlog visible, transparent, and clear to all.


    Question:

    Which of the following are applicable characteristics of the Product Owner? (choose the best four answers)

    • Product Visionary
    • Product Value Maximizer
    • Product Marketplace Expert
    • Lead Facilitator of Key Stakeholder Involvement
    • Facilitator of Scrum events

    Question:

    Which of the following are applicable characteristics of the Product Owner?

    • Lead Facilitator of Key Stakeholder Involvement
    • Product Visionary
    • Product Marketplace Expert
    • Product Value Maximizer
    • Facilitator of Scrum events

    Scrum Master

    The Scrum Master is accountable for establishing Scrum as defined in the Scrum Guide. They do this by helping everyone understand Scrum theory and practice, both within the Scrum Team and the organization.

    The Scrum Master is accountable for the Scrum Team’s effectiveness. They do this by enabling the Scrum Team to improve its practices, within the Scrum framework.

    Scrum Masters are true leaders who serve the Scrum Team and the larger organization.

    Q&A

    Question:

    Who is accountable for establishing Scrum? (choose the best answer)

    • The Developers
    • The Scrum Team
    • The Scrum Master
    • The Product Owner
    • The Scrum Master and the Product Owner

    Question:

    Who is responsible for coping with incomplete artifact transparency?

    • The Scrum Master
    • The Scrum Team
    • The Developers
    • The Product Owner

    Question:

    Which of the following is NOT correct about the Scrum Master? (Select the best answer)

    • Manages the Product Backlog
    • Helps the organization to implement Scrum
    • Is a true leader who serves the Scrum Team and the larger organization
    • Causes the removal of impediments

    Question:

    True or False: The Scrum Master does not help those outside the Scrum Team understand which of their interactions with the Scrum Team are helpful and which aren’t.

    • True
    • False

    Explanation
    Scrum Masters are true leaders who serve the Scrum Team and the larger organization. The Scrum Master helps those outside the Scrum Team understand which of their interactions with the Scrum Team are helpful and which aren’t. The Scrum Master helps everyone change these interactions to maximize the value created by the Scrum Team.

    Helping the Scrum Team

    The Scrum Master serves the Scrum Team in several ways, including:

    • Coaching the team members in self-management and cross-functionality;
    • Helping the Scrum Team focus on creating high-value Increments that meet the Definition of Done;
    • Causing the removal of impediments to the Scrum Team’s progress; and,
    • Ensuring that all Scrum events take place and are positive, productive, and kept within the timebox.
    Q&A

    Question:

    How does the Scrum Master serve the Scrum Team? (choose the best three answers)

    • Managing the Developers
    • Helping the Scrum Team focus on creating high-value Increments that meet the Definition of Done
    • Coaching the team members in self-management and cross-functionality
    • Causing the removal of impediments to the Scrum Team’s progress

    Question:

    Which of the following is NOT correct about the Scrum Master? (Select the best answer)

    • Manages the Product Backlog
    • Helps the organization to implement Scrum
    • Is a true leader who serves the Scrum Team and the larger organization
    • Causes the removal of impediments

    Question:

    Which of the following are actions that The Scrum Master must do regarding the Daily Scrum? (choose the two best answers)

    • The Scrum Master is responsible for conducting the Daily Scrum
    • The Scrum Master must manage all events because he or she is the team lead.
    • The Scrum Master ensures that the Developers has the meeting
    • The Scrum Master teaches the Developers to keep the Daily Scrum within the 15-minute time-box

    Question:

    Your Scrum Team’s impediment list is growing. Which techniques would be most helpful in this situation? (choose the best two answers)

    • The Scrum Master removes the impediments as soon as possible
    • The Product Owner adds the impediments to the Product Backlog
    • The Scrum Master discusses the impediments with the Scrum Team
    • The Scrum Team prioritizes the list and works on them in order

    Explanation
    The Scrum Team is self-managed and must figure out how to remove the impediments. However, the Scrum Master is accountable for causing the removal of impediments, which might include discussing them with the Scrum Team when needed.


    Question:

    You are the Scrum Master of a Scrum Team. What are the two primary ways that you can help it to become more productive? (choose the best two answers)

    • By scheduling rooms for the Scrum Events
    • By facilitating Scrum decisions
    • By updating the issue tracker
    • By causing the removal of impediments to the Scrum Team’s progress

    Explanation
    a. The Scrum Master is not a secretary. B. The Scrum Master is not a secretary. C. The Scrum Master, respecting the Scrum Team’s self-management characteristic, removes impediments that the Scrum Team members can’t deal with when they ask for help or coaches them on how to remove the impediments.


    Question:

    What are two ways a Scrum Master serves to enable effective Scrum Teams? (choose the best two answers)

    • By facilitating Developer decision-making.
    • By keeping high value features high in the Product Backlog.
    • By removing impediments that hinder the Scrum Team.
    • By starting and ending the meetings at the proper time.

    Explanation
    The Scrum Master serves the Scrum Team in several ways. Facilitation and removing impediments are examples of ways a Scrum Master helps a team become more effective.


    Question:

    You are the Scrum Master for a Scrum Team that got caught in an internal disagreement about which agile practices to apply. Which of the following techniques could you use to serve the team? (choose the best two answers)

    • Consult with an external agile coach
    • Facilitate involving the whole Scrum team in making a decision
    • Use coaching techniques, such as conflict resolution and active listening
    • Consult with the organization’s Human Resources department

    Explanation
    First of all, the Scrum Master is a member of the Scrum Team, which is self-managed and cross-functional, which means that it should have the capabilities to solve such disagreements without the need to consult external sources. Further, the Scrum Team having internal disagreement can be seen as an impediment. The Scrum Master serves the Scrum Team by coaching them to self-manage, which includes having the Scrum Team capable of removing their impediments. He/she does this by, for instance, using coaching, mentoring, and facilitating decision making. Notice that the Scrum Master should step in and solve impediments that exceed the self-managing capabilities of the Scrum Team, which depends on the context.

    Helping the Product Owner

    The Scrum Master serves the Product Owner in several ways, including:

    • Helping find techniques for effective Product Goal definition and Product Backlog management;
    • Helping the Scrum Team understand the need for clear and concise Product Backlog items;
    • Helping establish empirical product planning for a complex environment; and,
    • Facilitating stakeholder collaboration as requested or needed.
    Q&A

    Question:

    How does the Scrum Master help the Product Owner? Select the four most appropriate answers.

    • Helping find techniques for effective Product Goal definition and Product Backlog management
    • Helping establish empirical product planning for a complex environment.
    • Helping the Scrum Team understand the need for clear and concise Product Backlog items
    • Leading and coaching the organization in its Scrum adoption.
    • Facilitating stakeholder collaboration as requested or needed.

    Question:

    How does the Scrum Master help the Product Owner? (choose the best three answers)

    • Helping the Scrum Team understand the need for clear and concise Product Backlog items
    • Helping find techniques for effective Sprint Goal definition
    • Helping find techniques for effective Product Backlog management
    • Leading and coaching the organization in its Scrum adoption.
    • Helping establish the project plan
    • Facilitating stakeholder collaboration as requested or needed

    Question:

    At some point during the product development cycle, a key stakeholder started using the product and was unhappy with its quality. Thus, he made his concern very clear to the Product Owner. According to the key stakeholder, the product’s performance was below what he expected. Thus, the Product Owner went to talk to you, the Scrum Master, about this issue. What should you tell her? (choose the best two answers)

    • Tell the Product Owner that she should talk to the testers, because, such an issue should not leak to the users and they must improve their quality control procedures
    • Tell the Product Owner that, in Scrum, the technical expertise is expected from the Developers and they are the ones responsible for defining acceptable quality standards, not the stakeholder
    • Coach the Product Owner on how to address the Developers about this issue
    • Encourage the Product Owner to add Product Backlog items focusing on the given quality concerts and express the stakeholder´s concern to the Developers
    • Tell the Product Owner that she should bring this up only on the Sprint Retrospective

    Explanation
    a. A Scrum Team is expected to adapt the moment it learns anything new through inspection. B. The Developers must be aware of the feedback and it might be necessary for the Scrum Master to coach the Product Owner on how to talk to them to avoid causing negative effects. C. There is no “testers” role in Scrum. D. Quality aspects can be treated as Product Backlog items or as part of the Definition of Done. E. No member of the Scrum Team is assumed to know everything required for solving a complex problem. For this reason, Scrum’s nature is to inspect and adapt.

    Helping the organization

    The Scrum Master serves the organization in several ways, including:

    • Leading, training, and coaching the organization in its Scrum adoption;
    • Planning and advising Scrum implementations within the organization;
    • Helping employees and stakeholders understand and enact an empirical approach for complex work; and,
    • Removing barriers between stakeholders and Scrum Teams.
    Q&A

    Question:

    How does the Scrum Master serve the Organization? (choose the best answer)

    • Forming Scrum Teams.
    • Helping employees and stakeholders understand and enact an empirical approach for complex work.
    • Inviting key stakeholders are invited to all Scrum Reviews within the organization.
    • Updating the Burndown charts.

    Scrum Events

    The Sprint is a container for all other events. Each event in Scrum is a formal opportunity to inspect and adapt Scrum artifacts. These events are specifically designed to enable the transparency required. Failure to operate any events as prescribed results in lost opportunities to inspect and adapt. Events are used in Scrum to create regularity and to minimize the need for meetings not defined in Scrum. Optimally, all events are held at the same time and place to reduce complexity.

    Q&A

    Question:

    Which of the following is true about the Sprint Events? (Select the best answer)

    • The Sprint Retrospective concludes the Sprint.
    • The Sprint Review concludes the Sprint.
    • A Sprint may initiate with a Sprint Planning.
    • All events must be held at the same time and place to reduce complexity.

    Explanation
    b. The Sprint Review is the second to last event of the Sprint. This is a rule. c. Sprint Planning initiates the Sprint by laying out the work to be performed for the Sprint. This is a rule. d. Optimally, all events are held at the same time and place to reduce complexity. Not a rule.

    The Sprint

    Sprints are the heartbeat of Scrum, where ideas are turned into value.

    They are fixed length events of one month or less to create consistency. A new Sprint starts immediately after the conclusion of the previous Sprint.

    All the work necessary to achieve the Product Goal, including Sprint Planning, Daily Scrums, Sprint Review, and Sprint Retrospective, happen within Sprints.

    During the Sprint:

    • No changes are made that would endanger the Sprint Goal;
    • Quality does not decrease;
    • The Product Backlog is refined as needed; and,
    • Scope may be clarified and renegotiated with the Product Owner as more is learned.

    Sprints enable predictability by ensuring inspection and adaptation of progress toward a Product Goal at least every calendar month. When a Sprint’s horizon is too long the Sprint Goal may become invalid, complexity may rise, and risk may increase. Shorter Sprints can be employed to generate more learning cycles and limit risk of cost and effort to a smaller time frame. Each Sprint may be considered a short project.

    Various practices exist to forecast progress, like burn-downs, burn-ups, or cumulative flows. While proven useful, these do not replace the importance of empiricism. In complex environments, what will happen is unknown. Only what has already happened may be used for forward-looking decision making.

    A Sprint could be cancelled if the Sprint Goal becomes obsolete. Only the Product Owner has the authority to cancel the Sprint.

    Q&A

    Question:

    True or False: The purpose of a Sprint is to produce a valuable and useful Increment of working product.

    • True
    • False

    Question:

    When is the Sprint over? (Select the best answer)

    • When the timeboxed duration is over
    • When the Product Owner announces the end of the Sprint
    • When the Scrum Master announces the end of the Sprint
    • When the Sprint Backlog tasks are done

    Question:

    What should be the length of a Sprint? (choose the best two answers)

    • At most, one month
    • Whatever works best for management
    • At least, one week
    • Short enough to keep the business risks acceptable

    Question:

    Which two of the following should be considered in setting the timeboxed duration of Sprints? (Select the best two answers)

    • It cannot be longer than one month.
    • It’s better to have shorter Sprints when the project is riskier.
    • It should be shorter when there are more Developers.
    • It shouldn’t be longer than 6 weeks.
    • It should be longer in bigger projects.

    Question:

    It’s generally better to have shorter Sprints when the project is riskier. (Select the best answer)

    • FALSE
    • TRUE

    Question:

    Who is responsible for setting the timeboxed duration of Sprints? (Select the best answer)

    • Stakeholders
    • The whole Scrum Team
    • The Project Manager
    • The Business Analyst
    • The Development Team

    Question:

    Which of the following is false with regards to what happens during the Sprint? (choose the best two answers)

    • Scope may be clarified and renegotiated with the Product Owner as more is learned
    • Quality goals do not decrease
    • Sprint scope is defined at the Sprint Planning and cannot be changed
    • No changes are made that would endanger the Sprint Goal
    • The Sprint Goal is changed frequently to reflect the status of the remaining work

    Question:

    How much work must the Developers do to a Product Backlog item it selects for a Sprint? (choose the best answer)

    • All development work, except for specialized ones that require additional resources such as environments and tools.
    • Analysis, specification, architecture, design, programming, testing, documentation, and deployment.
    • As much as negotiated with the Product Owner and in conformance with the Definition of Done.
    • As much as possible.

    Question:

    Who has the authority to cancel the Sprint? (choose the best answer)

    • The Product Owner
    • The Product Owner and the Scrum Master
    • The Key Stakeholders
    • The Developers
    • The Scrum Master

    Question:

    When might a Sprint be abnormally cancelled? (choose the best answer)

    • When the Developers feel that the work is too hard.
    • When the Sprint Goal becomes obsolete.
    • When the sales department has an important new opportunity.
    • When it becomes clear that not everything will be finished by the end of the Sprint.

    Question:

    When does a Scrum Master cancel a Sprint? (Select the best answer)

    • When there’s an unsolved technical dependency
    • When the Sprint Goal becomes obsolete
    • When not enough resources are available for the project
    • The Scrum Master doesn’t have the authority to cancel the Sprint.

    Question:

    When is the Sprint over? (Select the best two answers)

    • When the Product Owner cancels the Sprint
    • When the Sprint Backlog tasks are done
    • When all Sprint Backlog items are done
    • When the Scrum Master announces the end of the Sprint
    • When the timeboxed duration is over

    Question:

    How much time does the Product Owner spend on Product Backlog Refinement? (Select the best answer)

    • As much as needed
    • Usually not more than 5% of their time
    • Not more than 30% of their time
    • Usually not more than 20% of their time

    Question:

    How much time does the Scrum Team spend on Product Backlog Refinement? (Select the best answer)

    • Usually not more than 5% of their time
    • Usually not more than 10% of their time
    • Usually not more than 20% of their time
    • As much as needed

    Question:

    Refinement usually consumes how much of part of the capacity of the Scrum Team? (choose the best answer)

    • Not more than 5%
    • Not more than 10%
    • Not more than 20%
    • It is up to the Scrum Team.

    Question:

    Which two statements are correct about Product Backlog Refinement? (Select the best two answers)

    • Multiple teams may participate in it.
    • It can take as much time as needed.
    • Normally, it shouldn’t take more than 10% of the Scrum Team’s time.
    • Normally, it doesn’t take more than 10% of the Development Team’s time.
    • The Scrum Master should facilitate it.
    • Normally, it doesn’t take more than 10% of the Product Owner’s time.

    Explanation
    During the Sprint, the Product Backlog is refined as needed. Further, there are no restrictions on how many teams can participate in refinement activities.


    Question:

    Scrum Teams are allowed to use burn-up charts instead of burn-down charts. (Select the best answer)

    • False
    • True

    Explanation
    The Scrum Team can adopt practices to forecast progress, like burn-downs, burn-ups, or cumulative flows. However, these do not replace the importance of empiricism.


    Question:

    What does a burn-down chart measure? (Select the best answer)

    • The amount of business value delivered to the customer
    • Work that is done based on the Definition of Done
    • Cost of the project across time
    • Work remaining across time

    Question:

    What does a Sprint Burn-down Chart show? (choose the best answer)

    • Dependencies, start times and stop times for project tasks
    • How much work remains till the end of the Sprint
    • Hierarchy of tasks that comprise a project
    • The evolution of the amount of uncertainty during a project

    Sprint Planning

    Sprint Planning initiates the Sprint by laying out the work to be performed for the Sprint. This resulting plan is created by the collaborative work of the entire Scrum Team.

    The Product Owner ensures that attendees are prepared to discuss the most important Product Backlog items and how they map to the Product Goal. The Scrum Team may also invite other people to attend Sprint Planning to provide advice.

    Sprint Planning addresses the following topics:

    Q&A

    Question:

    A Sprint initiates with a Sprint Planning. (Select the best answer)

    • FALSE
    • TRUE

    Question:

    Who participates in Sprint Planning? (choose all that apply)

    • The Developers
    • The Product Owner
    • The Scrum Master
    • Invited people

    Question:

    True or False: Only people of the Scrum Team can participate in the Sprint Planning.

    • True
    • False

    Topic One: Why is this Sprint valuable?

    The Product Owner proposes how the product could increase its value and utility in the current Sprint. The whole Scrum Team then collaborates to define a Sprint Goal that communicates why the Sprint is valuable to stakeholders. The Sprint Goal must be finalized prior to the end of Sprint Planning.

    Q&A

    Question:

    Who is responsible for defining the Sprint Goal during Sprint Planning? (choose the best answer)

    • The Development Team
    • The Scrum Master
    • The Scrum Team
    • The Key Stakeholders
    • The Product Owner

    Question:

    All of the following are possible inputs to Sprint Planning, EXCEPT: (Select the best answer)

    • Sprint Goal
    • Product Backlog
    • Velocity
    • Increment
    • Definition of Done.

    Topic Two: What can be Done this Sprint?

    Through discussion with the Product Owner, the Developers select items from the Product Backlog to include in the current Sprint. The Scrum Team may refine these items during this process, which increases understanding and confidence. Selecting how much can be completed within a Sprint may be challenging. However, the more the Developers know about their past performance, their upcoming capacity, and their Definition of Done, the more confident they will be in their Sprint forecasts.

    Q&A

    Question:

    How does the Product Owner determine the number of items for the Sprint Backlog? (Select the best answer)

    • Based on velocity
    • He or she doesn’t do it!
    • Based on a combination of velocity and team capacity
    • Based on what is needed for the next release

    Explanation
    Through discussion with the Product Owner, the Developers select items from the Product Backlog to include in the current Sprint.


    Question:

    Sprint Planning is not a place for refining Product Backlog items. (Select the best answer)

    • FALSE
    • TRUE

    Topic Three: How will the chosen work get done?

    For each selected Product Backlog item, the Developers plan the work necessary to create an Increment that meets the Definition of Done. This is often done by decomposing Product Backlog items into smaller work items of one day or less. How this is done is at the sole discretion of the Developers. No one else tells them how to turn Product Backlog items into Increments of value.

    The Sprint Goal, the Product Backlog items selected for the Sprint, plus the plan for delivering them are together referred to as the Sprint Backlog.

    Sprint Planning is timeboxed to a maximum of eight hours for a one-month Sprint. For shorter Sprints, the event is usually shorter.

    Q&A

    Question:

    Ordinarily, items on the Sprint Backlog tend to be… (choose the best answer)

    • Smaller than those on the Product Backlog
    • The same size as those on the Product Backlog
    • Larger than those on the Product Backlog

    Question:

    On average, items on the Product Backlog tend to be _____ (Select the best answer)

    • Smaller than those on the Sprint Backlog
    • The same size as those on the Sprint Backlog
    • Larger than those on the Sprint Backlog

    Question:

    The timebox for the Sprint Planning event is? (choose the best answer)

    • 8 hours for a monthly Sprint. For shorter Sprints it is usually shorter.
    • Monthly.
    • Whenever it is done.
    • 4 hours.

    Question:

    During Sprint Planning, the Developers must plan the work for all days of the Sprint. It is decomposed by the end of this meeting, often to units of one day or less. (choose the best answer)

    • No, this is not a rule and it is up to the Developers to plan the work necessary to create an Increment that meets the Definition of Done.
    • Yes, Sprint Backlog is decomposed down into user stories, and the delivery time and effort are estimated considering the Sprint duration
    • No, because who estimates the work to be done at Sprint is the Scrum Master
    • Yes, all items in the Sprint Backlog should be decomposed to units of one day or less by the end of the Sprint Planning

    Daily Scrum

    The purpose of the Daily Scrum is to inspect progress toward the Sprint Goal and adapt the Sprint Backlog as necessary, adjusting the upcoming planned work.

    The Daily Scrum is a 15-minute event for the Developers of the Scrum Team. To reduce complexity, it is held at the same time and place every working day of the Sprint. If the Product Owner or Scrum Master are actively working on items in the Sprint Backlog, they participate as Developers.

    The Developers can select whatever structure and techniques they want, as long as their Daily Scrum focuses on progress toward the Sprint Goal and produces an actionable plan for the next day of work. This creates focus and improves self-management.

    Daily Scrums improve communications, identify impediments, promote quick decision-making, and consequently eliminate the need for other meetings.

    The Daily Scrum is not the only time Developers are allowed to adjust their plan. They often meet throughout the day for more detailed discussions about adapting or re-planning the rest of the Sprint’s work.

    Q&A

    Question:

    Who is responsible for managing the progress of work during a Sprint? (choose the best answer)

    • The Scrum Master.
    • The most junior member of the team.
    • The Developers.
    • The product owner.

    Question:

    Who must attend the Daily Scrum? (choose the best answer)

    • The Developers and the Product Owner.
    • The Scrum Team.
    • The Developers.
    • The Developers and Scrum Master.

    Question:

    Who is allowed to participate in the Daily Scrum?

    • The key stakeholders.
    • The Scrum Master.
    • The whole Scrum Team.
    • The Developers.
    • The Product Owner.

    Question:

    Which of the following is a valid reason for the Scrum Master to be at the Daily Scrum?

    • To update the burn-down chart.
    • To conduct the meeting, making sure that everyone answers the three questions.
    • To collect the status of the developer and, if necessary, report to the management.
    • The Scrum Master does not have to be in the daily scrum; however, he or she must ensure that the developer hold it.

    Question:

    What is the main reason for the Scrum Master to be at the Daily Scrum? (choose the best answer)

    • To write down any changes to the Sprint Backlog, including adding new items, and tracking progress on the burn-down.
    • To gather status and progress information to report to management.
    • To make sure every team member answers the three questions.
    • They do not have to be there; they only need to ensure the Developers have a Daily Scrum.

    Question:

    The timebox for a Daily Scrum is? (choose the best answer)

    • The same time of day every day.
    • 15 minutes.
    • Two minutes per person.
    • 4 hours.
    • 15 minutes for a 4-week sprint. For shorter Sprints it is usually shorter.

    Question:

    What’s the timeboxed duration of Daily Scrums when there are 6 developers in the team and Sprints are two weeks long? (Select the best answer)

    • 2 minutes per developer + 2 minutes
    • 2 minutes per developer
    • As much as needed to answer the three standard questions
    • 15 minutes

    Question:

    The time-box for a Daily Scrum for a two-week Sprint is? (choose the best answer)

    • Seven minutes.
    • 15 minutes.
    • Four hours.
    • Three minutes per person.
    • As long as necessary to answer the three questions.

    Question:

    Why is the Daily Scrum held at the same time and same place? (choose the best answer)

    • Rooms are hard to book and this lets it be booked in advance.
    • The place can be named.
    • The Product Owner demands it.
    • The consistency reduces complexity.

    Question:

    The Scrum Guide says that Daily Scrum is held at the same time and place. Why? (choose the best answer)

    • Such consistency reduces complexity.
    • To have it run in the team’s War Room.
    • To avoid having people arriving late.
    • To ease the process of booking rooms, since this might be challenging in large-scale organizations.

    Question:

    Which two statements are correct about Daily Scrums? (Select the best two answers)

    • Developers must answer the 3 standard questions during the meeting.
    • It’s timeboxed for 2 minutes per developer.
    • Only the Developers participate in the meeting.
    • It’s held at the same time and place every day.

    Question:

    What are the three classical questions of Daily Scrums, if you decide to go through them? (Select the best three answers)

    • Are we able to deliver all Sprint Backlog items by the end of the Sprint?
    • What problems did I have yesterday?
    • What impediments are in my way or in the way of the team?
    • What is the progress of the Sprint?
    • What work did I do yesterday to help the team achieve its goal?
    • What work am I going to do today to help the team achieve its goal?

    Explanation
    It’s not mandatory to use these questions, but very common. They don’t appear anymore on Scrum Guide 2020, but might be good to know.

    Sprint Review

    The purpose of the Sprint Review is to inspect the outcome of the Sprint and determine future adaptations. The Scrum Team presents the results of their work to key stakeholders and progress toward the Product Goal is discussed.

    During the event, the Scrum Team and stakeholders review what was accomplished in the Sprint and what has changed in their environment. Based on this information, attendees collaborate on what to do next. The Product Backlog may also be adjusted to meet new opportunities. The Sprint Review is a working session and the Scrum Team should avoid limiting it to a presentation.

    The Sprint Review is the second to last event of the Sprint and is timeboxed to a maximum of four hours for a one-month Sprint. For shorter Sprints, the event is usually shorter.

    Q&A

    Question:

    Who attends the Sprint Review? (choose all that apply)

    • The Scrum Master.
    • Key Stakeholders
    • The Developers
    • The Product Owner.

    Question:

    In which Scrum event do key stakeholders collaborate with the Scrum Team about the outcome of the Sprint and future adaptations? (choose the best answer)

    • The Sprint Planning
    • The Daily Scrum
    • The Sprint Review
    • The Sprint Retrospective

    Question:

    What is a possible result of the Sprint Review? (choose the best answer)

    • A list of improvements that the Scrum Team will implement in the next Sprint
    • A common understanding of what can be delivered in the Increment and how will the work needed to deliver the Increment be achieved
    • A common understanding of progress toward the Sprint Goal and how progress is trending toward completing the work in the Sprint Backlog
    • A revised Product Backlog that defines the probable Product Backlog items for the next Sprint.

    Question:

    True or False: The Sprint Review is a formal meeting for demonstrating the Increment.

    • True
    • False

    Question:

    Which statement best describes the Sprint Review? (choose the best answer)

    • It is when management verifies the tasks performed by the Developers during a Sprint.
    • It is when the Scrum Team demonstrates the work done for everyone in the organization.
    • The purpose of the Sprint Review is to inspect the outcome of the Sprint and determine future adaptations.

    Question:

    The Sprint review is … (mark the best option)

    • It is an event to monitor and control the Developers’ activities.
    • It is a demonstration at the end of the Sprint in which all the stakeholders can check on the work done.
    • It is held at the end of the Sprint to inspect the outcome of the Sprint and determine future adaptations.

    Question:

    The timebox for the Sprint Review is: (choose the best answer)

    • 1 day.
    • 2 hours.
    • As long as needed.
    • 4 hours and longer as needed.
    • 4 hours for a monthly Sprint. For shorter Sprints it is usually shorter.

    Question:

    What’s the timeboxed duration of Sprint Review events? (choose the best answer)

    • 3 hours
    • Maximum 4 hours in a one-month Sprint, and usually shorter for shorter Sprints.
    • 3 hours in a one-month Sprint
    • Maximum 3 hours

    Sprint Retrospective

    The purpose of the Sprint Retrospective is to plan ways to increase quality and effectiveness.

    The Scrum Team inspects how the last Sprint went with regards

    1. to individuals,
    2. interactions,
    3. processes,
    4. tools, and
    5. their Definition of Done.

    Inspected elements often vary with the domain of work. Assumptions that led them astray are identified and their origins explored. The Scrum Team discusses what went well during the Sprint, what problems it encountered, and how those problems were (or were not) solved.

    The Scrum Team identifies the most helpful changes to improve its effectiveness. The most impactful improvements are addressed as soon as possible. They may even be added to the Sprint Backlog for the next Sprint.

    The Sprint Retrospective concludes the Sprint. It is timeboxed to a maximum of three hours for a one-month Sprint. For shorter Sprints, the event is usually shorter.

    Q&A

    Question:

    True or False: During Sprint Retrospective the definition of Done can not be reviewed and adapted.

    • False
    • True

    Question:

    What should the Scrum Team do when during the Sprint Retrospective meeting, they identified some improvements that can be done? (choose the best answer)

    • Assign a responsible team member for at least one improvement. Check the progress at the next Retrospective.
    • Make sure the Sprint Backlog for the next Sprint includes all the improvements.
    • The most impactful improvements are addressed as soon as possible. They may even be added to the Sprint Backlog for the next Sprint.
    • Assign responsible team members for every improvement. Check the progress at the next Retrospective.
    • They should not talk about improvements because it could harm the company.

    Question:

    What is the Sprint Retrospective? (choose the best answer)

    • It is the meeting that occurs at the end of the project to identify its lessons learned.
    • It is a meeting where the Development Team plans work for the next 24 hours.
    • It is a meeting to inspect the Increment and adapt the Product Backlog if needed.
    • It is an opportunity for the Scrum Team to plan ways to increase quality and effectiveness.

    Question:

    True or False: The Definition of Done is created during the first Sprint and remains unchanged until the end of the project.

    • False
    • True

    Question:

    Which of the following are topics to be discussed during Sprint Retrospective? (choose the best two answers)

    • Identify the most helpful changes to improve its effectiveness
    • The Products Backlog order
    • The team’s collaboration
    • Refine the Product Backlog

    Question:

    Who must participate in Sprint Retrospectives? (choose the best answer)

    • The Scrum Master and The Developers.
    • The Developers and The Product Owner.
    • The Scrum Team.
    • The Developers and The Project Manager.
    • The Scrum Team and key stakeholders

    Question:

    When does a Sprint conclude? (choose the best answer)

    • When the Product Owner decides enough has been delivered to meet the Sprint Goal.
    • When the Sprint Retrospective is complete.
    • When all the tasks are completed by the Developers.
    • When all Product Backlog items meet their Definition of Done.

    Question:

    Which of the following is true about the Sprint Events? (Select the best answer)

    • The Sprint Retrospective concludes the Sprint.
    • The Sprint Review concludes the Sprint.
    • A Sprint may initiate with a Sprint Planning.
    • All events must be held at the same time and place to reduce complexity.

    Explanation
    b. The Sprint Review is the second to last event of the Sprint. This is a rule. c. Sprint Planning initiates the Sprint by laying out the work to be performed for the Sprint. This is a rule. d. Optimally, all events are held at the same time and place to reduce complexity. Not a rule.


    Question:

    The Sprint Retrospective is time-boxed to: (choose the best answer)

    • Four hours and longer as needed.
    • Three hours for a monthly Sprint. For shorter Sprints, it is usually shorter.
    • As long as the Scrum Master defines.
    • Four hours for a monthly Sprint. For shorter Sprints, it is usually shorter.
    • One day.

    Question:

    What’s the timeboxed duration of Sprint Retrospective meetings? (Select the best answer)

    • 3 hours in a one-month Sprint, usually shorter for shorter Sprints.
    • 8 hours in a one-month Sprint
    • Maximum 8 hours
    • 3 hours

    Question:

    Which of the following are appropriate topics for the Scrum Team to discuss during a Sprint Retrospective? (choose the best three answers)

    • Team collaboration
    • Refine the Product Backlog items
    • The Scrum Team’s processes and tools
    • Definition of Done
    • Refine the top items of the Product Backlog to make sure that they are Ready for the next Sprint

    Question:

    Which two of the following may be done in the Sprint Retrospective meeting? (Select the best two answers)

    • Discuss the next Sprint goal
    • Refine the Product Backlog
    • Discuss the composition of the team
    • Calculate Velocity
    • Discuss the Definition of Done

    Question:

    What’s the role of a Product Owner during Sprint Retrospectives? (Select the best answer)

    • They should not participate in this meeting
    • Participating as a Scrum Team member
    • Capturing requirements for the Product Backlog
    • Summarizing and report the results of the meeting to stakeholders

    Question:

    True or False: The Scrum Team must choose at least one high-priority process improvement, identified during the Sprint Retrospective, and place it in the Sprint Backlog.

    • True
    • False.

    Question:

    True or False: The Scrum Team must choose at least one high priority process improvement item, identified during the Sprint Retrospective, and place it in the Sprint Backlog.

    • True
    • False

    Explanation
    An earlier version of the Scrum Guide prescribed the practice of placing one improvement in the Sprint Backlog. This was removed in the 2020 update to the Scrum Guide because it was felt to be too prescriptive. However, if this practice provides value to you then you should adopt it. It is simply not prescribed anymore, but can still be valuable.


    Question:

    At least one high-priority process improvement item exists in each Sprint Backlog. (Select the best answer)

    • FALSE
    • TRUE

    Explanation
    False. This is an old rule from Scrum Guide 2017 and removed in Scrum Guide 2020. “The Scrum Team identifies the most helpful changes to improve its effectiveness. The most impactful improvements are addressed as soon as possible. They may even be added to the Sprint Backlog for the next Sprint.”, Scrum Guide 2020


    Question:

    Choose three alternatives that may occur at the Sprint Retrospective meeting: I. To refine the Product Backlog. II. To talk about the upcoming Sprint goal. III. To talk about what (from the Product Backlog) will be used for the upcoming Sprint. IV. To talk about how, throughout the Sprints, Product Backlog Refinement is done. V. To discuss the timeboxed duration of Sprints. VI. To discuss progress toward the Product Goal. VII. To discuss the Definition of Done.

    • I, II and III
    • II, IV, and V
    • I, III and IV
    • I, III and VI
    • IV, V and VII

    Scrum Artifacts

    Scrum’s artifacts represent work or value. They are designed to maximize transparency of key information. Thus, everyone inspecting them has the same basis for adaptation. Each artifact contains a commitment to ensure it provides information that enhances transparency and focus against which progress can be measured:

    • For the Product Backlog it is the Product Goal.
    • For the Sprint Backlog it is the Sprint Goal.
    • For the Increment it is the Definition of Done.

    These commitments exist to reinforce empiricism and the Scrum values for the Scrum Team and their stakeholders.

    Q&A

    Question:

    What are the Scrum Artifacts? (choose all that apply)

    • Sprint Backlog.
    • Increment
    • The Sprint Goal.
    • Product Backlog.
    • Definition of Done.

    Question:

    Which of the following are commitments of Scrum Artifacts. (choose all that apply)

    • Sprint Goal
    • Product Vision
    • Definition of Done
    • Project Goal
    • Product Goal
    • Definition of Ready

    Question:

    Which of the following is true about Artifact’s commitments? (choose the best answer)

    • They are optional
    • They are mandatory.
    • The Increment commits to the Definition of Ready
    • The Product Backlog commits to the Product Vision

    Question:

    Which of the following is mandatory in Scrum? (Select the best answer)

    • Story Points
    • Pair-Programming
    • Product Goal
    • User Stories

    Product Backlog

    The Product Backlog is an emergent, ordered list of what is needed to improve the product. It is the single source of work undertaken by the Scrum Team.

    Product Backlog items that can be Done by the Scrum Team within one Sprint are deemed ready for selection in a Sprint Planning event. They usually acquire this degree of transparency after refining activities. Product Backlog refinement is the act of breaking down and further defining Product Backlog items into smaller more precise items. This is an ongoing activity to add details, such as a description, order, and size. Attributes often vary with the domain of work.

    The Developers who will be doing the work are responsible for the sizing. The Product Owner may influence the Developers by helping them understand and select trade-offs.

    Q&A

    Question:

    TRUE or FALSE: The Product Backlog items consist of a description, order, and size.

    • TRUE
    • FALSE

    Question:

    Which of the following are true? (Select the best three answers)

    • The Developers are always accountable for instilling quality by adhering to a Definition of Done
    • The fundamental unit of Scrum is a small team of people, a Scrum Team.
    • The Product Owner is responsible for the sizing Product Backlog items.
    • Sprints are the heartbeat of Scrum, where ideas are turned into value.

    Question:

    The Product Owner should have a complete Product Backlog before the first Sprint can start. (Select the best answer)

    • FALSE
    • TRUE

    Question:

    The Product Backlog is ordered by: (choose the best answer)

    • Least valuable items at the top to most valuable at the bottom.
    • Items are randomly arranged.
    • Size, where small items are at the top and large items are at the bottom.
    • Risk, where safer items are at the top, and riskier items are at the bottom.
    • Whatever is deemed most appropriate by the Product Owner.

    Question:

    During a Sprint, the CEO asks the Developers to add an urgent item to the Sprint Backlog. What should the Developers do? (choose the best answer)

    • Add the item to the current Sprint without any adjustments
    • Add the item to the Product Backlog
    • Add the item to the current Sprint and remove an item from the Sprint Backlog of equal size
    • The Scrum Master must not allow the CEO to talk to the Developers
    • Inform the Product Owner so that the matter can be worked with the CEO

    Question:

    The CEO asks the Developers to add a “very important” item to a Sprint that is in progress. What should the Developers do? (choose the best answer)

    • Add the item to the next Sprint.
    • Inform the other members of the Scrum Team so the team can decide what to do.
    • Add the item to the current Sprint without any adjustments.
    • Add the item to the current Sprint and drop an item of equal size.

    Question:

    Which element should NOT be an attribute of Product Backlog items? (Select the best answer)

    • Description
    • Size
    • Order
    • Owner

    Question:

    Product Backlog refinement is the act of breaking down and further defining Sprint Backlog items into smaller more precise items. (Select the best answer)

    • TRUE
    • FALSE

    Question:

    Which two statements best describe the Product Backlog? (Select the best two answers)

    • It changes as we learn more about the product.
    • Contains all tasks identified by the Developers.
    • It’s used to create the project plan.
    • The Product Owner is accountable for it.

    Question:

    The first Sprint can start as soon as the Product Backlog is complete. (Select the best answer)

    • FALSE
    • TRUE

    Question:

    How do changes in the product environment impact the Product Backlog? (Select the best answer)

    • The old baselined Product Backlog would be saved, and a new one would be created for the rest of the product.
    • There’s no effect on the Product Backlog.
    • It evolves to reflect the changes
    • The Product Backlog should be kept high-level enough to tolerate such changes.

    Question:

    The Developers are ready to start the first Sprint, but the Product Backlog is not ready yet. What should the Product Owner do? (Select the best answer)

    • Ask the Developers to help you refine the Product Backlog instead of starting the first Sprint.
    • Let the Sprint begin, but only with the goal of completing the Product Backlog.
    • Let the team start the first Sprint, and continue refining the Product Backlog.

    Question:

    Which two of the following may change during the Sprint? (Select the best two answers)

    • Sprint Backlog
    • Product Backlog
    • Minimum level of quality
    • Sprint Goal

    Question:

    Who is allowed to update the Product Backlog? Select two correct answers.

    • Others, but at the Product Owner’s discretion.
    • The Scrum Master.
    • The Product Owner.
    • The Product Discovery team.
    • The Developers.
    • The key stakeholders.

    Question:

    From the list below, which are Product Backlog features?

    • It is never complete
    • As long as a product exists, its Product Backlog also exists
    • When the final version of a product is rolled out, its Product Backlog is dismissed
    • It is dynamic
    • A Product Backlog could be closed when it contains no items to include into the next Sprint

    Question:

    Choose the statement that precisely details the Product Backlog:

    • The Product Backlog is useful for producing the project plan.
    • The Product Backlog does not get complete and is easily updated.
    • The Product Backlog makes all available sufficient data that allow developers to create a product. It is a list of requirements approved by the product manager.
    • The Product Backlog is full of recognized tasks by the developers. It has to contain many user stories.

    Commitment: Product Goal

    The Product Goal describes a future state of the product which can serve as a target for the Scrum Team to plan against. The Product Goal is in the Product Backlog. The rest of the Product Backlog emerges to define “what” will fulfill the Product Goal.

    A product is a vehicle to deliver value. It has a clear boundary, known stakeholders, well-defined users or customers. A product could be a service, a physical product, or something more abstract.`

    The Product Goal is the long-term objective for the Scrum Team. They must fulfill (or abandon) one objective before taking on the next.

    Q&A

    Question:

    Which of the following is false about the Product Goal. (choose the best answer)

    • When reaching the Product Goal, the Scrum Team chooses to release or not the Increment.
    • The Product Owner is also accountable for developing and explicitly communicating the Product Goal.
    • The Scrum Team must fulfill (or abandon) one Product Goal before taking on the next.
    • The Product Goal is in the Product Backlog.
    • For the Product Goal to be fulfilled, the entire Product Backlog must be Done.
    • The Product Goal is the long-term objective of the Scrum Team.

    Explanation
    The Product Goal describes a future state of the product which can serve as a target for the Scrum Team to plan against. The Product Goal is in the Product Backlog. The rest of the Product Backlog emerges to define “what” will fulfill the Product Goal. The Product Goal is the long-term objective for the Scrum Team. They must fulfill (or abandon) one objective before taking on the next.


    Question:

    Which of the following are correct regarding the Product Goal? (choose the best four answers)

    • Once a product reaches the Product Goal, it must be released.
    • In the case of existing multiple Product Goals, they must be organized into a Product Roadmap.
    • The Product Goal must consist of a vision statement, the main features, a deadline, and target measures.
    • During the Sprint Review, progress toward the Product Goal is discussed.
    • The Scrum Team must only pursue one Product Goal at a time.
    • If there are multiple Scrum Teams working on the same product, they should share the same Product Goal.
    • An Increment is a concrete stepping stone toward the Product Goal.

    Explanation
    The Scrum Guide does not prescribe the use of a Product Roadmap, the components of the Product Goal, neither when to release the product.


    Question:

    True or False: The Scrum Team can only pursue one Product Goal at a time.

    • True
    • False

    Sprint Backlog

    The Sprint Backlog is composed of

    1. the Sprint Goal (why)
    2. the set of Product Backlog items selected for the Sprint (what)
    3. as well as an actionable plan for delivering the Increment (how).

    The Sprint Backlog is a plan by and for the Developers. It is a highly visible, real-time picture of the work that the Developers plan to accomplish during the Sprint in order to achieve the Sprint Goal. Consequently, the Sprint Backlog is updated throughout the Sprint as more is learned. It should have enough detail that they can inspect their progress in the Daily Scrum.

    Q&A

    Question:

    What belongs totally to the Developers?

    • The Increment
    • The Product Backlog
    • The Sprint Backlog
    • The Definition of Done

    Question:

    Who is allowed to change the Sprint Backlog during the Sprint?

    • The Scrum Team
    • The Product Owner
    • The Scrum Master
    • Upper management
    • The Developers and the Product Owner
    • The Developers

    Question:

    Who is allowed to change the actionable plan for delivering the Increment? (choose the best answer)

    • The Scrum Master
    • The Developers and the Product Owner
    • The Developers
    • Upper management
    • The Scrum Team
    • The Product Owner

    Question:

    True or False: The Sprint Backlog is created at Sprint Planning. It is prohibited to add new work into the Sprint Backlog later by the Developers.

    • True
    • False

    Question:

    Which statement is correct about the Sprint Backlog? (choose the best answer)

    • It has all the details.
    • It has no detail.
    • It has just enough detail.

    Question:

    The Sprint Backlog consists of what? (choose the best answer)

    • The Product Backlog items selected for the Sprint.
    • The plan for delivering the selected Product Backlog items.
    • The Sprint Goal, the set of Product Backlog items selected for the Sprint, plus an actionable plan for delivering the product Increment.
    • The tasks for delivering the Product Backlog items selected for the Sprint, including their relationships and owners. __

    Question:

    The Developers should not be interrupted during the Sprint and the Sprint Goal should remain intact. These are conditions that foster creativity, quality and productivity. (Which one the following answers is FALSE?)

    • The Product Owner can help clarify or optimize the Sprint when asked by the Developers.
    • The Developers may work with the Product Owner to add or remove work if they find themselves with more or less capacity than expected.
    • The Sprint Backlog is fully formulated in the Sprint Planning event and does not change during the Sprint.
    • As a decomposition of the selected Product Backlog items, the Sprint Backlog changes and may grow as the work emerges.

    Question:

    Which two of the following may change during the Sprint? (Select the best two answers)

    • Sprint Backlog
    • Product Backlog
    • Minimum level of quality
    • Sprint Goal

    Question:

    Which of the following may change during the Sprint? (Select the best answer)

    • Sprint Goal
    • Sprint Backlog
    • Minimum level of quality

    Commitment: Sprint Goal

    The Sprint Goal is the single objective for the Sprint. Although the Sprint Goal is a commitment by the Developers, it provides flexibility in terms of the exact work needed to achieve it. The Sprint Goal also creates coherence and focus, encouraging the Scrum Team to work together rather than on separate initiatives.

    The Sprint Goal is created during the Sprint Planning event and then added to the Sprint Backlog. As the Developers work during the Sprint, they keep the Sprint Goal in mind. If the work turns out to be different than they expected, they collaborate with the Product Owner to negotiate the scope of the Sprint Backlog within the Sprint without affecting the Sprint Goal.

    Increment

    An Increment is a concrete stepping stone toward the Product Goal. Each Increment is additive to all prior Increments and thoroughly verified, ensuring that all Increments work together. In order to provide value, the Increment must be usable.

    Multiple Increments may be created within a Sprint. The sum of the Increments is presented at the Sprint Review thus supporting empiricism. However, an Increment may be delivered to stakeholders prior to the end of the Sprint. The Sprint Review should never be considered a gate to releasing value.

    Work cannot be considered part of an Increment unless it meets the Definition of Done.

    Q&A

    Question:

    The Increment is:

    • All items in the Sprint Backlog that could be released regardless of whether the Product Owner decides to actually do it
    • All “Done” items in the Sprint Backlog
    • Additive to all prior Increments and thoroughly verified, ensuring that all Increments work together.
    • The sum of all the Product Backlog items completed during the Sprint
    • The sum of all the Product Backlog items completed during the Sprint, excluding the value of the increments of all previous Sprints.

    Question:

    Choose two alternatives among the statements below that are true about an undone Product Backlog item.
    I. Consider the done part of the item in velocity calculation and then create a new item in the Product Backlog for the remaining work.
    II. Demonstrate it in the Sprint Review meeting, even if it is not within the terms of acceptance. It is important to get feedback.
    III. Move it back to the Product Backlog.
    IV. Do not include it in the Increment.
    V. It could be added to the Increment if it does not fail in the user acceptance tests.

    • I and II
    • I and V
    • II and III
    • III and IV
    • IV and V

    Question:

    Choose two alternatives among the items below that are appraised as real outputs of a Sprint.
    I. Some Done features that are added to the earlier version of the software
    II. A proposal for the following Sprints
    III. A part of the software that is available to the end-users
    IV. New features that are available for integration

    • I and II
    • I and III
    • II and III
    • II and IV
    • III and IV

    Question:

    Which two statements explain when a Product Backlog item is considered complete? (Select the best two answers)

    • When the customer approves its completeness
    • When no work is left based on the Definition of Done
    • When user acceptance tests are passed
    • When it’s usable.

    Commitment: Definition of Done

    The Definition of Done is a formal description of the state of the Increment when it meets the quality measures required for the product.

    The moment a Product Backlog item meets the Definition of Done, an Increment is born.

    The Definition of Done creates transparency by providing everyone a shared understanding of what work was completed as part of the Increment. If a Product Backlog item does not meet the Definition of Done, it cannot be released or even presented at the Sprint Review. Instead, it returns to the Product Backlog for future consideration.

    If the Definition of Done for an increment is part of the standards of the organization, all Scrum Teams must follow it as a minimum. If it is not an organizational standard, the Scrum Team must create a Definition of Done appropriate for the product.

    The Developers are required to conform to the Definition of Done. If there are multiple Scrum Teams working together on a product, they must mutually define and comply with the same Definition of Done.

    Q&A

    Question:

    How does the Definition of Done (DoD) help the Scrum Team? (choose the best three answers)

    • DoD is used to assess when work is complete.
    • DoD ensures artifact transparency
    • DoD helps to calculate the velocity of the Scrum Team
    • DoD guides the Developers in knowing how many Product Backlog items it can select during Sprint Planning.

    Explanation
    The Definition of Done is a formal description of the state of the Increment when it meets the quality measures required for the product. The Definition of Done creates transparency by providing everyone a shared understanding of what work was completed as part of the Increment.


    Question:

    Which of the following are true regarding the Definition of Done? (choose the best three answers)

    • Each Product Backlog item contains a Definition of Done containing the criteria it needs to meet to be accepted
    • Guides the Developers on how many Product Backlog items to select for the Sprint
    • Is committed to by the Increment
    • Defines the criteria for a Sprint to be Done
    • Increases transparency

    Explanation
    a. The Definition of Done is a formal description of the state of the Increment when it meets the quality measures required for the product. B. It is one of the factors used by the Developers during Sprint Planning to define what can be Done during the given Sprint. C. The Increment commits to the Definition of Done. d. It defines when a Product Backlog item becomes an Increment. E. The Definition of Done creates transparency by providing everyone a shared understanding of what work was completed as part of the Increment.


    Question:

    Select the two most suited items that should be taken into the reckoning for the Definition of Done? (choose the best two answers)

    • Definition of Done of other Scrum Teams working on other products
    • The standards of the Organization
    • Definition of Done of other Scrum Teams working on the same Product
    • Advice of the Scrum Master
    • Experience of the Product Owner

    Explanation
    If the Definition of Done for an increment is part of the standards of the organization, all Scrum Teams must follow it as a minimum. If it is not an organizational standard, the Scrum Team must create a Definition of Done appropriate for the product. The Developers are required to conform to the Definition of Done. If there are multiple Scrum Teams working together on a product, they must mutually define and comply with the same Definition of Done.


    Question:

    Who is responsible for creating the Definition of Done? (choose the best answer)

    • The Scrum Master
    • The Developers
    • The Product Owner
    • The Scrum Team

    Explanation
    If the Definition of Done for an increment is part of the standards of the organization, all Scrum Teams must follow it as a minimum. If it is not an organizational standard, the Scrum Team must create a Definition of Done appropriate for the product. The Developers are required to conform to the Definition of Done. If there are multiple Scrum Teams working together on a product, they must mutually define and comply with the same Definition of Done.


    Question:

    How does the Definition of “Done” (DoD) help the Scrum Team? Select the three most applicable items.

    • DoD is used to assess when work is complete on the product Increment.
    • DoD helps to calculate the velocity of the Scrum Team
    • DoD ensures artifact transparency
    • DoD guides the Developers in knowing how many Product Backlog items it can select during Sprint Planning.
    • DoD defines when a Product Backlog item may be considered during Sprint Planning

    Question:

    When is an item in the Sprint Backlog considered complete?

    • When the Sprint is over
    • The item has all the quality requirements defined by the Product Owner.
    • When the customer approves its completeness
    • When it’s usable, fulfilling the Definition of Done and becoming an Increment.

    Explanation
    a. Maybe you may not even start working on the item before the Sprint was over, then you can’t call it complete. b. They can still miss something. On the other hand, if the test is focused on the unit, what about testing the integrated solution? It may break something. c. It doesn’t guarantee that we’re absolutely done with the item and that it satisfies the customer and user. A Product Backlog item that you have in the Sprint Backlog is Done when it satisfies the Definition of Done. Note: usable for end-users = potentially shippable = potentially releasable = Done based on the Definition of Done. An Increment is a concrete stepping stone toward the Product Goal. Each Increment is additive to all prior Increments and thoroughly verified, ensuring that all Increments work together. In order to provide value, the Increment must be usable.


    Question:

    When is an item in the Sprint Backlog considered complete? (choose the best answer)

    • The item has all the quality requirements defined by the Product Owner.
    • When the customer approves its completeness
    • When it meets the Definition of Done.
    • When the Sprint is over

    Explanation
    a. Maybe you may not even start working on the item before the Sprint was over, then you can’t call it complete. b. They can still miss something. On the other hand, if the test is focused on the unit, what about testing the integrated solution? It may break something. c. It doesn’t guarantee that we’re absolutely Done with the item and that it satisfies the customer and user. A Product Backlog item that you have in the Sprint Backlog is Done when it satisfies the Definition of Done.


    Question:

    What two things should happen with undone Product Backlog items at the end of the Sprint? (choose the best two answers)

    • If the Product Owner is satisfied with the work, he can accept them and release them
    • The items should be demonstrated during the Sprint Review, the Sprint’s velocity should consider the part of the items that were Done during the Sprint, and the remaining work should be considered as a new Product Backlog item
    • They should be placed on the Product Backlog
    • They must not be included as part of the Increment

    Question:

    Who describes the Definition of Done in the case of multiple Scrum Teams working on a single product? (choose the best answer)

    • It depends on the type of product.
    • Each Scrum Team defines its own.
    • All the Scrum Teams must mutually define the Definition of Done.

    End Note

    Scrum is free and offered in this Guide. The Scrum framework, as outlined herein, is immutable. While implementing only parts of Scrum is possible, the result is not Scrum. Scrum exists only in its entirety and functions well as a container for other techniques, methodologies, and practices.

    Q&A

    Question:

    It’s up to the self-managing team to decide which Scrum artifacts are needed in the project. (Select the best answer)

    • TRUE
    • FALSE

    Explanation
    Self-managing is not unlimited; e.g., you should follow the Scrum framework. While implementing only parts of Scrum is possible, the result is not Scrum. Scrum exists only in its entirety and functions well as a container for other techniques, methodologies, and practices.


    Question:

    True or False: According to the Scrum framework, the Scrum components and rules for the project are chosen depending on the project’s specific characteristics.

    • False
    • True

    Explanation
    While implementing only parts of Scrum is possible, the result is not Scrum. Scrum exists only in its entirety and functions well as a container for other techniques, methodologies, and practices.

    General Questions

    Q&A

    Question:

    Which three of the following are timeboxed? (Select the best three answers)

    • Release Retrospective
    • Daily Scrum
    • Sprint testing
    • Sprint Retrospective
    • Sprint Zero
    • Sprint

    Question:

    Which of the following are time-boxed Scrum events? (choose the best three answers)

    • Hardening Sprint
    • Sprint 0
    • Sprint Planning
    • Release Planning
    • Product Backlog Refinement session
    • Daily Scrum
    • Sprint Retrospective

    Explanation
    a. Not a valid Sprint. B. Not a valid Sprint. C. Yes, Sprint Planning is timeboxed to a maximum of eight hours for a one-month Sprint. For shorter Sprints, the event is usually shorter. D. Not a Scrum Event. E. Not a Scrum Event. F. Yes, the Daily Scrum is timeboxed to 15-minutes. G. Yes, Sprint Retrospective is timeboxed to a maximum of three hours for a one-month Sprint. For shorter Sprints, the event is usually shorter.


    Question:

    Which two of the following are required by Scrum? (Select the best two answers)

    • Answering the three standard questions during Daily Scrums
    • Definition of Done
    • Having full-time developers
    • User Stories
    • Sprint Retrospectives

    Question:

    At some point, several of the Developers from a Scrum Team come to you, the Scrum Master, complaining that the work identified for the upcoming Sprint will require a full-time commitment from a specialist who is external to the teams. What should you consider in this situation? (choose the best two answers)

    • The need for the team to keep delivering value fast
    • The need for the Developers to keep a sustainable pace
    • The benefits of having the Developers figure out a solution for themselves
    • The ability of the Scrum Teams to produce Increments

    Explanation
    Scrum Teams are self-managed and cross-functional. Thus, the Scrum Master should coach the team to be autonomous whenever possible. However, it is also important for the Scrum Master to consider the cases in which specialists are really needed and that problem at hand is too complex for the Developers to figure out on their own. In these cases, the Scrum Master can work with the Developers with the possibility of having specialized training or even having the specialist join the Scrum Team for the period in which his/her expertise is needed. Whatever the case, keep in mind that the Scrum Master has to respect the Scrum Team’s self-management, but fulfill his/her accountability for the Scrum Team’s effectiveness.


    Question:

    What does it mean to say that an event has a time-box?

    • a. The event must happen at a set time.
    • b. The event can take no more than a maximum amount of time (upper limit).
    • c. The event must happen by a given time.
    • d. The event must take at least a minimum amount of time (lower limit).
    • e. The event might have to finish given a maximum amount of time.

    Question:

    Which of the following four behaviors demonstrate that a team is NOT following the Scrum Guide? I. Project Stakeholders attend the Daily Scrum to check progress. II. External stakeholders participate during Sprint Planning assisting the Developers to turn a Product Backlog item into an Increment via a complete and detailed Sprint Backlog. III. The Scrum Team is structured and empowered by the organization to organize and manage their own work. IV. The Developers work given their functional description such as analyst, developer, and tester. V. Developers individually selecting their own work during the Sprint. VI. The Developers own the Sprint Backlog. Check the correct alternative.

    • I, II, IV and V.
    • I, II, III and IV
    • II, III, IV, and VI
    • III, IV, V and VI
    • I, III, IV and VI
    • III, IV, V and VI

    Explanation
    I- The Daily Scrum is an internal meeting for the Developers. It should not be used by external stakeholders to check progress. II- During Sprint Planning, the entire Scrum Team collaborates on understanding the work of the Sprint. The Developers define the work for the first days of the Sprint. The Sprint Backlog emerges during the Sprint. III- Scrum Team members self-organize. IV- Scrum recognizes no sub-teams within the Scrum Team. V- The Developers collaboratively plan work execution. VI- The Sprint Backlog is owned by the Developers.


    Question:

    If there are multiple Product Goals, they must be organized into a Product Roadmap.

    • TRUE
    • FALSE

    Explanation
    The Scrum Guide does not prescribe using a Product Roadmap.


    Question:

    True or False: Velocity of Scrum Teams should be normalized so that administrators can measure and compare their performance.

    • TRUE
    • FALSE

    Explanation
    Progress measurements are done internally, not by external managers. Also, comparing the velocity (dependent on the estimates) of two different teams is never reliable.


    Question:

    Which of the following is not allowed in Scrum?
    I. Release Planning
    II. Using Planning Poker
    III. Integration Sprints
    IV. Using User Stories
    V. Canceling a Sprint

    • I
    • II
    • III
    • IV
    • V

    Question:

    What happens when a Sprint is canceled? (choose the best three answers)

    • Several top Product Backlog Items are taken into the Sprint Backlog to replace the obsolete items
    • At the Sprint Retrospective, the Scrum Master determines who from the Developers is responsible for canceling the Sprint
    • If part of the work is potentially releasable, the Product Owner typically accepts it
    • All incomplete Product Backlog Items are re-estimated and put back on the Product Backlog
    • Any completed and “Done” Product Backlog items are reviewed

    Explanation
    The Scrum Guide is not explicit anymore about what happens. However, these are the best options following Scrum’s mindset. Independent of the case, if a Product Backlog item does not meet the Definition of Done, it cannot be released or even presented at the Sprint Review. Instead, it returns to the Product Backlog for future consideration.


    Question:

    True or False: The Sprint for all the Scrum Teams working on the same product must start and end on the same date.

    • True
    • False

    Reference

    1. The Scrum Guide
    2. SCRUM OPEN
    3. The Scrum Guide – Audio Version – 2020
    4. The Scrum Guide , November 2020 – Audio Version – Studio Quality – English
    5. The Scrum Guide 2020 – Audio version / Audiobook – English
    6. Udemy: Complete Agile Scrum Master Certification Training
    7. Udemy: Complete Agile Scrum Management + Kanban + 4 EXTRA courses
    8. https://www.scrum.org/forum/scrum-forum/8028/its-not-difficult-pass-psm-1
    9. https://github.com/ambaena/scrum-psm1-cheatsheet
    10. https://github.com/Ditectrev/Professional-Scrum-Developer-I-PSD-I-Exam-Dumps-Questions-Answers
    Visit original content creator repository https://github.com/PeterForez/Professional-Scrum-Master-Preparation-PSM1
  • functions-after

    NPM version Build Status Coverage Status

    @dizmo/functions-after

    Returns a function decorating an original function with a callback, which will be invoked after the execution of the original function. The return value of the original function will be handed over to the after callback as an argument, while the return value of the callback will become the overall result.

    Usage

    Install

    npm install @dizmo/functions-after --save

    Require

    const { after } = require("@dizmo/functions-after");

    Examples

    import { after } from "@dizmo/functions-after";
    const f1 = (): number => {
        return 1;
    };
    const f2 = after(f1, (n: number): number => {
        return n + 1;
    });
    const expect = 2 === f2();
    class Class {
        @after.decorator((n: number): number => {
            return n + 1;
        })
        public method(): number {
            return 1;
        }
    }
    const expect = 2 === new Class().method();

    Development

    Clean

    npm run clean

    Build

    npm run build

    without linting and cleaning:

    npm run -- build --no-lint --no-clean

    with UMD bundling (incl. minimization):

    npm run -- build --prepack

    with UMD bundling (excl. minimization):

    npm run -- build --prepack --no-minify

    Lint

    npm run lint

    with auto-fixing:

    npm run -- lint --fix

    Test

    npm run test

    without linting, cleaning and (re-)building:

    npm run -- test --no-lint --no-clean --no-build

    Cover

    npm run cover

    without linting, cleaning and (re-)building:

    npm run -- cover --no-lint --no-clean --no-build

    Documentation

    npm run docs

    Publish

    npm publish

    initially (if public):

    npm publish --access=public

    Copyright

    © 2020 dizmo AG, Switzerland

    Visit original content creator repository https://github.com/dizmo/functions-after
  • lluvia

    Lluvia

    Collections.

    Conventional Commits semantic-release

    CI

    Install

    yarn add @jamashita/lluvia
    

    Prerequisite

    > node -v
    v20.12.2
    
    > npm -v
    10.5.0
    
    > yarn -v
    1.22.21
    

    Conventional commit

    git cz
    

    Address classes

    (interface) Address<V>

    This interface represents a collection Set<V>. It means, Unique values can be stored in this collection instance. If the value implements the hashCode() method from @jamashita/anden, the value will be stored by its hash code. In case of hash code conflicts, the previous value will be overwritten. This interface extends the ReadonlyAddress<V>.

    Address.prototype.add(value: V): Address<V>

    Adds the given value to the collection.

    (override) Address.prototype.filter<W extends V>(predicate: NarrowingBinaryPredicate<V, W, void>): Address<W>

    (override) Address.prototype.filter(predicate: BinaryPredicate<V, void>): Address<V>

    This is an overridden version of the ReadonlyAddress.prototype.filter(predicate).

    (override) Address.prototype.map<W>(mapping: Mapping<V, W>): Address<W>

    This is an overridden version of the ReadonlyAddress.prototype.map(mapping).

    Address.prototype.remove(value: V): Address<V>

    Removes the value that matches the given value from the collection.

    ImmutableAddress

    This is an immutable class that implements Address<V>. It does not allow adding or removing values from the collection directly, but instead returns a new instance of the collection with the added or removed values.

    ImmutableAddress.await<V>(address: ReadonlyAddress<PromiseLike<V>>): Promise<ImmutableAddress<V>>

    Takes a ReadonlyAddress<PromiseLike<V>> and returns a single Promise<ImmutableAddress<V>> that resolves with a new instance of ImmutableAddress<V> containing the resolved values.

    ImmutableAddress.empty<V>(): ImmutableAddress<V>

    Returns an empty ImmutableAddress<V>.

    ImmutableAdress.of<V>(collection: Collection<unknown, V>): ImmutableAddress<V>

    Generates a new instance of ImmutableAddress<V> from the given collection.

    ImmutableAdress.ofSet<V>(set: ReadonlySet<V>): ImmutableAddress<V>

    Generates a new instance of ImmutableAddress<V> from the given set.

    ImmutableAddress.prototype.add(value: V): ImmutableAddress<V>

    Adds the given value to a new instance of ImmutableAddress<V>, instead of the current collection instance, and then returns the new instance.

    (override) ImmutableAddress.prototype.filter<W extends V>(predicate: NarrowingBinaryPredicate<V, W, void>): ImmutableAddress<W>

    (override) ImmutableAddress.prototype.filter(predicate: BinaryPredicate<V, void>): ImmutableAddress<V>

    This is an overridden version of the Address.prototype.filter(predicate).

    (override) ImmutableAddress.prototype.map<W>(mapping: Mapping<V, W>): ImmutableAddress<W>

    This is an overridden version of the Address.prototype.map(mapping).

    ImmutableAddress.prototype.remove(value: V): ImmutableAddress<V>

    Creates a new instance of ImmutableAddress<V> by removing the value that matches the given value from the current collection instance and then returns the new instance.

    MutableAddress

    This is a mutable class that implements Address. It allows adding and removing values from the collection.

    MutableAddress.await<V>(address: ReadonlyAddress<PromiseLike<V>>): Promise<MutableAddress<V>>

    Takes a ReadonlyAddress<PromiseLike<V>> and returns a single Promise<MutableAddress<V>> that resolves with a new instance of MutableAddress<V> containing the resolved values.

    MutableAddress.empty<V>(): MutableAddress<V>

    Returns an empty MutableAddress<V>.

    MutableAdress.of<V>(collection: Collection<unknown, V>): MutableAddress<V>

    Generates a new instance of MutableAddress<V> from the given collection.

    MutableAdress.ofSet<V>(set: ReadonlySet<V>): MutableAddress<V>

    Generates a new instance of MutableAddress<V> from the given set.

    MutableAddress.prototype.add(value: V): this

    Adds the given value to the current collection instance and returns the current instance itself.

    (override) MutableAddress.prototype.filter<W extends V>(predicate: NarrowingBinaryPredicate<V, W, void>): MutableAddress<W>

    (override) MutableAddress.prototype.filter(predicate: BinaryPredicate<V, void>): MutableAddress<V>

    This is an overridden version of the Address.prototype.filter(predicate).

    (override) MutableAddress.prototype.map<W>(mapping: Mapping<V, W>): MutableAddress<W>

    This is an overridden version of the Address.prototype.map(mapping).

    MutableAddress.prototype.remove(value: V): this

    Removes the value that matches the given value from the collection and returns the current instance itself.

    (interface) ReadonlyAddress<V>

    This interface represents a read-only version of a Set<V> collection, meaning that values cannot be added or modified within the collection instance. If the value implements the hashCode() method from @jamashita/anden, the value will be stored based on its hash code. In case of hash code conflicts, the previous value will be overwritten. This interface extends Collection<void, V>.

    (override) ReadonlyAddress.prototype.filter<W extends V>(predicate: NarrowingBinaryPredicate<V, W, void>): ReadonlyAddress<W>

    (override) ReadonlyAddress.prototype.filter(predicate: BinaryPredicate<V, void>): ReadonlyAddress<V>

    This is an overridden version of the Collection.prototype.filter(predicate).

    (override) ReadonlyAddress.prototype.map<W>(mapping: Mapping<V, W>): ReadonlyAddress<W>

    This is an overridden version of the Collection.prototype.map(mapping).

    ReadonlyAddress.prototype.has(value: :V): boolean

    Returns true if the given value is contained in the collection.

    ReadonlyAddress.prototype.toSet(): Set<V>

    Returns a new Set<V> containing all the values in the collection.

    Collection classes

    (interface) Collection<K, V>

    The common interface for Sequence<V>, Dictionary<K, V> and Address<V>. This interface provides common methods for manipulating multiple data. K represents the key of the collection and V represents the value of the collection. This interface also extends Iterable<[K, V]>.

    (override) Collection.prototype[Symbol.iterator](): IterableIterator<[K, V]>

    This method is invoked by the for-of loop. It allows iteration through the key-value pairs of the collection as tuples.

    Collection.prototype.contains(value: V): boolean

    Returns true if the given value is contained within this collection instance.

    Collection.prototype.every(predicate: Predicate<V, K>): boolean

    Returns true if every item in the collection satisfies the given predicate.

    Collection.prototype.filter<W extends V>(predicate: NarrowingBinaryPredicate<V, W, K>): Collection<K, W>

    Collection.prototype.filter(predicate: BinaryPredicate<V, K>): Collection<K, V>

    Returns a new collection containing only the items that satisfy the given predicate. The type of items in the new collection depends on whether the predicate is narrowing or not.

    Collection.prototype.find<W extends V>(predicate: NarrowingBinaryPredicate<V, W, K>): Nulable<W>

    Collection.prototype.find(predicate: BinaryPredicate<V, K>): Nulable<V>

    Returns the first value that satisfies the given predicate. If there are no items that satisfy the predicate, returns null.

    Collection.prototype.forEach(foreach: ForEach<V, K>): void

    Iterates through each item and applies the provided foreach once.

    Collection.prototype.get(key: K): Nullable<V>

    Returns the value of the specified key. If there is no value, return null.

    Collection.prototype.isEmpty(): boolean

    Returns true if this collection has no items.

    Collection.prototype.iterator(): IterableIterator<[K, V]>

    Returns an iterator that iterates over the key-value pairs in the collection.

    Collection.prototype.map<W>(mapping: Mapping<V, W>): Collection<K, W>

    Applies the provided mapping to every item and updates the values to the returned result of the mapping.

    Collection.prototype.size(): number

    Returns the number of items in the collection.

    Collection.prototype.some(predicate: BinaryPredicate<V, K>): boolean

    Returns true if at least one item in the collection satisfies the given predicate.

    Collection.prototype.values(): IterableIterator<V>

    Returns an iterator that iterates over the values in the collection.

    Dictionary classes

    (interface) Dictionary<K, V>

    This interface represents a collection Map<K, V>. If the key implements hasCode() method from @jamashita/anden, the value will be able to stored by its hash code. In case of hash codes conflict, the previous value will be overwritten. This interface extends ReadonlyDictionary<V>.

    (override) Dictionary.prototype.filter<W extends V>(predicate: NarrowingBinaryPredicate<V, W, K>): Dictionary<K, W>

    (override) Dictionary.prototype.filter(predicate: BinaryPredicate<V, K>): Dictionary<K, V>

    This is an overridden version of the ReadonlyDictionary.prototype.filter(predicate).

    (override) Dictionary.prototype.map<W>(mapping: Mapping<V, W>): Dictionary<K, W>

    This is an overridden version of the ReadonlyDictionary.prototype.map(mapping).

    Dictionary.prototype.remove(key: K): Dictionary<K, V>

    Removes the value that matches the given key from the collection.

    Dictionary.prototype.set(key: K, value: V): Dictionary<K, V>

    Sets or updates the given value to the specified key in the collection.

    ImmutableDictionary<K, V>

    This is an immutable class that implements Dictionary<K, V>. It does not allow adding or removing entries from the collection directly, but instead returns a new instance of the collection with the added or removed entries.

    ImmutableDictionary.await<K, V>(dictionary: ReadonlyDictionary<K, PromiseLike<V>>): Promise<ImmutableDictionary<K, V>>

    Takes a ReadonlyDictionary<K, PromiseLike<V>> and return a single Promise<ImmutableDictionary<K, V>> that resolves with a new instance of ImmutableDictionary<K, V> containing the resolved values.

    ImmutableDictionary.empty<K, V>(): ImmutableDictionary<K, V>

    Returns an empty ImmutableDictionary<K, V>.

    ImmutableDictionary.of<K, V>(collection: Collection<K, V>): ImmutableDictionary<K, V>

    Generates a new instance of ImmutableDictionary<K, V> from the given collection.

    ImmutableAdress.ofMap<K, V>(map: ReadonlyMap<K, V>): ImmutableDictionary<K, V>

    Generates a new instance of ImmutableDictionary<K, V> from the given map.

    (override) ImmutableDictionary.prototype.filter<W extends V>(predicate: NarrowingBinaryPredicate<V, W, K>): ImmutableDictionary<K, W>

    (override) ImmutableDictionary.prototype.filter(predicate: BinaryPredicate<V, K>): ImmutableDictionary<K, V>

    This is an overridden version of the Dictionary.prototype.filter(predicate).

    (override) ImmutableDictionary.prototype.map<W>(mapping: Mapping<V, W>): ImmutableDictionary<K, W>

    This is an overridden version of the Dictionary.prototype.map(mapping).

    ImmutableDictionary.prototype.remove(key: K): ImmutableDictionary<K, V>

    Creates a new instance of ImmutableDictionary<K, V> by removing the entry that matches the given key from the current collection instance and then returns the new instance.

    ImmutableDictionary.prototype.set(key: K, value: V): ImmutableDictionary<K, V>

    Sets or updates the given value for the specified key in a new instance of ImmutableDictionary<K, V>, instead of the current collection instance, and returns the new instance.

    MutableDictionary<K, V>

    This is an mutable class that implements Dictionary<K, V>.

    MutableDictionary.await<K, V>(dictionary: ReadonlyDictionary<K, PromiseLike<V>>): Promise<MutableDictionary<K, V>>

    Takes a ReadonlyDictionary<K, PromiseLike<V>> and returns a single Promise<MutableDictionary<K, V>> that resolves with a new instance of MutableDictionary<K, V> containing the resolved values.

    MutableDictionary.empty<K, V>(): MutableDictionary<K, V>

    Returns an empty MutableDictionary<K, V>.

    MutableDictionary.of<K, V>(collection: Collection<K, V>): MutableDictionary<K, V>

    Generates a new instance of MutableDictionary<K, V> from the given collection.

    MutableAdress.ofMap<K, V>(map: ReadonlyMap<K, V>): MutableDictionary<K, V>

    Generates a new instance of MutableDictionary<K, V> from the given map.

    (override) MutableDictionary.prototype.filter<W extends V>(predicate: NarrowingBinaryPredicate<V, W, K>): MutableDictionary<K, W>

    (override) MutableDictionary.prototype.filter(predicate: BinaryPredicate<V, K>): MutableDictionary<K, V>

    This is an overridden version of the Dictionary.prototype.filter(predicate).

    (override) MutableDictionary.prototype.map<W>(mapping: Mapping<V, W>): MutableDictionary<K, W>

    This is an overridden version of the Dictionary.prototype.map(mapping).

    MutableDictionary.prototype.remove(key: K): this

    Removes entry that matches the given key from the collection and returns the current instance itself.

    MutableDictionary.prototype.set(key: K, value: V): this

    Sets or updates the given value for the specified key to the current collection instance and returns the current instance itself.

    (interface) ReadonlyDictionary<K, V>

    This interface represents a read-only version of a Map<K, V> collection, which means that values cannot be added or modified within the collection instance. If the value implements hasCode() method from @jamashita/anden, the entry will be able to stored by its hash code. In case of hash codes conflict, the previous entry will be overwritten. This interface extends Collection<K, V>.

    (override) ReadonlyDictionary.prototype.filter<W extends V>(predicate: NarrowingBinaryPredicate<V, W, void>): ReadonlyDictionary<K, W>

    (override) ReadonlyDictionary.prototype.filter(predicate: BinaryPredicate<V, void>): ReadonlyDictionary<K, V>

    This is an overridden version of the Collection.prototype.filter(predicate).

    ReadonlyDictionary.prototype.has(key: K): boolean

    Returns true if the given key is contained in the collection.

    ReadonlyDictionary.prototype.keys(): IterableIterator<K>

    Returns an iterator that iterates over the keys in the collection.

    (override) ReadonlyDictionary.prototype.map<W>(mapping: Mapping<V, W>): ReadonlyDictionary<K, W>

    This is an overridden version of the Collection.prototype.map(mapping).

    ReadonlyDictionary.prototype.toMap(): Map<K, V>

    Returns a new Map<K, V> containing all the entries in the collection.

    Sequence classes

    ImmutableSequence<V>

    This is an immutable class that implements Sequence<V>.

    ImmutableSequecne.await<V>(sequence: ReadonlySequence<PromiseLike<V>>): Promise<ImmutableSequence<V>>

    Takes a ReadonlySequence<PromiseLike<V>> and return a single Promise<ImmutableSequence<V>>.

    ImmutableSequence.empty<V>(): ImmutableSequence<V>

    Returns an empty ImmutableSequence<V>.

    ImmutableSequence.of<V>(collection: Collection<number, V>): ImmutableSequence<V>

    Generates a new instance of ImmutableSequence<V> from the given collection.

    ImmutableSequence.ofArray<V>(array: ReadonlyArray<V>): ImmutableSequence<V>

    Generates a new instance of MutableSequence<V> from the given array.

    ImmutableSequence.prototype.add(value: V): ImmutableSequence<V>

    Adds the given value to a new instance of ImmutableSequence<V>, instead of the current collection instance, and then returns the new instance.

    (override) ImmutableSequence.prototype.filter<W extends V>(predicate: NarrowingBinaryPredicate<V, W, number>): ImmutableSequence<W>

    (override) ImmutableSequence.prototype.filter(predicate: BinaryPredicate<V, number>): ImmutableSequence<W>

    This is an overridden version of the Sequence.prototype.filter(predicate).

    (override) ImmutableSequence.prototype.map<W>(mapping: Mapping<V, W>): ImmutableSequence<W>

    This is an overridden version of the Sequence.prototype.map(mapping).

    ImmutableSequence.prototype.remove(key: number): ImmutableSequence<V>

    Creates a new instance of ImmutableSequence<V> by removing the value that matches the given key from the current collection instance and then returns the new instance.

    ImmutableSequecne.prototype.set(key, number, value: V): ImmutableSequence<V>

    Sets or updates the given value for the specified key in a new instance of ImmutableSequence<V> instead of the

    MutableSequence<V>

    This is an mutable class that implements Sequence<V>.

    MutableSequecne.await<V>(sequence: ReadonlySequence<PromiseLike<V>>): Promise<MutableSequence<V>>

    Takes a ReadonlySequence<PromiseLike<V>> and return a single Promise<MutableSequence<V>>.

    MutableSequence.empty<V>(): MutableSequence<V>

    Returns an empty MutableSequence<V>.

    MutableSequence.of<V>(collection: Collection<number, V>): MutableSequence<V>

    Generates a new instance of MutableSequence<V> from the given collection.

    MutableSequence.ofArray<V>(array: ReadonlyArray<V>): MutableSequence<V>

    Generates a new instance of MutableSequence<V> from the given array.

    MutableSequence.prototype.add(value: V): this

    Adds the given value to the current collection instance and returns the current instance itself.

    (override) MutableSequence.prototype.filter<W extends V>(predicate: NarrowingBinaryPredicate<V, W, number>): MutableSequence<W>

    (override) MutableSequence.prototype.filter(predicate: BinaryPredicate<V, number>): MutableSequence<W>

    This is an overridden version of the Sequence.prototype.filter(predicate).

    (override) MutableSequence.prototype.map<W>(mapping: Mapping<V, W>): MutableSequence<W>

    This is an overridden version of the Sequence.prototype.map(mapping).

    MutableSequence.prototype.remove(key: number): this

    Removes value that matches the given value from the collection and returns the current instance itself.

    MutableSequecne.prototype.set(key, number, value: V): MutableSequence<V>

    Sets or updates the given value for the specified key to the current collection instance and returns the current instance itself.

    (interface) ReadonlySequence<V>

    This interface represents a read-only version of a Array<V> collection, which means that values cannot be added or modified within the collection instance. This interface extends Collection<number, V>.

    (override) ReadonlySequence.prototype.filter<W extends V>(predicate: NarrowingBinaryPredicate<V, W, number>): ReadonlySequence<W>

    (override) ReadonlySequence.prototype.filter(predicate: BinaryPredicate<V, number>): ReadonlySequence<W>

    This is an overridden version of the Collection.prototype.filter(predicate).

    (override) ReadonlySequence.prototype.map<W>(mapping: Mapping<V, W>): ReadonlySequence<W>

    This is an overridden version of the Collection.prototype.map(mapping).

    ReadonlySequence.prototype.reduce(reducer: BinaryFunction<V, V, V>, initialValue?: V): V

    Executes the given reducer on each item of this instance, passing in the return value from the calculation on the preceding item. The final result will be a single value. The initialValue is an optional parameter that can be used as a starting point for the reduction.

    ReadonlySequence.prototype.sort(comparator: BinaryFunction<V, V, number>): ReadonlySequence<V>

    Returns a new instance of ReadonlySequence<V> sorted according to the given comparator.

    ReadonlySequence.prototype.toArray(): Array<V>

    Returns a new Array<V> containing all the values in the collection.

    (interface) Sequence<V>

    This interface represents a collection Array<V>. This interface extends ReadonlySequence<V>.

    Sequence.prototype.add(value: V): Sequence<V>

    Adds the given value to the collection.

    (override) Sequence.prototype.filter<W extends V>(predicate: NarrowingBinaryPredicate<V, W, number>): Sequence<W>

    (override) Sequence.prototype.filter(predicate: BinaryPredicate<V, number>): Sequence<W>

    This is an overridden version of the ReadonlySequence.prototype.filter(predicate).

    (override) Sequence.prototype.map<W>(mapping: Mapping<V, W>): Sequence<W>

    This is an overridden version of the ReadonlySequence.prototype.map(mapping).

    Sequence.prototype.remove(key: number): Sequence<V>

    Removes the value at the specified key from the collection.

    Sequecne.prototype.set(key, number, value: V): Sequence<V>

    Sets or updates the given value at the specified key in the collection.

    Tree

    Interfaces

    Tree

    A typical tree that can contain below 2 kinds of data.

    SerializablieTreeObject

    An interface that can be into string.

    StructurableTreeObject

    An interface that can be closure table.

    Classes

    SerializableTree

    A concrete class which nodes are SerializablieTreeObject.

    StructurableTree

    A concrete class which nodes are StructurableTreeObject.

    License

    MIT

    Visit original content creator repository https://github.com/jamashita/lluvia
  • Music-Downloader-Bot

    Songs Downloader BOT

    Working Demo image

    Table of Contents

    What is This BOT?

    Ever Wondered how to download songs from Spotify or YouTube?

    This BOT Can help you to download songs from spotify using spotdl

    This BOT Can help you to download songs from YouTube using yt-dlp

    Setup

    On Heroku

    Deploy to Heroku

    On VPS or Locally

    Without Docker

    git clone https://github.com/10cyrilc/spotify-bot.git
    cd spotify-bot
    
    Edit edit_me.py with Details as Follows,
    
    Get you BOT_TOKEN from @BotFather, Required
    Get API_ID and API_HASH from my.telegram.org, Required
    Edit BOT_TEXT if Required
    Get LOG_CHANNEL from Your Channel Settings for Logging, Required
    Your MONGODB_URI from your MongoDB Account, Required
    SESSION_NAME for Your Collection Name in MongoDB
    BOT_OWNER is The User ID of The Developer, Required
    
    sudo pip3 install virtualenv 
    virtualenv venv 
    source venv/bin/activate
    pip3 install -r requirements.txt
    python bot.py
    

    With Docker

    Edit the config.py with required Details
    Build Dockerfile in the Repo
    Run The Docker Image
    

    Bugs

    This is Currently in Development Stages, So it has Bugs that I am unaware of

    If You Find any Bugs Feel Free to contact Cyril C Thomas

    My BOTs Channel

    C BOTs

    Visit original content creator repository https://github.com/10cyrilc/Music-Downloader-Bot
  • ringbud

    RingBud

    A lightweight, high-performance Ring Buffer for streaming data using JavaScript TypedArrays.

    Features

    • 🧠 Frame-based buffering (configurable frame size)
    • Zero dependencies
    • 🧵 Supports all major TypedArrays (e.g. Float32Array, Uint8Array, etc.)
    • 📦 Memory efficient with optional frame trimming
    • 🔁 Sync & async iteration support
    • Fully tested and predictable behavior
    • 🧰 Customizable preallocation and cache options

    Installation

    npm install ringbud

    Quick Start

    import { RingBufferU8 } from "ringbud";
    
    // Create a ring buffer with frame size of 100
    const rb = new RingBufferU8(100);
    
    // Write 50 bytes (not enough for a full frame)
    rb.write(new Uint8Array(50).fill(1));
    console.log(rb.empty()); // true
    
    // Write 50 more bytes (now we have a complete frame)
    rb.write(new Uint8Array(50).fill(1));
    console.log(rb.empty()); // false
    
    // Read one frame of 100 bytes
    const frame = rb.read();
    console.log(frame); // Uint8Array(100)
    
    // After reading, it becomes empty again
    console.log(rb.empty()); // true

    Supported Types

    You can instantiate ring buffers for:

    • Uint8ArrayRingBufferU8
    • Uint16ArrayRingBufferU16
    • Float32ArrayRingBufferF32

    Each subclass wraps the base RingBufferBase with preconfigured types.


    Configuration Options

    All constructors accept:

    {
      frameSize: number,                // Number of elements per frame (required)
      preallocateFrameCount?: number,  // Default: 10
      frameCacheSize?: number          // Default: 0 (no trim)
    }

    Frame Cache Size (Clamping)

    When frameCacheSize > 0, the ring buffer trims memory usage by shifting unread bytes after every .read(). This reduces buffer growth at the cost of additional memory copying.


    API Reference

    Constructor

    new RingBufferU8(frameSize: number, options?: {
      preallocateFrameCount?: number;
      frameCacheSize?: number;
    });

    Methods

    Method Description
    write(data) Appends a TypedArray to the buffer
    read() Returns the next full frame, or null
    drain() Returns remaining incomplete data
    peek() Returns the entire buffer content (not a copy)
    empty() true if no full frame is available
    remainingFrames() Number of full frames available to read
    rewind() Resets read offset so frames can be re-read
    Symbol.iterator() Enables for (const frame of buffer)
    Symbol.asyncIterator() Enables for await (const frame of buffer)


    Example: Iteration

    for (const frame of rb) {
      console.log(frame); // each is a complete frame
    }
    
    // or async
    for await (const frame of rb) {
      await process(frame);
    }

    Example: Auto-Trimming

    const rb = new RingBufferU8(100, { frameCacheSize: 1 });
    
    rb.write(new Uint8Array(300)); // 3 frames
    rb.read();                     // returns 1st frame
    
    // Buffer automatically shifts remaining frames to the front
    rb.peek().subarray(0, 200);    // contains frame 2 and 3

    Validations & Safety

    • frameSize must be an integer ≥ 1
    • preallocateFrameCount must be ≥ 1 (if set)
    • Partial frames are never returned from .read() or iterators
    • Trimming only occurs after reads when frameCacheSize > 0
    • If iteration is used, all frames are consumed as if .read() was called repeatedly
    • Frames can be shared or copied depending on cache config

    TypedArray Support

    Internally, the base class accepts any TypedArray constructor:

    new RingBufferBase({
      frameSize: 256,
      TypedArrayConstructor: Uint16Array
    });

    Built-in classes like RingBufferF32 are wrappers over this API.


    Examples

    Draining Partial Data

    const rb = new RingBufferU8(100);
    
    rb.write(new Uint8Array(230));
    rb.read();           // reads 1 frame (100 bytes)
    rb.read();           // reads 1 more frame (100 bytes)
    rb.read();           // null (30 bytes left)
    
    rb.drain();          // returns 30 bytes

    Rewind

    rb.rewind();         // enables re-reading all written frames
    for (const frame of rb) {
      console.log(frame);
    }

    Visit original content creator repository
    https://github.com/VictorQueiroz/ringbud