What is the right set up teams spread over multiple timezones? - pagerduty

I have a set of services that need to have a shared on call rotation split between multiple timezones. For example, I want the US team to take 16 hours shifts and the London team to take the remaining 8 hours. What is the best way to deal with this?
Create separate services to reflect the team split and have distinct escalation policies for each?
Use a single schedule with two layers to reflect the time split?
Also, should I have a single team for all or have one for each geo location? Would this get complicated if I have to add another timezone in the future?

Related

AnyLogic - modeling large number of different ResourcePools

I would like to model a larger number of employees (about 30) as a resource pool. Each employee is given parameters before the model starts, which the simulation end user can enter manually. Each employee has different working hours (shift work, different on each day of the week), different duration of the shift and different tasks assigned to them.
My first thought was to model each employee individually as a resource with their own shift schedule. That would be easiest, but I bet there is a nicer solution - anyone have any ideas?
If your workers have different settings such as different shift hours, they will not belong to the same ResourcePool.
You must build an agent that contains a ResourcePool (so that you can use it as a resource) with its another parameters such as capacity etc.
In my opinion, the most correct thing is to build a Population of them. Each item in the population is an amount of workers with identical parameters.

Is it possible to set up a single Tableau workbook that pulls different data based on the user (or group)?

We use Tableau to create self-serve reports for various internal groups. The reports are identical in structure and style, but have different source data. As an example: European sales YTD and North American sales YTD.
For reasons we can't just have one workbook that each group then selects a dropdown for their data, they have to be separate workbooks. There are maybe a dozen of these.
We find ourselves constantly catching bugs or adding new components, and then having to go do it 10+ identical times in all the workbooks. Or worse, making a hot-fix and then not doing it for the others until it becomes an issue.
Ideally we'd make the change once in one master workbook and it'd cascade to all the others. Is something like that possible in Tableau?

How can we work on multiple sprints at the same time if we only have one team?

We have a small group < 4 but work on several different applications that we support. Each application gets its own Git repo, but as for managing the effort I really don't want to setup a separate team as well for each product.
Questions:
- For a small group working on several different products (eg. websites, services, utilities etc), can a single "team" within one project allow us to work on 2 sprints at the same time that are within different area paths?
- If I have already defined multiple teams, can I migrate all the content into the backlog of a single team?
- Assuming one team and multiple area paths, the project "hierarchy" would look something like this, correct?
Project
|__Team
Area-1
|__Sprint 1-n
Area-2
|__Sprint 1-n
Area-3
|__Sprint 1-n
[ update ]
On further inspection looking at the docs, the iterations can have their own paths. It seems that if we want to manage 2 or more simultaneous sprints or overlapping sprints that involve different products, it makes sense to go ahead and configure a team per product or possibly one team per "business area" (eg. Sales, Operations, Warehouse etc). Within a business area, our group would only have 1 active sprint at a time, which seems straightforward, compared to trying to manage multiple sprints within the same team.
https://learn.microsoft.com/en-us/azure/devops/organizations/settings/set-iteration-paths-sprints?view=azure-devops
So the better approach might be multiple teams, with one (default) area per team and a iteration list for each team.
The Team's areas and the Team's iterations are disjointed. I would think you could assign the different product areas (websites, services, utilities) to the team but then have just a single iteration list instead without trying to segregate the iterations by area. This won't work if the sprint dates for the different areas are different, but if they are different I don't think any approach you try to leverage in app will work.
Areas:
Sandbox
|__Team
|___Websites
|___Services
|___Utilities
Iterations:
Sandbox
|__Sprint 1
|__Sprint 2
|__Sprint 3
I don't think you will get to a good solution if the different product areas have different start/end dates for the sprint even if you could make something workable using the tool.

how to configure azure devops sprints to days instead of hours

How do you setup Azure Sprints > Board view to show New work and Active work in "Days" instead of hours?
IE: these UI elements here to show a "d" instead of an "h"
screenshot of what I'm describing - in red what I need changed
You used to be able to do this in TFS but I'm afraid this change cant be done in Azure DevOps.
Actually, this is easy and the system is agnostic on the units if you look under the hood. While the sprint capacity and burndown are calculated per day, the number of "units" you use per person per day can be changed.
The default is 8, which is obviously a standard number of work hours. You can simply change this to 1 and now the capacity per person is 1 day. It is just important the unit type (day or hour) that you use in practice between the person capacity and the various work amount fields (size, effort, remaining work, original work, etc.) is the same.
Here are the basic steps to switch to use days:
Create your own process template (unless you have one already)
You will often want to change some of the titles of sections or work items, as they often refer to "hours" by default. To do this you need to have your own Process Template. See the following reference to get started on customizing the templates:
https://learn.microsoft.com/en-us/azure/devops/reference/process-templates/customize-process?view=azure-devops-2020
Set the Default Capacity for Each Person
From the Sprints in DevOps, you can specify the capacity per person in the Capacity tab. You can also break down the amount of time per person by the type of activity if you desire. In the end, the numbers should add to 1 per person per day.
Here is a good reference on setting capacities for sprints:
https://learn.microsoft.com/en-us/azure/devops/boards/sprints/set-capacity?view=azure-devops

Connecting nodes to multiple dates

I have company website, with many offices around the world (around 50 offices).
The company want to create a gift giveaway with the employees in a specific company each specific day.
For example:
Office 1: will do the giveaway the days: 1/1/2010, 7/1/2010, 15/1/2010, etc...
Office 2: the days: 2/1/2010, 9/1/2010, 19/1/2010, etc...
Office 3: ....
Office 50: ...
(the days are setup manually to specific offices, no need of an algorithm here)
I have a node per Office, it's a CCK content type with details of each office (location, phone, email, etc), now I need to assign those days to the offices.
But my problem here is that I don't need to create events (or at least node events) because I don't need to store any data in the event. Just need to say: Office 1? Yes, days 1/1/2010, 7/1/2010, etc...
Nothing else, just to know the dates.
And, if possible, make them available to display in the calendar module.
What is your suggestion?
Withs CCK and date module you can create date fields, but if you have many fields you want to add, this might not be the best solution.
You have two general ways of solving this issue. Either you need store each date. This could be done with date field, not sure if it can handle multiple values, node reference or similar. This is inefective it some ways, but will make it easy to generate calendar view.
You could also write a string with as the date info and let php convert it to dates. This route will make it easier to create and store the data, but will make it a lot harder to get things integrated with calendar.
The fatest / easiest solution would probably be node reference with a date module, combined with a script to create all the nodes need. Instead of making them inside Drupal.
You could also create a custom module that stores this info for you. It would be a more longterm solution and require more work to integrate it with views and date/calendar modules.
There are many ways to go about this, but it really depends on your need, skill and time
Why not use a plain old CCK text field with a good clear description of what it's for and how to format it with something in the help section to back it up?
Use a text area (multiple rows) and apply the default input format that converts lines line breaks. I like to use the mark down filter too.
You could also use multiple single line fields in place of a text area...
This assumes your users are smart enough to enter the correct info of course but that's what the help and description are for. If your users can't be trusted to enter the content in correctly then yes, go for something that forces them to do so.
Ok I've found the solution myself and I want to share it with you:
Created three content types:
Office: with data of the office
Days: with a node per day (365 * year)
and Giveaway: with two node-reference fields, one for Office and another for Day.
(Days must be populated manually using a script that fills the upcoming 2 years or so).
So I can fill only Giveaway content type, and that's enough.
And then only the views are remaining.