<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.simulace.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Xkraj119</id>
	<title>Simulace.info - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://www.simulace.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Xkraj119"/>
	<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php/Special:Contributions/Xkraj119"/>
	<updated>2026-07-27T14:34:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8858</id>
		<title>Software Support Lifecycle</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8858"/>
		<updated>2015-01-24T14:15:34Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: /* Result */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Recap ==&lt;br /&gt;
A software firm was contracted to develop a new customer-facing solution for a major banking institution. As part of the negotiation process, an SLA needs to be reached. The banking institution provided required issue resolution times and asked the software firm to appropriately price the contract while provide reasoning for the contract pricing.&lt;br /&gt;
&lt;br /&gt;
The software firm decided to create a simulation of a typical month of the support cycle as a basis for approximate the resources needed to provide the support.&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
The model consists of various severity incidents, represented as entities, and various development resources, represented as resources in SIMPROCESS. The model aims to represent a reasonably simplified version of the real development process.&lt;br /&gt;
&lt;br /&gt;
The model needs to represent developer shifts, “emergency holding” (where developer does not work, but is available to start solving incidents in a reasonable amount of time) and overtime billing.&lt;br /&gt;
&lt;br /&gt;
== Model Structure ==&lt;br /&gt;
=== Entities ===&lt;br /&gt;
==== Incidents ====&lt;br /&gt;
There are several severity of incidents, represented as different types of entities. The severity of incident, apart from having different SLA requirements, differ in their flow throughout their process. Different severity incidents are generated using different rules.&lt;br /&gt;
The SLA terms of different incidents can be found [http://www.simulace.info/index.php/Xkraj119 here].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Severity (lower is less severe)&lt;br /&gt;
! Probability of Occurrence (per hour)&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 1&lt;br /&gt;
| Nor(0.4, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 2&lt;br /&gt;
| Nor(0.2, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 3&lt;br /&gt;
| Nor(0.075, 0.25, 1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is important to note, that higher severity incidents can preempt lower severity incidents, which is desirable as higher severity incidents have more strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
While the normal distribution is sometimes considered problematic when using it to generate entities, due to the fact that a lot of real distributions are not symmetrical and instead are “right-leaning”, I believe that the normal distribution is sufficient for this scenario. An alternative shape that seem to be a bit more realistic was a beta distribution, but seeing the relatively small impact on the results, I chose a normal distribution, since it is far more accessible and requires less expertise to understand.&lt;br /&gt;
&lt;br /&gt;
==== Technical Entities ====&lt;br /&gt;
Another type of entity in the system is a Release Trigger. The Release Trigger is responsible for triggering an automated software build every 24 hours.&lt;br /&gt;
&lt;br /&gt;
=== Resources (Developers) ===&lt;br /&gt;
Developers are grouped into three tiers – standard, junior and senior. Each developer tier has different pricing (here) and might not be able to participate in all parts of the process. The developers get paid a fixed wage, regardless of their utilization. The developers work in the 8x5 mode. This is however problematic when dealing with high-severity incidents, which have strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
Therefore, a new tier has been added – “Developer – Standard – Overtime”. The role of this tier is to hold “emergency” in non-working hours of the day (17:00 – 9:00 on work days + whole weekends). Holding emergency means, that the developer is ready to immediately start resolving critical bugs from his home office. For this, the developer is compensated in the following way: The developer gets paid 10% of his standard hourly wage for every hour he holds emergency, regardless of the number of incidents (fixed cost). Apart from that, the developer gets paid for every hour he spends resolving incidents in the emergency hours (variable cost).&lt;br /&gt;
&lt;br /&gt;
=== Support Process ===&lt;br /&gt;
The incident resolution process is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:SoftwareSupport-Process.jpg]]&lt;br /&gt;
&lt;br /&gt;
Things to note about the process:&lt;br /&gt;
* Standard severity incidents are not eligible for hotfixing&lt;br /&gt;
* Since junior developers do not have full knowledge of the system, they are excluded from the hotfix development and incident resolution activities&lt;br /&gt;
* Hotfix development is a high-risk activity (deployed directly to production without proper testing), standard developers need to pair up when developing the hotfix&lt;br /&gt;
* Critical incidents are released “out-of-band”, meaning they do not wait for the next release and are released individually&lt;br /&gt;
&lt;br /&gt;
== Simulation Result &amp;amp; Analysis ==&lt;br /&gt;
The conflicting goals of the task are obvious. On the one side, we wish to minimize the time of incident resolution. Unless we consider rearchitecting the support process, this is done mainly by deploying additional resources. On the other side, we wish to minimize the amount of deployed resources to optimize support costs and create room for margin generation.&lt;br /&gt;
&lt;br /&gt;
The model shows, that a good compromise between these two goals can be reached with the following resource deployment:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Number of Resources&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The rest of this chapter will aim at providing supporting evidence for this conclusion. I will refer to the above configuration as 1-2-4-2 configuration&lt;br /&gt;
&lt;br /&gt;
=== Utilization and Depreciating Returns on Additional Resources ===&lt;br /&gt;
The utilization of the above configuration is as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Utilization (%)&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 49.93&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 65.35&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 79.1&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 83.09&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Granted, the utilization above might seem low. Consider the case when we remove one Senior Developer from the team. Than the utilization will be as follows (1-1-4-2):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Utilization (%)&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 87.77&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 94.92&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 95.7&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 96.45&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This looks much better. It is however important to realize, that while near 100% utilization is good for product development teams, for support teams the situation looks different. There, utilization near 100% means very little headroom for situations where more than expected incident occur. To illustrate this, let’s compare average incident resolution times between 1-2-4-2 and 1-1-4-2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Average Resolution Time (hours)&lt;br /&gt;
! Maximum Resolution Time (hours)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 13.76&lt;br /&gt;
| 36.01&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 36.23&lt;br /&gt;
| 94&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 63.72&lt;br /&gt;
| 159&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Average Resolution Time (hours)&lt;br /&gt;
! Maximum Resolution Time (hours)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 11.11&lt;br /&gt;
| 21.36&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 28.51&lt;br /&gt;
| 81&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 36.64&lt;br /&gt;
| 122&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
As we can see, the difference in resolution times is stark, especially when considering the average resolution time of standard-severity incident, which almost doubled. As we can see, utilization nearing 100% percent can actually considered bad, as it lowers the ability of support teams to appropriately absorb additional incidents.&lt;br /&gt;
&lt;br /&gt;
From the other side, when we add additional resources to the 1-2-4-2 scenario, we see only small decreases in resolution times. Therefore, the 1-2-4-2 seems to be a good compromise from the utilization/resolution time standpoint.&lt;br /&gt;
&lt;br /&gt;
=== Minimizing Resolution &amp;amp; Hotfix Delivery Time Spikes ===&lt;br /&gt;
An important characteristic that deserves extra attention are individual resolution and hotfix times. So far, we have been mostly concerned with averages, but when running an SLA-bound support team, it is important to consider the fix times for individual incident, with utmost focus on minimizing the number of “spikes” in critical incidents, as those have severe impact on customers.&lt;br /&gt;
&lt;br /&gt;
In the following histograms, we see the individual hotfix and resolution times (in hours) categorized by incident severity for the 1-2-4-2 configuration.&lt;br /&gt;
&lt;br /&gt;
[[File:HotfixHistogram.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:ResolutionHistogram.png]]&lt;br /&gt;
&lt;br /&gt;
As we can see, the results are encouraging. The times for critical incidents are very consistent with no spikes at all. While we can see occasional spikes for lower-priority incidents, eliminating those would require deploying multiple additional resources which does not seem to be worth the cost.&lt;br /&gt;
&lt;br /&gt;
There is however one thing that we need to address at this point. While a reasonable amount of incidents that exceeds the SLA terms is standard, the hotfix times for critical incidents are consistently higher than in the bank-proposed SLA terms. This is not caused by “waiting for resources”, but by structural inability to deliver such fix times by the current process. This can be seen from that the fact, that while the average resolution of a critical incident is 11.11 hours, this figure composes of 7.98 hours of processing and only 3.13 hours of waiting. This facts need to be communicated to the bank and an attempt to raise the fix time of critical incidents to a more acceptable level (e.g. 6 hours) needs to be made.&lt;br /&gt;
&lt;br /&gt;
=== Preventing Incident Accumulation ===&lt;br /&gt;
The last important metric we will consider is the chronological development of average hotfix and resolution times. While these times do not need to be absolutely stable over time (with the exception of critical incidents, where there is very little room for error), there should not be a tendency of higher values in time, as that would indicate that the system is getting backed up and might collapse at some point in the future. Let’s see the results for the 1-2-4-2 configuration.&lt;br /&gt;
&lt;br /&gt;
[[File:HotfixTrace.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:ResolutionTrace.png]]&lt;br /&gt;
&lt;br /&gt;
While one cannot call the results stable, the spikes always seem to return to an acceptable value making the system stable over longer periods of time.&lt;br /&gt;
&lt;br /&gt;
== SLA Contract Pricing ==&lt;br /&gt;
The total cost of upholding the SLA contract, excluding SLA violation-related penalties is 78432 EUR per month. The cost breaks down as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:ResourceCosts.png]]&lt;br /&gt;
&lt;br /&gt;
On top of that, we must calculate a risk margin to cover the SLA violation penalties. &lt;br /&gt;
&lt;br /&gt;
As part of the simulation, it became clear that the SLA hotfix and response times and penalties need to be recalibrated in several ways&lt;br /&gt;
* Some of the times are simply unrealistic due to the current support process&lt;br /&gt;
* The bank provided the hours in the 8x5 mode (“business hours”), while the developer operates exclusively in the 24x7 mode&lt;br /&gt;
* To prevent double penalty billing for incident, when the hotfix time exceeds the allowed resolution time, only the resolution time penalty will be billed from now on&lt;br /&gt;
* The resolution time penalties will be dropped by ¾ and differentiated from hotfix time penalties&lt;br /&gt;
&lt;br /&gt;
The updated proposed SLA times are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Hotfix time (hours)&lt;br /&gt;
! Resolution time (hours)&lt;br /&gt;
! Hotfix penalty (per hour)&lt;br /&gt;
! Resolution penalty (per hour)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 8&lt;br /&gt;
| 24&lt;br /&gt;
| 1000 EUR&lt;br /&gt;
| 250 EUR&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 24&lt;br /&gt;
| 72&lt;br /&gt;
| 400 EUR&lt;br /&gt;
| 100 EUR&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| -&lt;br /&gt;
| 168&lt;br /&gt;
| 100 EUR&lt;br /&gt;
| 100 EUR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For these times, '''the estimated monthly penalty is 62750 EUR. Source data can be found here - [[File:Appreciation.xlsx]] With a 20% risk margin, that makes the absolute risk margin 75300 EUR'''.&lt;br /&gt;
&lt;br /&gt;
That brings the '''total contract price to 153 732 EUR per month'''.&lt;br /&gt;
&lt;br /&gt;
== Source Code ==&lt;br /&gt;
The source code can be found here - [[File:SoftwareSupportLifecycleModel.zip]]&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8857</id>
		<title>Software Support Lifecycle</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8857"/>
		<updated>2015-01-24T14:14:52Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Recap ==&lt;br /&gt;
A software firm was contracted to develop a new customer-facing solution for a major banking institution. As part of the negotiation process, an SLA needs to be reached. The banking institution provided required issue resolution times and asked the software firm to appropriately price the contract while provide reasoning for the contract pricing.&lt;br /&gt;
&lt;br /&gt;
The software firm decided to create a simulation of a typical month of the support cycle as a basis for approximate the resources needed to provide the support.&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
The model consists of various severity incidents, represented as entities, and various development resources, represented as resources in SIMPROCESS. The model aims to represent a reasonably simplified version of the real development process.&lt;br /&gt;
&lt;br /&gt;
The model needs to represent developer shifts, “emergency holding” (where developer does not work, but is available to start solving incidents in a reasonable amount of time) and overtime billing.&lt;br /&gt;
&lt;br /&gt;
== Model Structure ==&lt;br /&gt;
=== Entities ===&lt;br /&gt;
==== Incidents ====&lt;br /&gt;
There are several severity of incidents, represented as different types of entities. The severity of incident, apart from having different SLA requirements, differ in their flow throughout their process. Different severity incidents are generated using different rules.&lt;br /&gt;
The SLA terms of different incidents can be found [http://www.simulace.info/index.php/Xkraj119 here].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Severity (lower is less severe)&lt;br /&gt;
! Probability of Occurrence (per hour)&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 1&lt;br /&gt;
| Nor(0.4, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 2&lt;br /&gt;
| Nor(0.2, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 3&lt;br /&gt;
| Nor(0.075, 0.25, 1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is important to note, that higher severity incidents can preempt lower severity incidents, which is desirable as higher severity incidents have more strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
While the normal distribution is sometimes considered problematic when using it to generate entities, due to the fact that a lot of real distributions are not symmetrical and instead are “right-leaning”, I believe that the normal distribution is sufficient for this scenario. An alternative shape that seem to be a bit more realistic was a beta distribution, but seeing the relatively small impact on the results, I chose a normal distribution, since it is far more accessible and requires less expertise to understand.&lt;br /&gt;
&lt;br /&gt;
==== Technical Entities ====&lt;br /&gt;
Another type of entity in the system is a Release Trigger. The Release Trigger is responsible for triggering an automated software build every 24 hours.&lt;br /&gt;
&lt;br /&gt;
=== Resources (Developers) ===&lt;br /&gt;
Developers are grouped into three tiers – standard, junior and senior. Each developer tier has different pricing (here) and might not be able to participate in all parts of the process. The developers get paid a fixed wage, regardless of their utilization. The developers work in the 8x5 mode. This is however problematic when dealing with high-severity incidents, which have strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
Therefore, a new tier has been added – “Developer – Standard – Overtime”. The role of this tier is to hold “emergency” in non-working hours of the day (17:00 – 9:00 on work days + whole weekends). Holding emergency means, that the developer is ready to immediately start resolving critical bugs from his home office. For this, the developer is compensated in the following way: The developer gets paid 10% of his standard hourly wage for every hour he holds emergency, regardless of the number of incidents (fixed cost). Apart from that, the developer gets paid for every hour he spends resolving incidents in the emergency hours (variable cost).&lt;br /&gt;
&lt;br /&gt;
=== Support Process ===&lt;br /&gt;
The incident resolution process is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:SoftwareSupport-Process.jpg]]&lt;br /&gt;
&lt;br /&gt;
Things to note about the process:&lt;br /&gt;
* Standard severity incidents are not eligible for hotfixing&lt;br /&gt;
* Since junior developers do not have full knowledge of the system, they are excluded from the hotfix development and incident resolution activities&lt;br /&gt;
* Hotfix development is a high-risk activity (deployed directly to production without proper testing), standard developers need to pair up when developing the hotfix&lt;br /&gt;
* Critical incidents are released “out-of-band”, meaning they do not wait for the next release and are released individually&lt;br /&gt;
&lt;br /&gt;
== Result ==&lt;br /&gt;
The conflicting goals of the task are obvious. On the one side, we wish to minimize the time of incident resolution. Unless we consider rearchitecting the support process, this is done mainly by deploying additional resources. On the other side, we wish to minimize the amount of deployed resources to optimize support costs and create room for margin generation.&lt;br /&gt;
&lt;br /&gt;
The model shows, that a good compromise between these two goals can be reached with the following resource deployment:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Number of Resources&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The rest of this chapter will aim at providing supporting evidence for this conclusion. I will refer to the above configuration as 1-2-4-2 configuration&lt;br /&gt;
&lt;br /&gt;
=== Utilization and Depreciating Returns on Additional Resources ===&lt;br /&gt;
The utilization of the above configuration is as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Utilization (%)&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 49.93&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 65.35&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 79.1&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 83.09&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Granted, the utilization above might seem low. Consider the case when we remove one Senior Developer from the team. Than the utilization will be as follows (1-1-4-2):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Utilization (%)&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 87.77&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 94.92&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 95.7&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 96.45&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This looks much better. It is however important to realize, that while near 100% utilization is good for product development teams, for support teams the situation looks different. There, utilization near 100% means very little headroom for situations where more than expected incident occur. To illustrate this, let’s compare average incident resolution times between 1-2-4-2 and 1-1-4-2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Average Resolution Time (hours)&lt;br /&gt;
! Maximum Resolution Time (hours)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 13.76&lt;br /&gt;
| 36.01&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 36.23&lt;br /&gt;
| 94&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 63.72&lt;br /&gt;
| 159&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Average Resolution Time (hours)&lt;br /&gt;
! Maximum Resolution Time (hours)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 11.11&lt;br /&gt;
| 21.36&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 28.51&lt;br /&gt;
| 81&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 36.64&lt;br /&gt;
| 122&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
As we can see, the difference in resolution times is stark, especially when considering the average resolution time of standard-severity incident, which almost doubled. As we can see, utilization nearing 100% percent can actually considered bad, as it lowers the ability of support teams to appropriately absorb additional incidents.&lt;br /&gt;
&lt;br /&gt;
From the other side, when we add additional resources to the 1-2-4-2 scenario, we see only small decreases in resolution times. Therefore, the 1-2-4-2 seems to be a good compromise from the utilization/resolution time standpoint.&lt;br /&gt;
&lt;br /&gt;
=== Minimizing Resolution &amp;amp; Hotfix Delivery Time Spikes ===&lt;br /&gt;
An important characteristic that deserves extra attention are individual resolution and hotfix times. So far, we have been mostly concerned with averages, but when running an SLA-bound support team, it is important to consider the fix times for individual incident, with utmost focus on minimizing the number of “spikes” in critical incidents, as those have severe impact on customers.&lt;br /&gt;
&lt;br /&gt;
In the following histograms, we see the individual hotfix and resolution times (in hours) categorized by incident severity for the 1-2-4-2 configuration.&lt;br /&gt;
&lt;br /&gt;
[[File:HotfixHistogram.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:ResolutionHistogram.png]]&lt;br /&gt;
&lt;br /&gt;
As we can see, the results are encouraging. The times for critical incidents are very consistent with no spikes at all. While we can see occasional spikes for lower-priority incidents, eliminating those would require deploying multiple additional resources which does not seem to be worth the cost.&lt;br /&gt;
&lt;br /&gt;
There is however one thing that we need to address at this point. While a reasonable amount of incidents that exceeds the SLA terms is standard, the hotfix times for critical incidents are consistently higher than in the bank-proposed SLA terms. This is not caused by “waiting for resources”, but by structural inability to deliver such fix times by the current process. This can be seen from that the fact, that while the average resolution of a critical incident is 11.11 hours, this figure composes of 7.98 hours of processing and only 3.13 hours of waiting. This facts need to be communicated to the bank and an attempt to raise the fix time of critical incidents to a more acceptable level (e.g. 6 hours) needs to be made.&lt;br /&gt;
&lt;br /&gt;
=== Preventing Incident Accumulation ===&lt;br /&gt;
The last important metric we will consider is the chronological development of average hotfix and resolution times. While these times do not need to be absolutely stable over time (with the exception of critical incidents, where there is very little room for error), there should not be a tendency of higher values in time, as that would indicate that the system is getting backed up and might collapse at some point in the future. Let’s see the results for the 1-2-4-2 configuration.&lt;br /&gt;
&lt;br /&gt;
[[File:HotfixTrace.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:ResolutionTrace.png]]&lt;br /&gt;
&lt;br /&gt;
While one cannot call the results stable, the spikes always seem to return to an acceptable value making the system stable over longer periods of time.&lt;br /&gt;
&lt;br /&gt;
== SLA Contract Pricing ==&lt;br /&gt;
The total cost of upholding the SLA contract, excluding SLA violation-related penalties is 78432 EUR per month. The cost breaks down as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:ResourceCosts.png]]&lt;br /&gt;
&lt;br /&gt;
On top of that, we must calculate a risk margin to cover the SLA violation penalties. &lt;br /&gt;
&lt;br /&gt;
As part of the simulation, it became clear that the SLA hotfix and response times and penalties need to be recalibrated in several ways&lt;br /&gt;
* Some of the times are simply unrealistic due to the current support process&lt;br /&gt;
* The bank provided the hours in the 8x5 mode (“business hours”), while the developer operates exclusively in the 24x7 mode&lt;br /&gt;
* To prevent double penalty billing for incident, when the hotfix time exceeds the allowed resolution time, only the resolution time penalty will be billed from now on&lt;br /&gt;
* The resolution time penalties will be dropped by ¾ and differentiated from hotfix time penalties&lt;br /&gt;
&lt;br /&gt;
The updated proposed SLA times are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Hotfix time (hours)&lt;br /&gt;
! Resolution time (hours)&lt;br /&gt;
! Hotfix penalty (per hour)&lt;br /&gt;
! Resolution penalty (per hour)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 8&lt;br /&gt;
| 24&lt;br /&gt;
| 1000 EUR&lt;br /&gt;
| 250 EUR&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 24&lt;br /&gt;
| 72&lt;br /&gt;
| 400 EUR&lt;br /&gt;
| 100 EUR&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| -&lt;br /&gt;
| 168&lt;br /&gt;
| 100 EUR&lt;br /&gt;
| 100 EUR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For these times, '''the estimated monthly penalty is 62750 EUR. Source data can be found here - [[File:Appreciation.xlsx]] With a 20% risk margin, that makes the absolute risk margin 75300 EUR'''.&lt;br /&gt;
&lt;br /&gt;
That brings the '''total contract price to 153 732 EUR per month'''.&lt;br /&gt;
&lt;br /&gt;
== Source Code ==&lt;br /&gt;
The source code can be found here - [[File:SoftwareSupportLifecycleModel.zip]]&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:SoftwareSupportLifecycleModel.zip&amp;diff=8856</id>
		<title>File:SoftwareSupportLifecycleModel.zip</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:SoftwareSupportLifecycleModel.zip&amp;diff=8856"/>
		<updated>2015-01-24T14:14:21Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Appreciation.xlsx&amp;diff=8855</id>
		<title>File:Appreciation.xlsx</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Appreciation.xlsx&amp;diff=8855"/>
		<updated>2015-01-24T14:11:12Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: uploaded a new version of &amp;amp;quot;File:Appreciation.xlsx&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8854</id>
		<title>Software Support Lifecycle</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8854"/>
		<updated>2015-01-24T14:10:38Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: /* SLA Contract Pricing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Recap ==&lt;br /&gt;
A software firm was contracted to develop a new customer-facing solution for a major banking institution. As part of the negotiation process, an SLA needs to be reached. The banking institution provided required issue resolution times and asked the software firm to appropriately price the contract while provide reasoning for the contract pricing.&lt;br /&gt;
&lt;br /&gt;
The software firm decided to create a simulation of a typical month of the support cycle as a basis for approximate the resources needed to provide the support.&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
The model consists of various severity incidents, represented as entities, and various development resources, represented as resources in SIMPROCESS. The model aims to represent a reasonably simplified version of the real development process.&lt;br /&gt;
&lt;br /&gt;
The model needs to represent developer shifts, “emergency holding” (where developer does not work, but is available to start solving incidents in a reasonable amount of time) and overtime billing.&lt;br /&gt;
&lt;br /&gt;
== Model Structure ==&lt;br /&gt;
=== Entities ===&lt;br /&gt;
==== Incidents ====&lt;br /&gt;
There are several severity of incidents, represented as different types of entities. The severity of incident, apart from having different SLA requirements, differ in their flow throughout their process. Different severity incidents are generated using different rules.&lt;br /&gt;
The SLA terms of different incidents can be found [http://www.simulace.info/index.php/Xkraj119 here].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Severity (lower is less severe)&lt;br /&gt;
! Probability of Occurrence (per hour)&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 1&lt;br /&gt;
| Nor(0.4, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 2&lt;br /&gt;
| Nor(0.2, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 3&lt;br /&gt;
| Nor(0.075, 0.25, 1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is important to note, that higher severity incidents can preempt lower severity incidents, which is desirable as higher severity incidents have more strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
While the normal distribution is sometimes considered problematic when using it to generate entities, due to the fact that a lot of real distributions are not symmetrical and instead are “right-leaning”, I believe that the normal distribution is sufficient for this scenario. An alternative shape that seem to be a bit more realistic was a beta distribution, but seeing the relatively small impact on the results, I chose a normal distribution, since it is far more accessible and requires less expertise to understand.&lt;br /&gt;
&lt;br /&gt;
==== Technical Entities ====&lt;br /&gt;
Another type of entity in the system is a Release Trigger. The Release Trigger is responsible for triggering an automated software build every 24 hours.&lt;br /&gt;
&lt;br /&gt;
=== Resources (Developers) ===&lt;br /&gt;
Developers are grouped into three tiers – standard, junior and senior. Each developer tier has different pricing (here) and might not be able to participate in all parts of the process. The developers get paid a fixed wage, regardless of their utilization. The developers work in the 8x5 mode. This is however problematic when dealing with high-severity incidents, which have strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
Therefore, a new tier has been added – “Developer – Standard – Overtime”. The role of this tier is to hold “emergency” in non-working hours of the day (17:00 – 9:00 on work days + whole weekends). Holding emergency means, that the developer is ready to immediately start resolving critical bugs from his home office. For this, the developer is compensated in the following way: The developer gets paid 10% of his standard hourly wage for every hour he holds emergency, regardless of the number of incidents (fixed cost). Apart from that, the developer gets paid for every hour he spends resolving incidents in the emergency hours (variable cost).&lt;br /&gt;
&lt;br /&gt;
=== Support Process ===&lt;br /&gt;
The incident resolution process is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:SoftwareSupport-Process.jpg]]&lt;br /&gt;
&lt;br /&gt;
Things to note about the process:&lt;br /&gt;
* Standard severity incidents are not eligible for hotfixing&lt;br /&gt;
* Since junior developers do not have full knowledge of the system, they are excluded from the hotfix development and incident resolution activities&lt;br /&gt;
* Hotfix development is a high-risk activity (deployed directly to production without proper testing), standard developers need to pair up when developing the hotfix&lt;br /&gt;
* Critical incidents are released “out-of-band”, meaning they do not wait for the next release and are released individually&lt;br /&gt;
&lt;br /&gt;
== Result ==&lt;br /&gt;
The conflicting goals of the task are obvious. On the one side, we wish to minimize the time of incident resolution. Unless we consider rearchitecting the support process, this is done mainly by deploying additional resources. On the other side, we wish to minimize the amount of deployed resources to optimize support costs and create room for margin generation.&lt;br /&gt;
&lt;br /&gt;
The model shows, that a good compromise between these two goals can be reached with the following resource deployment:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Number of Resources&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The rest of this chapter will aim at providing supporting evidence for this conclusion. I will refer to the above configuration as 1-2-4-2 configuration&lt;br /&gt;
&lt;br /&gt;
=== Utilization and Depreciating Returns on Additional Resources ===&lt;br /&gt;
The utilization of the above configuration is as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Utilization (%)&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 49.93&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 65.35&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 79.1&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 83.09&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Granted, the utilization above might seem low. Consider the case when we remove one Senior Developer from the team. Than the utilization will be as follows (1-1-4-2):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Utilization (%)&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 87.77&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 94.92&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 95.7&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 96.45&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This looks much better. It is however important to realize, that while near 100% utilization is good for product development teams, for support teams the situation looks different. There, utilization near 100% means very little headroom for situations where more than expected incident occur. To illustrate this, let’s compare average incident resolution times between 1-2-4-2 and 1-1-4-2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Average Resolution Time (hours)&lt;br /&gt;
! Maximum Resolution Time (hours)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 13.76&lt;br /&gt;
| 36.01&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 36.23&lt;br /&gt;
| 94&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 63.72&lt;br /&gt;
| 159&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Average Resolution Time (hours)&lt;br /&gt;
! Maximum Resolution Time (hours)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 11.11&lt;br /&gt;
| 21.36&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 28.51&lt;br /&gt;
| 81&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 36.64&lt;br /&gt;
| 122&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
As we can see, the difference in resolution times is stark, especially when considering the average resolution time of standard-severity incident, which almost doubled. As we can see, utilization nearing 100% percent can actually considered bad, as it lowers the ability of support teams to appropriately absorb additional incidents.&lt;br /&gt;
&lt;br /&gt;
From the other side, when we add additional resources to the 1-2-4-2 scenario, we see only small decreases in resolution times. Therefore, the 1-2-4-2 seems to be a good compromise from the utilization/resolution time standpoint.&lt;br /&gt;
&lt;br /&gt;
=== Minimizing Resolution &amp;amp; Hotfix Delivery Time Spikes ===&lt;br /&gt;
An important characteristic that deserves extra attention are individual resolution and hotfix times. So far, we have been mostly concerned with averages, but when running an SLA-bound support team, it is important to consider the fix times for individual incident, with utmost focus on minimizing the number of “spikes” in critical incidents, as those have severe impact on customers.&lt;br /&gt;
&lt;br /&gt;
In the following histograms, we see the individual hotfix and resolution times (in hours) categorized by incident severity for the 1-2-4-2 configuration.&lt;br /&gt;
&lt;br /&gt;
[[File:HotfixHistogram.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:ResolutionHistogram.png]]&lt;br /&gt;
&lt;br /&gt;
As we can see, the results are encouraging. The times for critical incidents are very consistent with no spikes at all. While we can see occasional spikes for lower-priority incidents, eliminating those would require deploying multiple additional resources which does not seem to be worth the cost.&lt;br /&gt;
&lt;br /&gt;
There is however one thing that we need to address at this point. While a reasonable amount of incidents that exceeds the SLA terms is standard, the hotfix times for critical incidents are consistently higher than in the bank-proposed SLA terms. This is not caused by “waiting for resources”, but by structural inability to deliver such fix times by the current process. This can be seen from that the fact, that while the average resolution of a critical incident is 11.11 hours, this figure composes of 7.98 hours of processing and only 3.13 hours of waiting. This facts need to be communicated to the bank and an attempt to raise the fix time of critical incidents to a more acceptable level (e.g. 6 hours) needs to be made.&lt;br /&gt;
&lt;br /&gt;
=== Preventing Incident Accumulation ===&lt;br /&gt;
The last important metric we will consider is the chronological development of average hotfix and resolution times. While these times do not need to be absolutely stable over time (with the exception of critical incidents, where there is very little room for error), there should not be a tendency of higher values in time, as that would indicate that the system is getting backed up and might collapse at some point in the future. Let’s see the results for the 1-2-4-2 configuration.&lt;br /&gt;
&lt;br /&gt;
[[File:HotfixTrace.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:ResolutionTrace.png]]&lt;br /&gt;
&lt;br /&gt;
While one cannot call the results stable, the spikes always seem to return to an acceptable value making the system stable over longer periods of time.&lt;br /&gt;
&lt;br /&gt;
== SLA Contract Pricing ==&lt;br /&gt;
The total cost of upholding the SLA contract, excluding SLA violation-related penalties is 78432 EUR per month. The cost breaks down as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:ResourceCosts.png]]&lt;br /&gt;
&lt;br /&gt;
On top of that, we must calculate a risk margin to cover the SLA violation penalties. &lt;br /&gt;
&lt;br /&gt;
As part of the simulation, it became clear that the SLA hotfix and response times and penalties need to be recalibrated in several ways&lt;br /&gt;
* Some of the times are simply unrealistic due to the current support process&lt;br /&gt;
* The bank provided the hours in the 8x5 mode (“business hours”), while the developer operates exclusively in the 24x7 mode&lt;br /&gt;
* To prevent double penalty billing for incident, when the hotfix time exceeds the allowed resolution time, only the resolution time penalty will be billed from now on&lt;br /&gt;
* The resolution time penalties will be dropped by ¾ and differentiated from hotfix time penalties&lt;br /&gt;
&lt;br /&gt;
The updated proposed SLA times are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Hotfix time (hours)&lt;br /&gt;
! Resolution time (hours)&lt;br /&gt;
! Hotfix penalty (per hour)&lt;br /&gt;
! Resolution penalty (per hour)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 8&lt;br /&gt;
| 24&lt;br /&gt;
| 1000 EUR&lt;br /&gt;
| 250 EUR&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 24&lt;br /&gt;
| 72&lt;br /&gt;
| 400 EUR&lt;br /&gt;
| 100 EUR&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| -&lt;br /&gt;
| 168&lt;br /&gt;
| 100 EUR&lt;br /&gt;
| 100 EUR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For these times, '''the estimated monthly penalty is 62750 EUR. Source data can be found here - [[File:Appreciation.xlsx]] With a 20% risk margin, that makes the absolute risk margin 75300 EUR'''.&lt;br /&gt;
&lt;br /&gt;
That brings the '''total contract price to 153 732 EUR per month'''.&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Appreciation.xlsx&amp;diff=8853</id>
		<title>File:Appreciation.xlsx</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Appreciation.xlsx&amp;diff=8853"/>
		<updated>2015-01-24T14:08:52Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8851</id>
		<title>Software Support Lifecycle</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8851"/>
		<updated>2015-01-24T14:08:04Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Recap ==&lt;br /&gt;
A software firm was contracted to develop a new customer-facing solution for a major banking institution. As part of the negotiation process, an SLA needs to be reached. The banking institution provided required issue resolution times and asked the software firm to appropriately price the contract while provide reasoning for the contract pricing.&lt;br /&gt;
&lt;br /&gt;
The software firm decided to create a simulation of a typical month of the support cycle as a basis for approximate the resources needed to provide the support.&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
The model consists of various severity incidents, represented as entities, and various development resources, represented as resources in SIMPROCESS. The model aims to represent a reasonably simplified version of the real development process.&lt;br /&gt;
&lt;br /&gt;
The model needs to represent developer shifts, “emergency holding” (where developer does not work, but is available to start solving incidents in a reasonable amount of time) and overtime billing.&lt;br /&gt;
&lt;br /&gt;
== Model Structure ==&lt;br /&gt;
=== Entities ===&lt;br /&gt;
==== Incidents ====&lt;br /&gt;
There are several severity of incidents, represented as different types of entities. The severity of incident, apart from having different SLA requirements, differ in their flow throughout their process. Different severity incidents are generated using different rules.&lt;br /&gt;
The SLA terms of different incidents can be found [http://www.simulace.info/index.php/Xkraj119 here].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Severity (lower is less severe)&lt;br /&gt;
! Probability of Occurrence (per hour)&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 1&lt;br /&gt;
| Nor(0.4, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 2&lt;br /&gt;
| Nor(0.2, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 3&lt;br /&gt;
| Nor(0.075, 0.25, 1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is important to note, that higher severity incidents can preempt lower severity incidents, which is desirable as higher severity incidents have more strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
While the normal distribution is sometimes considered problematic when using it to generate entities, due to the fact that a lot of real distributions are not symmetrical and instead are “right-leaning”, I believe that the normal distribution is sufficient for this scenario. An alternative shape that seem to be a bit more realistic was a beta distribution, but seeing the relatively small impact on the results, I chose a normal distribution, since it is far more accessible and requires less expertise to understand.&lt;br /&gt;
&lt;br /&gt;
==== Technical Entities ====&lt;br /&gt;
Another type of entity in the system is a Release Trigger. The Release Trigger is responsible for triggering an automated software build every 24 hours.&lt;br /&gt;
&lt;br /&gt;
=== Resources (Developers) ===&lt;br /&gt;
Developers are grouped into three tiers – standard, junior and senior. Each developer tier has different pricing (here) and might not be able to participate in all parts of the process. The developers get paid a fixed wage, regardless of their utilization. The developers work in the 8x5 mode. This is however problematic when dealing with high-severity incidents, which have strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
Therefore, a new tier has been added – “Developer – Standard – Overtime”. The role of this tier is to hold “emergency” in non-working hours of the day (17:00 – 9:00 on work days + whole weekends). Holding emergency means, that the developer is ready to immediately start resolving critical bugs from his home office. For this, the developer is compensated in the following way: The developer gets paid 10% of his standard hourly wage for every hour he holds emergency, regardless of the number of incidents (fixed cost). Apart from that, the developer gets paid for every hour he spends resolving incidents in the emergency hours (variable cost).&lt;br /&gt;
&lt;br /&gt;
=== Support Process ===&lt;br /&gt;
The incident resolution process is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:SoftwareSupport-Process.jpg]]&lt;br /&gt;
&lt;br /&gt;
Things to note about the process:&lt;br /&gt;
* Standard severity incidents are not eligible for hotfixing&lt;br /&gt;
* Since junior developers do not have full knowledge of the system, they are excluded from the hotfix development and incident resolution activities&lt;br /&gt;
* Hotfix development is a high-risk activity (deployed directly to production without proper testing), standard developers need to pair up when developing the hotfix&lt;br /&gt;
* Critical incidents are released “out-of-band”, meaning they do not wait for the next release and are released individually&lt;br /&gt;
&lt;br /&gt;
== Result ==&lt;br /&gt;
The conflicting goals of the task are obvious. On the one side, we wish to minimize the time of incident resolution. Unless we consider rearchitecting the support process, this is done mainly by deploying additional resources. On the other side, we wish to minimize the amount of deployed resources to optimize support costs and create room for margin generation.&lt;br /&gt;
&lt;br /&gt;
The model shows, that a good compromise between these two goals can be reached with the following resource deployment:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Number of Resources&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The rest of this chapter will aim at providing supporting evidence for this conclusion. I will refer to the above configuration as 1-2-4-2 configuration&lt;br /&gt;
&lt;br /&gt;
=== Utilization and Depreciating Returns on Additional Resources ===&lt;br /&gt;
The utilization of the above configuration is as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Utilization (%)&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 49.93&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 65.35&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 79.1&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 83.09&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Granted, the utilization above might seem low. Consider the case when we remove one Senior Developer from the team. Than the utilization will be as follows (1-1-4-2):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Utilization (%)&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 87.77&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 94.92&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 95.7&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 96.45&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This looks much better. It is however important to realize, that while near 100% utilization is good for product development teams, for support teams the situation looks different. There, utilization near 100% means very little headroom for situations where more than expected incident occur. To illustrate this, let’s compare average incident resolution times between 1-2-4-2 and 1-1-4-2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Average Resolution Time (hours)&lt;br /&gt;
! Maximum Resolution Time (hours)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 13.76&lt;br /&gt;
| 36.01&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 36.23&lt;br /&gt;
| 94&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 63.72&lt;br /&gt;
| 159&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Average Resolution Time (hours)&lt;br /&gt;
! Maximum Resolution Time (hours)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 11.11&lt;br /&gt;
| 21.36&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 28.51&lt;br /&gt;
| 81&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 36.64&lt;br /&gt;
| 122&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
As we can see, the difference in resolution times is stark, especially when considering the average resolution time of standard-severity incident, which almost doubled. As we can see, utilization nearing 100% percent can actually considered bad, as it lowers the ability of support teams to appropriately absorb additional incidents.&lt;br /&gt;
&lt;br /&gt;
From the other side, when we add additional resources to the 1-2-4-2 scenario, we see only small decreases in resolution times. Therefore, the 1-2-4-2 seems to be a good compromise from the utilization/resolution time standpoint.&lt;br /&gt;
&lt;br /&gt;
=== Minimizing Resolution &amp;amp; Hotfix Delivery Time Spikes ===&lt;br /&gt;
An important characteristic that deserves extra attention are individual resolution and hotfix times. So far, we have been mostly concerned with averages, but when running an SLA-bound support team, it is important to consider the fix times for individual incident, with utmost focus on minimizing the number of “spikes” in critical incidents, as those have severe impact on customers.&lt;br /&gt;
&lt;br /&gt;
In the following histograms, we see the individual hotfix and resolution times (in hours) categorized by incident severity for the 1-2-4-2 configuration.&lt;br /&gt;
&lt;br /&gt;
[[File:HotfixHistogram.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:ResolutionHistogram.png]]&lt;br /&gt;
&lt;br /&gt;
As we can see, the results are encouraging. The times for critical incidents are very consistent with no spikes at all. While we can see occasional spikes for lower-priority incidents, eliminating those would require deploying multiple additional resources which does not seem to be worth the cost.&lt;br /&gt;
&lt;br /&gt;
There is however one thing that we need to address at this point. While a reasonable amount of incidents that exceeds the SLA terms is standard, the hotfix times for critical incidents are consistently higher than in the bank-proposed SLA terms. This is not caused by “waiting for resources”, but by structural inability to deliver such fix times by the current process. This can be seen from that the fact, that while the average resolution of a critical incident is 11.11 hours, this figure composes of 7.98 hours of processing and only 3.13 hours of waiting. This facts need to be communicated to the bank and an attempt to raise the fix time of critical incidents to a more acceptable level (e.g. 6 hours) needs to be made.&lt;br /&gt;
&lt;br /&gt;
=== Preventing Incident Accumulation ===&lt;br /&gt;
The last important metric we will consider is the chronological development of average hotfix and resolution times. While these times do not need to be absolutely stable over time (with the exception of critical incidents, where there is very little room for error), there should not be a tendency of higher values in time, as that would indicate that the system is getting backed up and might collapse at some point in the future. Let’s see the results for the 1-2-4-2 configuration.&lt;br /&gt;
&lt;br /&gt;
[[File:HotfixTrace.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:ResolutionTrace.png]]&lt;br /&gt;
&lt;br /&gt;
While one cannot call the results stable, the spikes always seem to return to an acceptable value making the system stable over longer periods of time.&lt;br /&gt;
&lt;br /&gt;
== SLA Contract Pricing ==&lt;br /&gt;
The total cost of upholding the SLA contract, excluding SLA violation-related penalties is 78432 EUR per month. The cost breaks down as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:ResourceCosts.png]]&lt;br /&gt;
&lt;br /&gt;
On top of that, we must calculate a risk margin to cover the SLA violation penalties. &lt;br /&gt;
&lt;br /&gt;
As part of the simulation, it became clear that the SLA hotfix and response times and penalties need to be recalibrated in several ways&lt;br /&gt;
* Some of the times are simply unrealistic due to the current support process&lt;br /&gt;
* The bank provided the hours in the 8x5 mode (“business hours”), while the developer operates exclusively in the 24x7 mode&lt;br /&gt;
* To prevent double penalty billing for incident, when the hotfix time exceeds the allowed resolution time, only the resolution time penalty will be billed from now on&lt;br /&gt;
* The resolution time penalties will be dropped by ¾ and differentiated from hotfix time penalties&lt;br /&gt;
&lt;br /&gt;
The updated proposed SLA times are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Hotfix time (hours)&lt;br /&gt;
! Resolution time (hours)&lt;br /&gt;
! Hotfix penalty (per hour)&lt;br /&gt;
! Resolution penalty (per hour)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 8&lt;br /&gt;
| 24&lt;br /&gt;
| 1000 EUR&lt;br /&gt;
| 250 EUR&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 24&lt;br /&gt;
| 72&lt;br /&gt;
| 400 EUR&lt;br /&gt;
| 100 EUR&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| -&lt;br /&gt;
| 168&lt;br /&gt;
| 100 EUR&lt;br /&gt;
| 100 EUR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For these times, '''the estimated monthly penalty is 62750 EUR. With a 20% risk margin, that makes the absolute risk margin 75300 EUR'''.&lt;br /&gt;
&lt;br /&gt;
That brings the '''total contract price to 153 732 EUR per month'''.&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:ResourceCosts.png&amp;diff=8845</id>
		<title>File:ResourceCosts.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:ResourceCosts.png&amp;diff=8845"/>
		<updated>2015-01-24T14:05:01Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8843</id>
		<title>Software Support Lifecycle</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8843"/>
		<updated>2015-01-24T14:04:05Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: /* Result */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Recap ==&lt;br /&gt;
A software firm was contracted to develop a new customer-facing solution for a major banking institution. As part of the negotiation process, an SLA needs to be reached. The banking institution provided required issue resolution times and asked the software firm to appropriately price the contract while provide reasoning for the contract pricing.&lt;br /&gt;
&lt;br /&gt;
The software firm decided to create a simulation of a typical month of the support cycle as a basis for approximate the resources needed to provide the support.&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
The model consists of various severity incidents, represented as entities, and various development resources, represented as resources in SIMPROCESS. The model aims to represent a reasonably simplified version of the real development process.&lt;br /&gt;
&lt;br /&gt;
The model needs to represent developer shifts, “emergency holding” (where developer does not work, but is available to start solving incidents in a reasonable amount of time) and overtime billing.&lt;br /&gt;
&lt;br /&gt;
== Model Structure ==&lt;br /&gt;
=== Entities ===&lt;br /&gt;
==== Incidents ====&lt;br /&gt;
There are several severity of incidents, represented as different types of entities. The severity of incident, apart from having different SLA requirements, differ in their flow throughout their process. Different severity incidents are generated using different rules.&lt;br /&gt;
The SLA terms of different incidents can be found [http://www.simulace.info/index.php/Xkraj119 here].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Severity (lower is less severe)&lt;br /&gt;
! Probability of Occurrence (per hour)&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 1&lt;br /&gt;
| Nor(0.4, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 2&lt;br /&gt;
| Nor(0.2, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 3&lt;br /&gt;
| Nor(0.075, 0.25, 1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is important to note, that higher severity incidents can preempt lower severity incidents, which is desirable as higher severity incidents have more strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
While the normal distribution is sometimes considered problematic when using it to generate entities, due to the fact that a lot of real distributions are not symmetrical and instead are “right-leaning”, I believe that the normal distribution is sufficient for this scenario. An alternative shape that seem to be a bit more realistic was a beta distribution, but seeing the relatively small impact on the results, I chose a normal distribution, since it is far more accessible and requires less expertise to understand.&lt;br /&gt;
&lt;br /&gt;
==== Technical Entities ====&lt;br /&gt;
Another type of entity in the system is a Release Trigger. The Release Trigger is responsible for triggering an automated software build every 24 hours.&lt;br /&gt;
&lt;br /&gt;
=== Resources (Developers) ===&lt;br /&gt;
Developers are grouped into three tiers – standard, junior and senior. Each developer tier has different pricing (here) and might not be able to participate in all parts of the process. The developers get paid a fixed wage, regardless of their utilization. The developers work in the 8x5 mode. This is however problematic when dealing with high-severity incidents, which have strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
Therefore, a new tier has been added – “Developer – Standard – Overtime”. The role of this tier is to hold “emergency” in non-working hours of the day (17:00 – 9:00 on work days + whole weekends). Holding emergency means, that the developer is ready to immediately start resolving critical bugs from his home office. For this, the developer is compensated in the following way: The developer gets paid 10% of his standard hourly wage for every hour he holds emergency, regardless of the number of incidents (fixed cost). Apart from that, the developer gets paid for every hour he spends resolving incidents in the emergency hours (variable cost).&lt;br /&gt;
&lt;br /&gt;
=== Support Process ===&lt;br /&gt;
The incident resolution process is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:SoftwareSupport-Process.jpg]]&lt;br /&gt;
&lt;br /&gt;
Things to note about the process:&lt;br /&gt;
* Standard severity incidents are not eligible for hotfixing&lt;br /&gt;
* Since junior developers do not have full knowledge of the system, they are excluded from the hotfix development and incident resolution activities&lt;br /&gt;
* Hotfix development is a high-risk activity (deployed directly to production without proper testing), standard developers need to pair up when developing the hotfix&lt;br /&gt;
* Critical incidents are released “out-of-band”, meaning they do not wait for the next release and are released individually&lt;br /&gt;
&lt;br /&gt;
== Result ==&lt;br /&gt;
The conflicting goals of the task are obvious. On the one side, we wish to minimize the time of incident resolution. Unless we consider rearchitecting the support process, this is done mainly by deploying additional resources. On the other side, we wish to minimize the amount of deployed resources to optimize support costs and create room for margin generation.&lt;br /&gt;
&lt;br /&gt;
The model shows, that a good compromise between these two goals can be reached with the following resource deployment:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Number of Resources&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The rest of this chapter will aim at providing supporting evidence for this conclusion. I will refer to the above configuration as 1-2-4-2 configuration&lt;br /&gt;
&lt;br /&gt;
=== Utilization and Depreciating Returns on Additional Resources ===&lt;br /&gt;
The utilization of the above configuration is as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Utilization (%)&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 49.93&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 65.35&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 79.1&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 83.09&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Granted, the utilization above might seem low. Consider the case when we remove one Senior Developer from the team. Than the utilization will be as follows (1-1-4-2):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Utilization (%)&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 87.77&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 94.92&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 95.7&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 96.45&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This looks much better. It is however important to realize, that while near 100% utilization is good for product development teams, for support teams the situation looks different. There, utilization near 100% means very little headroom for situations where more than expected incident occur. To illustrate this, let’s compare average incident resolution times between 1-2-4-2 and 1-1-4-2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Average Resolution Time (hours)&lt;br /&gt;
! Maximum Resolution Time (hours)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 13.76&lt;br /&gt;
| 36.01&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 36.23&lt;br /&gt;
| 94&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 63.72&lt;br /&gt;
| 159&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Average Resolution Time (hours)&lt;br /&gt;
! Maximum Resolution Time (hours)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 11.11&lt;br /&gt;
| 21.36&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 28.51&lt;br /&gt;
| 81&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 36.64&lt;br /&gt;
| 122&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
As we can see, the difference in resolution times is stark, especially when considering the average resolution time of standard-severity incident, which almost doubled. As we can see, utilization nearing 100% percent can actually considered bad, as it lowers the ability of support teams to appropriately absorb additional incidents.&lt;br /&gt;
&lt;br /&gt;
From the other side, when we add additional resources to the 1-2-4-2 scenario, we see only small decreases in resolution times. Therefore, the 1-2-4-2 seems to be a good compromise from the utilization/resolution time standpoint.&lt;br /&gt;
&lt;br /&gt;
=== Minimizing Resolution &amp;amp; Hotfix Delivery Time Spikes ===&lt;br /&gt;
An important characteristic that deserves extra attention are individual resolution and hotfix times. So far, we have been mostly concerned with averages, but when running an SLA-bound support team, it is important to consider the fix times for individual incident, with utmost focus on minimizing the number of “spikes” in critical incidents, as those have severe impact on customers.&lt;br /&gt;
&lt;br /&gt;
In the following histograms, we see the individual hotfix and resolution times (in hours) categorized by incident severity for the 1-2-4-2 configuration.&lt;br /&gt;
&lt;br /&gt;
[[File:HotfixHistogram.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:ResolutionHistogram.png]]&lt;br /&gt;
&lt;br /&gt;
As we can see, the results are encouraging. The times for critical incidents are very consistent with no spikes at all. While we can see occasional spikes for lower-priority incidents, eliminating those would require deploying multiple additional resources which does not seem to be worth the cost.&lt;br /&gt;
&lt;br /&gt;
There is however one thing that we need to address at this point. While a reasonable amount of incidents that exceeds the SLA terms is standard, the hotfix times for critical incidents are consistently higher than in the bank-proposed SLA terms. This is not caused by “waiting for resources”, but by structural inability to deliver such fix times by the current process. This can be seen from that the fact, that while the average resolution of a critical incident is 11.11 hours, this figure composes of 7.98 hours of processing and only 3.13 hours of waiting. This facts need to be communicated to the bank and an attempt to raise the fix time of critical incidents to a more acceptable level (e.g. 6 hours) needs to be made.&lt;br /&gt;
&lt;br /&gt;
=== Preventing Incident Accumulation ===&lt;br /&gt;
The last important metric we will consider is the chronological development of average hotfix and resolution times. While these times do not need to be absolutely stable over time (with the exception of critical incidents, where there is very little room for error), there should not be a tendency of higher values in time, as that would indicate that the system is getting backed up and might collapse at some point in the future. Let’s see the results for the 1-2-4-2 configuration.&lt;br /&gt;
&lt;br /&gt;
[[File:HotfixTrace.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:ResolutionTrace.png]]&lt;br /&gt;
&lt;br /&gt;
While one cannot call the results stable, the spikes always seem to return to an acceptable value making the system stable over longer periods of time.&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:ResolutionTrace.png&amp;diff=8842</id>
		<title>File:ResolutionTrace.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:ResolutionTrace.png&amp;diff=8842"/>
		<updated>2015-01-24T14:03:53Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:HotfixTrace.png&amp;diff=8841</id>
		<title>File:HotfixTrace.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:HotfixTrace.png&amp;diff=8841"/>
		<updated>2015-01-24T14:03:29Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:ResolutionHistogram.png&amp;diff=8840</id>
		<title>File:ResolutionHistogram.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:ResolutionHistogram.png&amp;diff=8840"/>
		<updated>2015-01-24T14:02:24Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:HotfixHistogram.png&amp;diff=8839</id>
		<title>File:HotfixHistogram.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:HotfixHistogram.png&amp;diff=8839"/>
		<updated>2015-01-24T14:01:46Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8838</id>
		<title>Software Support Lifecycle</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8838"/>
		<updated>2015-01-24T14:00:11Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: /* Utilization and Depreciating Returns on Additional Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Recap ==&lt;br /&gt;
A software firm was contracted to develop a new customer-facing solution for a major banking institution. As part of the negotiation process, an SLA needs to be reached. The banking institution provided required issue resolution times and asked the software firm to appropriately price the contract while provide reasoning for the contract pricing.&lt;br /&gt;
&lt;br /&gt;
The software firm decided to create a simulation of a typical month of the support cycle as a basis for approximate the resources needed to provide the support.&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
The model consists of various severity incidents, represented as entities, and various development resources, represented as resources in SIMPROCESS. The model aims to represent a reasonably simplified version of the real development process.&lt;br /&gt;
&lt;br /&gt;
The model needs to represent developer shifts, “emergency holding” (where developer does not work, but is available to start solving incidents in a reasonable amount of time) and overtime billing.&lt;br /&gt;
&lt;br /&gt;
== Model Structure ==&lt;br /&gt;
=== Entities ===&lt;br /&gt;
==== Incidents ====&lt;br /&gt;
There are several severity of incidents, represented as different types of entities. The severity of incident, apart from having different SLA requirements, differ in their flow throughout their process. Different severity incidents are generated using different rules.&lt;br /&gt;
The SLA terms of different incidents can be found [http://www.simulace.info/index.php/Xkraj119 here].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Severity (lower is less severe)&lt;br /&gt;
! Probability of Occurrence (per hour)&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 1&lt;br /&gt;
| Nor(0.4, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 2&lt;br /&gt;
| Nor(0.2, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 3&lt;br /&gt;
| Nor(0.075, 0.25, 1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is important to note, that higher severity incidents can preempt lower severity incidents, which is desirable as higher severity incidents have more strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
While the normal distribution is sometimes considered problematic when using it to generate entities, due to the fact that a lot of real distributions are not symmetrical and instead are “right-leaning”, I believe that the normal distribution is sufficient for this scenario. An alternative shape that seem to be a bit more realistic was a beta distribution, but seeing the relatively small impact on the results, I chose a normal distribution, since it is far more accessible and requires less expertise to understand.&lt;br /&gt;
&lt;br /&gt;
==== Technical Entities ====&lt;br /&gt;
Another type of entity in the system is a Release Trigger. The Release Trigger is responsible for triggering an automated software build every 24 hours.&lt;br /&gt;
&lt;br /&gt;
=== Resources (Developers) ===&lt;br /&gt;
Developers are grouped into three tiers – standard, junior and senior. Each developer tier has different pricing (here) and might not be able to participate in all parts of the process. The developers get paid a fixed wage, regardless of their utilization. The developers work in the 8x5 mode. This is however problematic when dealing with high-severity incidents, which have strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
Therefore, a new tier has been added – “Developer – Standard – Overtime”. The role of this tier is to hold “emergency” in non-working hours of the day (17:00 – 9:00 on work days + whole weekends). Holding emergency means, that the developer is ready to immediately start resolving critical bugs from his home office. For this, the developer is compensated in the following way: The developer gets paid 10% of his standard hourly wage for every hour he holds emergency, regardless of the number of incidents (fixed cost). Apart from that, the developer gets paid for every hour he spends resolving incidents in the emergency hours (variable cost).&lt;br /&gt;
&lt;br /&gt;
=== Support Process ===&lt;br /&gt;
The incident resolution process is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:SoftwareSupport-Process.jpg]]&lt;br /&gt;
&lt;br /&gt;
Things to note about the process:&lt;br /&gt;
* Standard severity incidents are not eligible for hotfixing&lt;br /&gt;
* Since junior developers do not have full knowledge of the system, they are excluded from the hotfix development and incident resolution activities&lt;br /&gt;
* Hotfix development is a high-risk activity (deployed directly to production without proper testing), standard developers need to pair up when developing the hotfix&lt;br /&gt;
* Critical incidents are released “out-of-band”, meaning they do not wait for the next release and are released individually&lt;br /&gt;
&lt;br /&gt;
== Result ==&lt;br /&gt;
The conflicting goals of the task are obvious. On the one side, we wish to minimize the time of incident resolution. Unless we consider rearchitecting the support process, this is done mainly by deploying additional resources. On the other side, we wish to minimize the amount of deployed resources to optimize support costs and create room for margin generation.&lt;br /&gt;
&lt;br /&gt;
The model shows, that a good compromise between these two goals can be reached with the following resource deployment:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Number of Resources&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The rest of this chapter will aim at providing supporting evidence for this conclusion. I will refer to the above configuration as 1-2-4-2 configuration&lt;br /&gt;
&lt;br /&gt;
=== Utilization and Depreciating Returns on Additional Resources ===&lt;br /&gt;
The utilization of the above configuration is as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Utilization (%)&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 49.93&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 65.35&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 79.1&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 83.09&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Granted, the utilization above might seem low. Consider the case when we remove one Senior Developer from the team. Than the utilization will be as follows (1-1-4-2):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Utilization (%)&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 87.77&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 94.92&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 95.7&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 96.45&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This looks much better. It is however important to realize, that while near 100% utilization is good for product development teams, for support teams the situation looks different. There, utilization near 100% means very little headroom for situations where more than expected incident occur. To illustrate this, let’s compare average incident resolution times between 1-2-4-2 and 1-1-4-2&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Average Resolution Time (hours)&lt;br /&gt;
! Maximum Resolution Time (hours)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 13.76&lt;br /&gt;
| 36.01&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 36.23&lt;br /&gt;
| 94&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 63.72&lt;br /&gt;
| 159&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Average Resolution Time (hours)&lt;br /&gt;
! Maximum Resolution Time (hours)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 11.11&lt;br /&gt;
| 21.36&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 28.51&lt;br /&gt;
| 81&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 36.64&lt;br /&gt;
| 122&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
As we can see, the difference in resolution times is stark, especially when considering the average resolution time of standard-severity incident, which almost doubled. As we can see, utilization nearing 100% percent can actually considered bad, as it lowers the ability of support teams to appropriately absorb additional incidents.&lt;br /&gt;
&lt;br /&gt;
From the other side, when we add additional resources to the 1-2-4-2 scenario, we see only small decreases in resolution times. Therefore, the 1-2-4-2 seems to be a good compromise from the utilization/resolution time standpoint.&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8835</id>
		<title>Software Support Lifecycle</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8835"/>
		<updated>2015-01-24T13:57:17Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: /* Result */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Recap ==&lt;br /&gt;
A software firm was contracted to develop a new customer-facing solution for a major banking institution. As part of the negotiation process, an SLA needs to be reached. The banking institution provided required issue resolution times and asked the software firm to appropriately price the contract while provide reasoning for the contract pricing.&lt;br /&gt;
&lt;br /&gt;
The software firm decided to create a simulation of a typical month of the support cycle as a basis for approximate the resources needed to provide the support.&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
The model consists of various severity incidents, represented as entities, and various development resources, represented as resources in SIMPROCESS. The model aims to represent a reasonably simplified version of the real development process.&lt;br /&gt;
&lt;br /&gt;
The model needs to represent developer shifts, “emergency holding” (where developer does not work, but is available to start solving incidents in a reasonable amount of time) and overtime billing.&lt;br /&gt;
&lt;br /&gt;
== Model Structure ==&lt;br /&gt;
=== Entities ===&lt;br /&gt;
==== Incidents ====&lt;br /&gt;
There are several severity of incidents, represented as different types of entities. The severity of incident, apart from having different SLA requirements, differ in their flow throughout their process. Different severity incidents are generated using different rules.&lt;br /&gt;
The SLA terms of different incidents can be found [http://www.simulace.info/index.php/Xkraj119 here].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Severity (lower is less severe)&lt;br /&gt;
! Probability of Occurrence (per hour)&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 1&lt;br /&gt;
| Nor(0.4, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 2&lt;br /&gt;
| Nor(0.2, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 3&lt;br /&gt;
| Nor(0.075, 0.25, 1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is important to note, that higher severity incidents can preempt lower severity incidents, which is desirable as higher severity incidents have more strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
While the normal distribution is sometimes considered problematic when using it to generate entities, due to the fact that a lot of real distributions are not symmetrical and instead are “right-leaning”, I believe that the normal distribution is sufficient for this scenario. An alternative shape that seem to be a bit more realistic was a beta distribution, but seeing the relatively small impact on the results, I chose a normal distribution, since it is far more accessible and requires less expertise to understand.&lt;br /&gt;
&lt;br /&gt;
==== Technical Entities ====&lt;br /&gt;
Another type of entity in the system is a Release Trigger. The Release Trigger is responsible for triggering an automated software build every 24 hours.&lt;br /&gt;
&lt;br /&gt;
=== Resources (Developers) ===&lt;br /&gt;
Developers are grouped into three tiers – standard, junior and senior. Each developer tier has different pricing (here) and might not be able to participate in all parts of the process. The developers get paid a fixed wage, regardless of their utilization. The developers work in the 8x5 mode. This is however problematic when dealing with high-severity incidents, which have strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
Therefore, a new tier has been added – “Developer – Standard – Overtime”. The role of this tier is to hold “emergency” in non-working hours of the day (17:00 – 9:00 on work days + whole weekends). Holding emergency means, that the developer is ready to immediately start resolving critical bugs from his home office. For this, the developer is compensated in the following way: The developer gets paid 10% of his standard hourly wage for every hour he holds emergency, regardless of the number of incidents (fixed cost). Apart from that, the developer gets paid for every hour he spends resolving incidents in the emergency hours (variable cost).&lt;br /&gt;
&lt;br /&gt;
=== Support Process ===&lt;br /&gt;
The incident resolution process is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:SoftwareSupport-Process.jpg]]&lt;br /&gt;
&lt;br /&gt;
Things to note about the process:&lt;br /&gt;
* Standard severity incidents are not eligible for hotfixing&lt;br /&gt;
* Since junior developers do not have full knowledge of the system, they are excluded from the hotfix development and incident resolution activities&lt;br /&gt;
* Hotfix development is a high-risk activity (deployed directly to production without proper testing), standard developers need to pair up when developing the hotfix&lt;br /&gt;
* Critical incidents are released “out-of-band”, meaning they do not wait for the next release and are released individually&lt;br /&gt;
&lt;br /&gt;
== Result ==&lt;br /&gt;
The conflicting goals of the task are obvious. On the one side, we wish to minimize the time of incident resolution. Unless we consider rearchitecting the support process, this is done mainly by deploying additional resources. On the other side, we wish to minimize the amount of deployed resources to optimize support costs and create room for margin generation.&lt;br /&gt;
&lt;br /&gt;
The model shows, that a good compromise between these two goals can be reached with the following resource deployment:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Number of Resources&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The rest of this chapter will aim at providing supporting evidence for this conclusion. I will refer to the above configuration as 1-2-4-2 configuration&lt;br /&gt;
&lt;br /&gt;
=== Utilization and Depreciating Returns on Additional Resources ===&lt;br /&gt;
The utilization of the above configuration is as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Utilization (%)&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 49.93&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 65.35&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 79.1&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 83.09&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Granted, the utilization above might seem low. Consider the case when we remove one Senior Developer from the team. Than the utilization will be as follows (1-1-4-2):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Utilization (%)&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 87.77&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 94.92&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 95.7&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer - Overtime&lt;br /&gt;
| 96.45&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This looks much better. It is however important to realize, that while near 100% utilization is good for product development teams, for support teams the situation looks different. There, utilization near 100% means very little headroom for situations where more than expected incident occur. To illustrate this, let’s compare average incident resolution times between 1-2-4-2 and 1-1-4-2&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8832</id>
		<title>Software Support Lifecycle</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8832"/>
		<updated>2015-01-24T13:51:11Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Recap ==&lt;br /&gt;
A software firm was contracted to develop a new customer-facing solution for a major banking institution. As part of the negotiation process, an SLA needs to be reached. The banking institution provided required issue resolution times and asked the software firm to appropriately price the contract while provide reasoning for the contract pricing.&lt;br /&gt;
&lt;br /&gt;
The software firm decided to create a simulation of a typical month of the support cycle as a basis for approximate the resources needed to provide the support.&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
The model consists of various severity incidents, represented as entities, and various development resources, represented as resources in SIMPROCESS. The model aims to represent a reasonably simplified version of the real development process.&lt;br /&gt;
&lt;br /&gt;
The model needs to represent developer shifts, “emergency holding” (where developer does not work, but is available to start solving incidents in a reasonable amount of time) and overtime billing.&lt;br /&gt;
&lt;br /&gt;
== Model Structure ==&lt;br /&gt;
=== Entities ===&lt;br /&gt;
==== Incidents ====&lt;br /&gt;
There are several severity of incidents, represented as different types of entities. The severity of incident, apart from having different SLA requirements, differ in their flow throughout their process. Different severity incidents are generated using different rules.&lt;br /&gt;
The SLA terms of different incidents can be found [http://www.simulace.info/index.php/Xkraj119 here].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Severity (lower is less severe)&lt;br /&gt;
! Probability of Occurrence (per hour)&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 1&lt;br /&gt;
| Nor(0.4, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 2&lt;br /&gt;
| Nor(0.2, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 3&lt;br /&gt;
| Nor(0.075, 0.25, 1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is important to note, that higher severity incidents can preempt lower severity incidents, which is desirable as higher severity incidents have more strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
While the normal distribution is sometimes considered problematic when using it to generate entities, due to the fact that a lot of real distributions are not symmetrical and instead are “right-leaning”, I believe that the normal distribution is sufficient for this scenario. An alternative shape that seem to be a bit more realistic was a beta distribution, but seeing the relatively small impact on the results, I chose a normal distribution, since it is far more accessible and requires less expertise to understand.&lt;br /&gt;
&lt;br /&gt;
==== Technical Entities ====&lt;br /&gt;
Another type of entity in the system is a Release Trigger. The Release Trigger is responsible for triggering an automated software build every 24 hours.&lt;br /&gt;
&lt;br /&gt;
=== Resources (Developers) ===&lt;br /&gt;
Developers are grouped into three tiers – standard, junior and senior. Each developer tier has different pricing (here) and might not be able to participate in all parts of the process. The developers get paid a fixed wage, regardless of their utilization. The developers work in the 8x5 mode. This is however problematic when dealing with high-severity incidents, which have strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
Therefore, a new tier has been added – “Developer – Standard – Overtime”. The role of this tier is to hold “emergency” in non-working hours of the day (17:00 – 9:00 on work days + whole weekends). Holding emergency means, that the developer is ready to immediately start resolving critical bugs from his home office. For this, the developer is compensated in the following way: The developer gets paid 10% of his standard hourly wage for every hour he holds emergency, regardless of the number of incidents (fixed cost). Apart from that, the developer gets paid for every hour he spends resolving incidents in the emergency hours (variable cost).&lt;br /&gt;
&lt;br /&gt;
=== Support Process ===&lt;br /&gt;
The incident resolution process is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:SoftwareSupport-Process.jpg]]&lt;br /&gt;
&lt;br /&gt;
Things to note about the process:&lt;br /&gt;
* Standard severity incidents are not eligible for hotfixing&lt;br /&gt;
* Since junior developers do not have full knowledge of the system, they are excluded from the hotfix development and incident resolution activities&lt;br /&gt;
* Hotfix development is a high-risk activity (deployed directly to production without proper testing), standard developers need to pair up when developing the hotfix&lt;br /&gt;
* Critical incidents are released “out-of-band”, meaning they do not wait for the next release and are released individually&lt;br /&gt;
&lt;br /&gt;
== Result ==&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:SoftwareSupport-Process.jpg&amp;diff=8831</id>
		<title>File:SoftwareSupport-Process.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:SoftwareSupport-Process.jpg&amp;diff=8831"/>
		<updated>2015-01-24T13:49:15Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8830</id>
		<title>Software Support Lifecycle</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Software_Support_Lifecycle&amp;diff=8830"/>
		<updated>2015-01-24T13:48:20Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: V1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Recap ==&lt;br /&gt;
A software firm was contracted to develop a new customer-facing solution for a major banking institution. As part of the negotiation process, an SLA needs to be reached. The banking institution provided required issue resolution times and asked the software firm to appropriately price the contract while provide reasoning for the contract pricing.&lt;br /&gt;
&lt;br /&gt;
The software firm decided to create a simulation of a typical month of the support cycle as a basis for approximate the resources needed to provide the support.&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
The model consists of various severity incidents, represented as entities, and various development resources, represented as resources in SIMPROCESS. The model aims to represent a reasonably simplified version of the real development process.&lt;br /&gt;
&lt;br /&gt;
The model needs to represent developer shifts, “emergency holding” (where developer does not work, but is available to start solving incidents in a reasonable amount of time) and overtime billing.&lt;br /&gt;
&lt;br /&gt;
== Model Structure ==&lt;br /&gt;
=== Entities ===&lt;br /&gt;
==== Incidents ====&lt;br /&gt;
There are several severity of incidents, represented as different types of entities. The severity of incident, apart from having different SLA requirements, differ in their flow throughout their process. Different severity incidents are generated using different rules.&lt;br /&gt;
The SLA terms of different incidents can be found [http://www.simulace.info/index.php/Xkraj119 here].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Type&lt;br /&gt;
! Severity (lower is less severe)&lt;br /&gt;
! Probability of Occurrence (per hour)&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 1&lt;br /&gt;
| Nor(0.4, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 2&lt;br /&gt;
| Nor(0.2, 0.25, 1)&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 3&lt;br /&gt;
| Nor(0.075, 0.25, 1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is important to note, that higher severity incidents can preempt lower severity incidents, which is desirable as higher severity incidents have more strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
While the normal distribution is sometimes considered problematic when using it to generate entities, due to the fact that a lot of real distributions are not symmetrical and instead are “right-leaning”, I believe that the normal distribution is sufficient for this scenario. An alternative shape that seem to be a bit more realistic was a beta distribution, but seeing the relatively small impact on the results, I chose a normal distribution, since it is far more accessible and requires less expertise to understand.&lt;br /&gt;
&lt;br /&gt;
==== Technical Entities ====&lt;br /&gt;
Another type of entity in the system is a Release Trigger. The Release Trigger is responsible for triggering an automated software build every 24 hours.&lt;br /&gt;
&lt;br /&gt;
=== Resources (Developers) ===&lt;br /&gt;
Developers are grouped into three tiers – standard, junior and senior. Each developer tier has different pricing (here) and might not be able to participate in all parts of the process. The developers get paid a fixed wage, regardless of their utilization. The developers work in the 8x5 mode. This is however problematic when dealing with high-severity incidents, which have strict SLA terms.&lt;br /&gt;
&lt;br /&gt;
Therefore, a new tier has been added – “Developer – Standard – Overtime”. The role of this tier is to hold “emergency” in non-working hours of the day (17:00 – 9:00 on work days + whole weekends). Holding emergency means, that the developer is ready to immediately start resolving critical bugs from his home office. For this, the developer is compensated in the following way: The developer gets paid 10% of his standard hourly wage for every hour he holds emergency, regardless of the number of incidents (fixed cost). Apart from that, the developer gets paid for every hour he spends resolving incidents in the emergency hours (variable cost).&lt;br /&gt;
&lt;br /&gt;
=== Support Process ===&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=WS_2014/2015&amp;diff=8825</id>
		<title>WS 2014/2015</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=WS_2014/2015&amp;diff=8825"/>
		<updated>2015-01-24T13:42:29Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Semestral papers from winter term 2014/2015. Please, put here links to the pages with your paper. First you need to have your [[Assignments WS 2014/2015|assignment approved]].&lt;br /&gt;
&lt;br /&gt;
==Simulations==&lt;br /&gt;
&lt;br /&gt;
--[[User:Zhua00|Andriy Zhubryd]] 14:24, 15 January 2015 (CET) [[E-Sim Optimal Equipment Selection]]&lt;br /&gt;
&lt;br /&gt;
--[[User:Xgubk00|Xgubk00]] 12:24, 17 January 2015 (CET) [[Flood evacuation]]&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xzasj00|Xzasj00]] 00:07, 18 January 2015 (CET) [[Formula 1 teams economic situation]]&lt;br /&gt;
&lt;br /&gt;
-- [[User:Qnovm21|Qnovm21]] 10:33, 18 January 2015 (CET) [[Simulation of the surgery staff in a hospital]]&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xzigm03|Xzigm03]] 23:40, 18 January 2015 (CET) [[Poker probabilities and variance simulation]]&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkraj119|Xkraj119]] 14:41, 24 January 2015 (CET) [[Software Support Lifecycle]]&lt;br /&gt;
&lt;br /&gt;
==Papers==&lt;br /&gt;
&lt;br /&gt;
--[[User:Xgubk00|Xgubk00]] 12:24, 17 January 2015 (CET) [[Game theory]]&lt;br /&gt;
&lt;br /&gt;
--[[User:Qnovm21|Qnovm21]] 16:40, 21 January 2015 (CET) [[Casual loop diagram]]&lt;br /&gt;
&lt;br /&gt;
--[[User:Xkraj119|Xkraj119]] 10:32, 24 January 2015 (CET) [https://en.wikipedia.org/wiki/Growth_and_underinvestment Growth and Underinvestment Archetype]&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=WS_2014/2015&amp;diff=8714</id>
		<title>WS 2014/2015</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=WS_2014/2015&amp;diff=8714"/>
		<updated>2015-01-24T09:34:22Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: Adds link to my paper on Wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Semestral papers from winter term 2014/2015. Please, put here links to the pages with your paper. First you need to have your [[Assignments WS 2014/2015|assignment approved]].&lt;br /&gt;
&lt;br /&gt;
==Simulations==&lt;br /&gt;
&lt;br /&gt;
--[[User:Zhua00|Andriy Zhubryd]] 14:24, 15 January 2015 (CET) [[E-Sim Optimal Equipment Selection]]&lt;br /&gt;
&lt;br /&gt;
--[[User:Xgubk00|Xgubk00]] 12:24, 17 January 2015 (CET) [[Flood evacuation]]&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xzasj00|Xzasj00]] 00:07, 18 January 2015 (CET) [[Formula 1 teams economic situation]]&lt;br /&gt;
&lt;br /&gt;
-- [[User:Qnovm21|Qnovm21]] 10:33, 18 January 2015 (CET) [[Simulation of the surgery staff in a hospital]]&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xzigm03|Xzigm03]] 23:40, 18 January 2015 (CET) [[Poker probabilities and variance simulation]]&lt;br /&gt;
&lt;br /&gt;
==Papers==&lt;br /&gt;
&lt;br /&gt;
--[[User:Xgubk00|Xgubk00]] 12:24, 17 January 2015 (CET) [[Game theory]]&lt;br /&gt;
&lt;br /&gt;
--[[User:Qnovm21|Qnovm21]] 16:40, 21 January 2015 (CET) [[Casual loop diagram]]&lt;br /&gt;
&lt;br /&gt;
--[[User:Xkraj119|Xkraj119]] 10:32, 24 January 2015 (CET) [https://en.wikipedia.org/wiki/Growth_and_underinvestment Growth and Underinvestment Archetype]&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Xkraj119&amp;diff=7934</id>
		<title>Xkraj119</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Xkraj119&amp;diff=7934"/>
		<updated>2014-12-22T09:35:24Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Assignment==&lt;br /&gt;
*	Project name – Providing SLA-backed support&lt;br /&gt;
*	Author – Jan Kratochvíl&lt;br /&gt;
*	Software used – Simprocess&lt;br /&gt;
*	Simulation type – Queues theory&lt;br /&gt;
== Scenario ==&lt;br /&gt;
A software firm recently developed a new facing custom solution for one of the major banking institutions. The solution is critical to the bank’s operations. Therefore the bank decided to pay for support from the solution developer and has signed a Service Level Assurance agreement. The agreement defines several levels of incidents:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Incident Severity&lt;br /&gt;
! Hotfix time (hours)&lt;br /&gt;
! Resolution time (hours)&lt;br /&gt;
! Penalty (per hour)&lt;br /&gt;
|-&lt;br /&gt;
| Standard&lt;br /&gt;
| 16&lt;br /&gt;
| 72&lt;br /&gt;
| 100 EUR&lt;br /&gt;
|-&lt;br /&gt;
| Severe&lt;br /&gt;
| 8&lt;br /&gt;
| 32&lt;br /&gt;
| 400 EUR&lt;br /&gt;
|-&lt;br /&gt;
| Critical&lt;br /&gt;
| 2&lt;br /&gt;
| 16&lt;br /&gt;
| 1000 EUR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Hotfix – A fix to the problem that can be temporary and does not have to address the root issue. Can be deployed out-of-band directly by a developer, does not include testing&lt;br /&gt;
* Resolution – Fixes a root cause of the problem, deployed as part of the daily build. Needs to go through a testing phase&lt;br /&gt;
&lt;br /&gt;
The solution firm has the following resources types:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Resource Type&lt;br /&gt;
! Price per MD (Man-day)&lt;br /&gt;
|-&lt;br /&gt;
| Junior Developer&lt;br /&gt;
| 280 EUR&lt;br /&gt;
|-&lt;br /&gt;
| Standard Developer&lt;br /&gt;
| 300 EUR&lt;br /&gt;
|-&lt;br /&gt;
| Senior Developer&lt;br /&gt;
| 350 EUR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The number of resources deployed on support is fixed for a month, since the training of new resources for the project is expensive due to the project complexity&lt;br /&gt;
* The cost of resources is paid regardless of the resource’s utilization rate (the company internally uses cost accounting methods)&lt;br /&gt;
* Each resource type has a different level of efficiency when performing tasks (main task types are - development, testing). The exact coefficients will estimated as part of the task solution&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
&lt;br /&gt;
The banked asked the solution developer to price the SLA contract and provide a reasoning for the pricing. &lt;br /&gt;
&lt;br /&gt;
The software firm decided to simulate a month-log support cycle to estimate the internal costs for upholding the support contract which it will use as a basis for pricing the SLA contract. The software firm will use data about incident frequency and severity obtained on a different project of a similar scope and client profile.&lt;br /&gt;
&lt;br /&gt;
The goals of the software firm are to maximize profit and to minimize the resolution time for critical incident, since the firm knows, that a larger number of overdue critical fixes would cause the bank to be unsatisfied over the long term.&lt;br /&gt;
&lt;br /&gt;
The goals can be summed up as follows:&lt;br /&gt;
* Bank – minimize SLA contract price, prevent long incident hotfix and resolution times&lt;br /&gt;
* Software firm – maximize revenue from SLA contract, prevent overstaffing and long critical resolution times&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Xkraj119|Jan Kratochvíl]] 18:17, 19 December 2014 (CET)~&lt;br /&gt;
&lt;br /&gt;
I must confess I am usually quite sceptical to the assignments like this one for a couple of reasons. First, it is very hard to measure such soft parameters like &amp;quot;psysical attraction&amp;quot; and keep it in touch with reality. Second, I am not sure if a random walk is the best way how to simulate people searching for a partner. And finally, do the goals solve a real problem or they just follow an artificial reality of the simulation? - [[User:Tomáš|Tomáš]] 00:26, 20 December 2014 (CET)&lt;br /&gt;
&lt;br /&gt;
I agree with your objections. Therefore I've defined a different task, one which is more in my area of expertise :-). As for the resource types efficiency, I feel that I can estimate them well since I have similar data available to me. What do you think? - [[User:Xkraj119|Jan Kratochvíl]] 10:30, 22 December 2014 (CET)~&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Xkraj119&amp;diff=7929</id>
		<title>Xkraj119</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Xkraj119&amp;diff=7929"/>
		<updated>2014-12-19T17:17:26Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Assignment==&lt;br /&gt;
*	Project name – Event Match-up Dynamics&lt;br /&gt;
*	Author – Jan Kratochvíl&lt;br /&gt;
*	Software used – NetLogo 5&lt;br /&gt;
*	Simulation type – Multi-agent model&lt;br /&gt;
== About the model ==&lt;br /&gt;
The target of the demonstration is to simulate the match-up process as happens in a closed, limited-time, in-person event, such as a concert or a birthday party.&lt;br /&gt;
=== The basic characteristics of the model are: ===&lt;br /&gt;
*	Every population member has two basic preference types – physical attraction and mental compatibility&lt;br /&gt;
*	Every population member has a specific sex assigned, as well as a sexual preference – heterosexual, homosexual, bisexual, asexual&lt;br /&gt;
*	The model is spatial. Population members interact with the nearest neighbors. After the interaction, they walk randomly until they find another actor. &lt;br /&gt;
*	The length of interaction between population members (can be zero) is based on their mutual physical attraction&lt;br /&gt;
*	After the interaction, both members score the other one. The score is a compound of physical attraction index and the mental compatibility index. The longer the interaction is, the more weight does the mental compatibility carries&lt;br /&gt;
*	The resulting score is a basis for decision about mating. Some members have no intention of mating, yet take part in interactions&lt;br /&gt;
*	The later it is in the game, the lower the score must be in order to be sufficient for mating&lt;br /&gt;
=== Model configurability ===&lt;br /&gt;
*	Minimum score to match-up&lt;br /&gt;
*	The pace with which does one’s standard lowers as the game reaches later stages&lt;br /&gt;
*	Weight of physical attraction/mental compatibility in scoring model&lt;br /&gt;
*	The initial spatial distribution of actors&lt;br /&gt;
== Goal variables ==&lt;br /&gt;
*	Median compatibility score of matched-up actors&lt;br /&gt;
*	Median number of turns for a match-up to happen&lt;br /&gt;
*	Median number of interaction it takes to reach a match-up&lt;br /&gt;
*	Percentage of actors able to find a match-up&lt;br /&gt;
== Goals of the simulations are: ==&lt;br /&gt;
*	Does the initial spatial distribution of actors significantly alter the median compatibility score of matched-up actors&lt;br /&gt;
*	What is the average of interactions needed to reach a match-up?&lt;br /&gt;
*	Does altering the number of actors with no mating intention increase the percentage of actors able to find a match-up?&lt;br /&gt;
*	How aggressively do need the actors’ standards need to lower in order for vast majority of actors to find a match-up?&lt;br /&gt;
&lt;br /&gt;
[[User:Xkraj119|Jan Kratochvíl]] 18:17, 19 December 2014 (CET)&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Xkraj119&amp;diff=7928</id>
		<title>Xkraj119</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Xkraj119&amp;diff=7928"/>
		<updated>2014-12-19T17:16:27Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Assignment==&lt;br /&gt;
*	Project name – Event Match-up Dynamics&lt;br /&gt;
*	Author – Jan Kratochvíl&lt;br /&gt;
*	Software used – NetLogo 5&lt;br /&gt;
*	Simulation type – Multi-agent model&lt;br /&gt;
== About the model ==&lt;br /&gt;
The target of the demonstration is to simulate the match-up process as happens in a closed, limited-time, in-person event, such as a concert or a birthday party.&lt;br /&gt;
=== The basic characteristics of the model are: ===&lt;br /&gt;
*	Every population member has two basic preference types – physical attraction and mental compatibility&lt;br /&gt;
*	Every population member has a specific sex assigned, as well as a sexual preference – heterosexual, homosexual, bisexual, asexual&lt;br /&gt;
*	The model is spatial. Population members interact with the nearest neighbors. After the interaction, they walk randomly until they find another actor. &lt;br /&gt;
*	The length of interaction between population members (can be zero) is based on their mutual physical attraction&lt;br /&gt;
*	After the interaction, both members score the other one. The score is a compound of physical attraction index and the mental compatibility index. The longer the interaction is, the more weight does the mental compatibility carries&lt;br /&gt;
*	The resulting score is a basis for decision about mating. Some members have no intention of mating, yet take part in interactions&lt;br /&gt;
*	The later it is in the game, the lower the score must be in order to be sufficient for mating&lt;br /&gt;
=== Model configurability ===&lt;br /&gt;
*	Minimum score to match-up&lt;br /&gt;
*	The pace with which does one’s standard lowers as the game reaches later stages&lt;br /&gt;
*	Weight of physical attraction/mental compatibility in scoring model&lt;br /&gt;
*	The initial spatial distribution of actors&lt;br /&gt;
== Goal variables ==&lt;br /&gt;
*	Median compatibility score of matched-up actors&lt;br /&gt;
*	Median number of turns for a match-up to happen&lt;br /&gt;
*	Median number of interaction it takes to reach a match-up&lt;br /&gt;
*	Percentage of actors able to find a match-up&lt;br /&gt;
== Goals of the simulations are: ==&lt;br /&gt;
*	Does the initial spatial distribution of actors significantly alter the median compatibility score of matched-up actors&lt;br /&gt;
*	What is the average of interactions needed to reach a match-up?&lt;br /&gt;
*	Does altering the number of actors with no mating intention increase the percentage of actors able to find a match-up?&lt;br /&gt;
*	How aggressively do need the actors’ standards need to lower in order for vast majority of actors to find a match-up?&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Xkraj119&amp;diff=7927</id>
		<title>Xkraj119</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Xkraj119&amp;diff=7927"/>
		<updated>2014-12-19T16:23:38Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: Created page with &amp;quot;TBD&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TBD&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Assignments_WS_2014/2015&amp;diff=7926</id>
		<title>Assignments WS 2014/2015</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Assignments_WS_2014/2015&amp;diff=7926"/>
		<updated>2014-12-19T16:23:24Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Assignments WS 2014/2015}}&lt;br /&gt;
&lt;br /&gt;
{{Ambox&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Please, put here your assignments. Do not forget to sign them. You can use &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt; (four tildas) for an automatic signature. Use Show preview in order to check the result before your final sumbition.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Ambox&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Please, strive to formulate your assignment carefully. We expect an adequate effort to formulate the assignment as it is your semestral paper. Do not forget that your main goal is a research paper. It means your simulation model must generate the results that are specific, measurable and verifiable. Think twice how you will develop your model, which entities you will use, draw a model diagram, consider what you will measure. No sooner than when you have a good idea about the model, submit your assignment. And of course, read [[How to deal with the simulation assignment/en|How to deal with the simulation assignment]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
In order to avoid possible confusion, please, check if you have added '''approved''' in bold somewhere in our comment under your submission. If there is no '''approved''', it means the assignment was not approved yet.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Assignments ==&lt;br /&gt;
[[xcesj04 ]]&lt;br /&gt;
&amp;lt;div&amp;gt;[[qnovm21 ]]&amp;lt;/div&amp;gt;&lt;br /&gt;
[[xpalj24]]&lt;br /&gt;
&lt;br /&gt;
[[xzasj00]]&lt;br /&gt;
&lt;br /&gt;
[[zhua00]]&lt;br /&gt;
&lt;br /&gt;
[[rock00]]&lt;br /&gt;
&lt;br /&gt;
[[kado00]]&lt;br /&gt;
&lt;br /&gt;
[[xgubk00]]&lt;br /&gt;
&lt;br /&gt;
[[xkraj119]]&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Assignments_WS_2014/2015&amp;diff=7925</id>
		<title>Assignments WS 2014/2015</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Assignments_WS_2014/2015&amp;diff=7925"/>
		<updated>2014-12-19T16:23:11Z</updated>

		<summary type="html">&lt;p&gt;Xkraj119: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Assignments WS 2014/2015}}&lt;br /&gt;
&lt;br /&gt;
{{Ambox&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Please, put here your assignments. Do not forget to sign them. You can use &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt; (four tildas) for an automatic signature. Use Show preview in order to check the result before your final sumbition.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Ambox&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Please, strive to formulate your assignment carefully. We expect an adequate effort to formulate the assignment as it is your semestral paper. Do not forget that your main goal is a research paper. It means your simulation model must generate the results that are specific, measurable and verifiable. Think twice how you will develop your model, which entities you will use, draw a model diagram, consider what you will measure. No sooner than when you have a good idea about the model, submit your assignment. And of course, read [[How to deal with the simulation assignment/en|How to deal with the simulation assignment]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
In order to avoid possible confusion, please, check if you have added '''approved''' in bold somewhere in our comment under your submission. If there is no '''approved''', it means the assignment was not approved yet.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Assignments ==&lt;br /&gt;
[[xcesj04 ]]&lt;br /&gt;
&amp;lt;div&amp;gt;[[qnovm21 ]]&amp;lt;/div&amp;gt;&lt;br /&gt;
[[xpalj24]]&lt;br /&gt;
&lt;br /&gt;
[[xzasj00]]&lt;br /&gt;
&lt;br /&gt;
[[zhua00]]&lt;br /&gt;
&lt;br /&gt;
[[rock00]]&lt;br /&gt;
&lt;br /&gt;
[[kado00]]&lt;br /&gt;
&lt;br /&gt;
[[xgubk00]]&lt;br /&gt;
[[xkraj119]]&lt;/div&gt;</summary>
		<author><name>Xkraj119</name></author>
		
	</entry>
</feed>