1597251600
Agile vs Scrum is like seeking for the differences between the two different words “Red” **and **“Color”. Red is a sort of color and use of it mainly depends on the taste of their users. The same could be said about Scrum vs Agile.
**Scrum **is a kind of agile methodology. It is fundamentally an agile process framework. It rapidly and repeatedly inspects the main working software. It emphasizes teamwork, accountability, and iterative progress toward a well-defined goal. In fact, Scrum and Kanban in software development terms are both precise flavors & types of agile software methodology.
Agile is a development methodology based on an iterative and incremental approach. Scrum is just one of the many iterative and incremental agile software development process. You can find here a very detailed description of the processes. Compared to Agile it is a more **rigid **method. So there is not much room for frequent changes.
Follow me on:
LinkedIn- https://www.linkedin.com/in/shormistha-chatterjee/
Blogger-https://shormistha4.blogspot.com/https://qaandsoftwareblog.blogspot.com/
Dzone_- _https://dzone.com/users/3854036/shormistha.html
Bloglovin- https://www.bloglovin.com/@shormistha
#scrum #scrum-master #software-testing #agile-methodology
1598108400
From the desk of a brilliant weirdo #1:
Are your hand shivering and pouring yourself with sweat right before your scrum master interview?
Do you feel quite uncomfortable, maybe unprepared, or maybe even lost in the darkness to what you can expect from the interviewer?
I’ve gone through some of the most common scrum interview questions and provided answers as well.
Big credits to Stefan Wolper, an agile coach, and his ebook about Scrum Masters.
Without further ado:
Scrum Master Role & Responsibilities (Overview)
It’s the Scrum Master’s responsibility to bring the development team on the same page by teaching them all the values and principles that fundamentally shape Scrum and, respectively, Agile.
The Scrum Master’s role revolves around helping and guiding the scrum team rather than managing it. He is also responsible for keeping the project-related stakeholders in the loop as well.
One of the Scrum Master’s primary responsibilities is to ensure a distraction-free environment for his team. The Scrum Master also participates in creating the product backlog helping the PO (product owner) prioritize tasks by importance.
And he is the one ultimately responsible for imbuing the organization with the Scrum values & principles by communicating with other scrum masters, stakeholders, etc.
So, if you are determined to follow a Scrum Master career path, earn the respective salary of a certified scrum master, and qualify for tons of scrum master interviews with the help of your brilliant scrum master resume, then this article can get you prepared for your first or next interview.
Now, before we dive in, here are a couple of…
Things (+ Tips) To Know Before The Scrum Master Interview
The questions you will encounter during a scrum master interview can vary widely based on the interviewer’s company and its values.
You might get asked kinds of questions about indifferent team members, keeping stakeholders in the loop, agile metrics, the barebones of scrum, and more. We’ll pretty much cover everything from exam-like, SDLC, and behavioral to more advanced technical and testing-related interview questions.
Of course, your experience will impact the interview process, as well. Senior scrum masters will get asked questions that an entry-level scrum master wouldn’t stumble upon until later in their career.
Also, regardless of your experience as a scrum master, you should always display curiosity and excitement in front of your interviewer. Tell the interviewer about your background and experience as a scrum master. Share what excites you (and what you think makes you a good fit) about the job position you are applying for. It will, without a doubt, boost your chances of getting hired.
Alrighty, let’s get you prepared for your scrum master interview…
Scrum Master Interview Questions and Answers
[Agile & Scrum-Related]
Explain to me the Agile mindset in your own terms?
If you can’t answer this question on your own then it’s best to go over the Agile Manifesto a couple of times.
How can you say that Agile is working in your organization?
When the products you deliver to the end-user result in higher customer retention rates, upsells, and more customer acquisition.
When the team genuinely feels happy, it can be considered that you are doing alright. There are no team members complaining about work environments. Nobody is leaving (or getting fired) the team.
Lots of submitted job applications can also be considered as a metric for a well-performing Agile organization.
If there aren’t piles of technical debt, bugs aren’t present, and there’s less time spent on maintenance, you can say that Agile is going well in your company.
What is the difference between Agile and Scrum (another newbie question)?
If you still struggle with explaining in simple terms, here’s a more straightforward definition that can make things easier for you: Agile is a philosophy. Scrum is a framework and subset of Agile.
Agile describes a set of ideals and values. In contrast, Scrum gives you principles through which you can make your project management easier.
What’s your criticism of Scrum?
This can be quite an interesting question as it’s quite unusual. It shows your point of view and rationalization process to a degree. That’s something you should personally answer without having someone else tell you the “correct” answer. Some developers consider the daily scrums to be a waste of time to a certain degree. Others believe that sprints can be managed better allocating more time to fixing the technical debt.
#scrum #scrum master #interview questions #interview answers #agile coach #scrum guide #scrum agile #scrum master certification #scrum leadership #scrum master role
1602931740
The canvas, created by Avi Schneier and the Scrum Inc team [1], encourages the team to ask questions that go to the heart of team dynamics, from the norms and guidelines they agree to abide by, to the skills they bring to the table and the skills they want to learn from each other, to how they celebrate success and learn from failure. In this article, I will discuss how I adapted Avi’s original canvas to the needs of the teams I was coaching, elaborate on the different elements of a working agreement, and share with you a step-by-step guide to facilitating collaborative working agreement development workshops.
Having a team name that all team members can identify with is one aspect of establishing the team’s unique identity. A Team name should be created (and agreed on) by the team on their own. There are many anecdotal accounts[2] about how coming together under a common team name helps the team run much more smoothly and efficiently (Plus, it’s fun to come up with a great team name together!) In a recent working agreement canvas workshop I facilitated, and since there were so many Harry Potter fans in the group, they chose to be called _Team Slytherin. _You should’ve heard the laughs as they attempted to come up with that name!
The Motto is the team’s catch-phrase. Some teams opt for something that captures in a few words what they consider the essence of good teamwork, while others prefer something more tongue-in-cheek. I love to observe the dynamic of a team and how they learn more about each other’s personalities as they try to come up with a motto.
#devops #agile adoption #agile teams #agile and devops #agile adaptation #agile practices #agile application delivery #agile culture #agile applications #agile product development
1603305660
In addition to the customer value-adding Epics and User stories you typically brainstorm in story writing workshops, the team needs to consider & plan for how to meet critical non-functional requirements that are also essential to the success of the product. These include things like performance, security, reliability, etc. To truly differentiate your product from the competition, think about NFRs not merely as compliance must-haves, but as distinguishing factors and essential contributors to the value proposition of the product. A big part of why our product is superior to the competition could be because it is more secure, more reliable, faster, etc.
NFRs include things like performance, flexibility, usability, maintainability, audit, logging, data migration, availability, reliability, recoverability, traffic/user volume, security, globalization/localization, etc.
In practice, we need to look at each of these non-functional requirements and answer 3 broad questions:
Let us take usability as an example: here is an excerpt of the Definition of Success for the Usability NFR from a team I coached recently:
#devops #agile adoption #agile teams #agile and devops #agile adaptation #agile practices #agile application delivery #agile culture #agile applications #agile product development
1656151740
Flutter Console Coverage Test
This small dart tools is used to generate Flutter Coverage Test report to console
Add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get):
dev_dependencies:
test_cov_console: ^0.2.2
flutter pub get
Running "flutter pub get" in coverage... 0.5s
flutter test --coverage
00:02 +1: All tests passed!
flutter pub run test_cov_console
---------------------------------------------|---------|---------|---------|-------------------|
File |% Branch | % Funcs | % Lines | Uncovered Line #s |
---------------------------------------------|---------|---------|---------|-------------------|
lib/src/ | | | | |
print_cov.dart | 100.00 | 100.00 | 88.37 |...,149,205,206,207|
print_cov_constants.dart | 0.00 | 0.00 | 0.00 | no unit testing|
lib/ | | | | |
test_cov_console.dart | 0.00 | 0.00 | 0.00 | no unit testing|
---------------------------------------------|---------|---------|---------|-------------------|
All files with unit testing | 100.00 | 100.00 | 88.37 | |
---------------------------------------------|---------|---------|---------|-------------------|
If not given a FILE, "coverage/lcov.info" will be used.
-f, --file=<FILE> The target lcov.info file to be reported
-e, --exclude=<STRING1,STRING2,...> A list of contains string for files without unit testing
to be excluded from report
-l, --line It will print Lines & Uncovered Lines only
Branch & Functions coverage percentage will not be printed
-i, --ignore It will not print any file without unit testing
-m, --multi Report from multiple lcov.info files
-c, --csv Output to CSV file
-o, --output=<CSV-FILE> Full path of output CSV file
If not given, "coverage/test_cov_console.csv" will be used
-t, --total Print only the total coverage
Note: it will ignore all other option (if any), except -m
-p, --pass=<MINIMUM> Print only the whether total coverage is passed MINIMUM value or not
If the value >= MINIMUM, it will print PASSED, otherwise FAILED
Note: it will ignore all other option (if any), except -m
-h, --help Show this help
flutter pub run test_cov_console --file=coverage/lcov.info --exclude=_constants,_mock
---------------------------------------------|---------|---------|---------|-------------------|
File |% Branch | % Funcs | % Lines | Uncovered Line #s |
---------------------------------------------|---------|---------|---------|-------------------|
lib/src/ | | | | |
print_cov.dart | 100.00 | 100.00 | 88.37 |...,149,205,206,207|
lib/ | | | | |
test_cov_console.dart | 0.00 | 0.00 | 0.00 | no unit testing|
---------------------------------------------|---------|---------|---------|-------------------|
All files with unit testing | 100.00 | 100.00 | 88.37 | |
---------------------------------------------|---------|---------|---------|-------------------|
It support to run for multiple lcov.info files with the followings directory structures:
1. No root module
<root>/<module_a>
<root>/<module_a>/coverage/lcov.info
<root>/<module_a>/lib/src
<root>/<module_b>
<root>/<module_b>/coverage/lcov.info
<root>/<module_b>/lib/src
...
2. With root module
<root>/coverage/lcov.info
<root>/lib/src
<root>/<module_a>
<root>/<module_a>/coverage/lcov.info
<root>/<module_a>/lib/src
<root>/<module_b>
<root>/<module_b>/coverage/lcov.info
<root>/<module_b>/lib/src
...
You must run test_cov_console on <root> dir, and the report would be grouped by module, here is
the sample output for directory structure 'with root module':
flutter pub run test_cov_console --file=coverage/lcov.info --exclude=_constants,_mock --multi
---------------------------------------------|---------|---------|---------|-------------------|
File |% Branch | % Funcs | % Lines | Uncovered Line #s |
---------------------------------------------|---------|---------|---------|-------------------|
lib/src/ | | | | |
print_cov.dart | 100.00 | 100.00 | 88.37 |...,149,205,206,207|
lib/ | | | | |
test_cov_console.dart | 0.00 | 0.00 | 0.00 | no unit testing|
---------------------------------------------|---------|---------|---------|-------------------|
All files with unit testing | 100.00 | 100.00 | 88.37 | |
---------------------------------------------|---------|---------|---------|-------------------|
---------------------------------------------|---------|---------|---------|-------------------|
File - module_a - |% Branch | % Funcs | % Lines | Uncovered Line #s |
---------------------------------------------|---------|---------|---------|-------------------|
lib/src/ | | | | |
print_cov.dart | 100.00 | 100.00 | 88.37 |...,149,205,206,207|
lib/ | | | | |
test_cov_console.dart | 0.00 | 0.00 | 0.00 | no unit testing|
---------------------------------------------|---------|---------|---------|-------------------|
All files with unit testing | 100.00 | 100.00 | 88.37 | |
---------------------------------------------|---------|---------|---------|-------------------|
---------------------------------------------|---------|---------|---------|-------------------|
File - module_b - |% Branch | % Funcs | % Lines | Uncovered Line #s |
---------------------------------------------|---------|---------|---------|-------------------|
lib/src/ | | | | |
print_cov.dart | 100.00 | 100.00 | 88.37 |...,149,205,206,207|
lib/ | | | | |
test_cov_console.dart | 0.00 | 0.00 | 0.00 | no unit testing|
---------------------------------------------|---------|---------|---------|-------------------|
All files with unit testing | 100.00 | 100.00 | 88.37 | |
---------------------------------------------|---------|---------|---------|-------------------|
flutter pub run test_cov_console -c --output=coverage/test_coverage.csv
#### sample CSV output file:
File,% Branch,% Funcs,% Lines,Uncovered Line #s
lib/,,,,
test_cov_console.dart,0.00,0.00,0.00,no unit testing
lib/src/,,,,
parser.dart,100.00,100.00,97.22,"97"
parser_constants.dart,100.00,100.00,100.00,""
print_cov.dart,100.00,100.00,82.91,"29,49,51,52,171,174,177,180,183,184,185,186,187,188,279,324,325,387,388,389,390,391,392,393,394,395,398"
print_cov_constants.dart,0.00,0.00,0.00,no unit testing
All files with unit testing,100.00,100.00,86.07,""
You can install the package from the command line:
dart pub global activate test_cov_console
The package has the following executables:
$ test_cov_console
Run this command:
With Dart:
$ dart pub add test_cov_console
With Flutter:
$ flutter pub add test_cov_console
This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get
):
dependencies:
test_cov_console: ^0.2.2
Alternatively, your editor might support dart pub get
or flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:test_cov_console/test_cov_console.dart';
example/lib/main.dart
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
// This is the theme of your application.
//
// Try running your application with "flutter run". You'll see the
// application has a blue toolbar. Then, without quitting the app, try
// changing the primarySwatch below to Colors.green and then invoke
// "hot reload" (press "r" in the console where you ran "flutter run",
// or simply save your changes to "hot reload" in a Flutter IDE).
// Notice that the counter didn't reset back to zero; the application
// is not restarted.
primarySwatch: Colors.blue,
// This makes the visual density adapt to the platform that you run
// the app on. For desktop platforms, the controls will be smaller and
// closer together (more dense) than on mobile platforms.
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key? key, required this.title}) : super(key: key);
// This widget is the home page of your application. It is stateful, meaning
// that it has a State object (defined below) that contains fields that affect
// how it looks.
// This class is the configuration for the state. It holds the values (in this
// case the title) provided by the parent (in this case the App widget) and
// used by the build method of the State. Fields in a Widget subclass are
// always marked "final".
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
// This call to setState tells the Flutter framework that something has
// changed in this State, which causes it to rerun the build method below
// so that the display can reflect the updated values. If we changed
// _counter without calling setState(), then the build method would not be
// called again, and so nothing would appear to happen.
_counter++;
});
}
@override
Widget build(BuildContext context) {
// This method is rerun every time setState is called, for instance as done
// by the _incrementCounter method above.
//
// The Flutter framework has been optimized to make rerunning build methods
// fast, so that you can just rebuild anything that needs updating rather
// than having to individually change instances of widgets.
return Scaffold(
appBar: AppBar(
// Here we take the value from the MyHomePage object that was created by
// the App.build method, and use it to set our appbar title.
title: Text(widget.title),
),
body: Center(
// Center is a layout widget. It takes a single child and positions it
// in the middle of the parent.
child: Column(
// Column is also a layout widget. It takes a list of children and
// arranges them vertically. By default, it sizes itself to fit its
// children horizontally, and tries to be as tall as its parent.
//
// Invoke "debug painting" (press "p" in the console, choose the
// "Toggle Debug Paint" action from the Flutter Inspector in Android
// Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
// to see the wireframe for each widget.
//
// Column has various properties to control how it sizes itself and
// how it positions its children. Here we use mainAxisAlignment to
// center the children vertically; the main axis here is the vertical
// axis because Columns are vertical (the cross axis would be
// horizontal).
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'You have pushed the button this many times:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headline4,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
), // This trailing comma makes auto-formatting nicer for build methods.
);
}
}
Author: DigitalKatalis
Source Code: https://github.com/DigitalKatalis/test_cov_console
License: BSD-3-Clause license
1604141220
Picture this: You’re a Scrum Master or Agile Coach who was brought in to assist a team embarking on a large and complex project. You’re new to the organization, perhaps even to the line of business they’re in. You feel like you need to get up to speed quickly so that you can start contributing effectively, and your years of experience have taught you that every organization and every team is unique. You understand that for you to truly create value, you need to capture the unique context of the team and organization you’re now supporting – that is, you need to develop _situational awareness. _You need to understand what it means to be where you are, the people with whom you are working, and the history, people dynamics, complexity, and many other nuances of the team and organization.
And to be clear, here I’m not talking about project Inception/Inception Sprint/Sprint 0/Project Kick-off, etc. All of that comes later. Rather, the focus of this article is YOU – ensuring that YOU have a systematic way of acquiring, analyzing, and compartmentalizing the information you need in order to understand your surroundings well enough so that you can start contributing effectively to your new team and organization.
This effort to develop a broad understanding of your new environment could also help you (and your team) design a fit-for-purpose project initiation (inception/kick-off) process that leverages what has already been done in the past to develop a shared understanding of what needs to be done in the future and identify areas where the team needs to pay special attention. Have there been customer interviews conducted in the past as part of an effort to envision what an enhanced version of the existing product would look like? Were there any agile success stories from other projects in the organization that could be used as part of your ‘hearts and minds’ campaign to help foster an agile culture and mindset? Have there been any efforts to map the end-to-end flow of work as things stand now? Etc. Content that has already been developed - perhaps for different purposes, be it maps, artifacts, retrospective summaries, etc. could streamline many activities during project kickoff and throughout the project.
#devops #agile adoption #agile and devops #agile adaptation #agile application delivery #agile team #scrum adoption #agile product development