Request for Comments - Programmer's Saturation Scale

For the serious discussion of weighty matters and worldly issues. No off-topic posts allowed.

Moderators: Azrael, Moderators General, Prelates

dimhoLt
Posts: 2
Joined: Thu Jan 24, 2013 5:51 pm UTC

Request for Comments - Programmer's Saturation Scale

Postby dimhoLt » Thu Jan 24, 2013 7:18 pm UTC

Hello, and thanks for reading this thread.

Summary and Reason for This Post
Speaking for myself as a programmer, I am in a profession requiring much insight into complex technological systems, their workings and similar things in which someone in another profession may have a difficult time assessing the work involved to complete a task. This often leads to the work done being:
  1. Taken for granted.
  2. Not properly understood.
While this, of course, is natural with aforementioned professional situations, I am hoping to create some sort of easily understandable scale for people in other professions to understand the current work load of their development team. With luck, this scale could also be applied to other professions where non-professionals may have a hard time understanding the work involved for the professionals performing them.

What I'm here to talk about and discuss is something that does not only occur in software engineering / programming as a profession, but since that is the case from which these thoughts have arisen, it will also be the case I use in my examples.

As such, the reason for this post is to present a solution to this problem and to request your thoughts, comments and feedback to my solution.

The Scale
I call this scale the Programmer's Saturation Scale, in which superior staff or others (e.g. company presidents, clients etc) without technical insight can easily get a single value telling how much work is currently on their development team.

My suggestion for the workings of this scale is as follows:
  • 100% Saturation
    100% Saturation is achieved when every single developer on the team has a pre-set timespan of fully occupied work time ahead of them. 100% Saturation is meant to relay that no more tasks can be added without either disrupting current schedules or expecting a wait for the task to be finished.
  • 0% Saturation
    0% Saturation indicates that the developers have nothing to to whatsoever.
  • Optimal Timespan
    The Optimal Timespan is what defines 100% Saturation. A software maintenance team who's main focus lie in system enhancement and enrichment may have an Optimal Timespan of maybe four weeks. A team working with Scrum or similar methods may have an Optimal Timespan of a single week, allowing for short, timely sprints and release on a weekly basis, while a game developer producing a new title may have an Optimal Timespan of six months.
The scale is designed to always have tasks ahead; every week, one week's worth of new tasks are expected to be added to the work load. It is also designd to correspond to the decided tasks to perform at a given time - long-term planning that is not yet detailed is not included in this scale.

This means that when there is always the set amount of work (i.e. the Optimal Timespan), the team can work optimally and get the best amount of work done with the highest quality, without long waits or worn-out developers.

With this scale, an optimal value can be presented to the company lead, clients, or similar other individuals to optimize the planning of tasks, scheduling and understanding of the current workload, while still customizing the situation after the development team's own methodologies and work situation.

The scale is not intended to replace hourly work logs, long-term planning of future projects or anything corresponding to such, but to complement a continuously working development team with a value showing the current work load.

Final Words
Having seen situations where double full-time work is expected, all-nighters are taken for granted and still being unable to relay that this is too much work to have for more than a short time, I hope that this scale will easily communicate the situation for the, in this case, developers. It is easy to understand "Our current Saturation level is at 250%" for someone who does not understand what kind of performance is required per-task. It is also easy for an issue control system to always generate this value.

I would greatly appreciate your thoughts on this, both from developers who would be the users of this system, and from other professionals if they would consider this value to be easily understandable.

Many thanks for reading this post, and for your thoughts and views.

Best regards,
dimhoLt

User avatar
Azrael
CATS. CATS ARE NICE.
Posts: 6491
Joined: Thu Apr 26, 2007 1:16 am UTC
Location: Boston

Re: Request for Comments - Programmer's Saturation Scale

Postby Azrael » Thu Jan 24, 2013 9:13 pm UTC

It's called Resource Loading, and it's already a well understood concept in project management.

If you drive a schedule that needs 400 hours of work done by 5 employees in 5 days, you've created a 200% resource load for each of them (most loading assumes a 40 hour work week, and most models are considered junk if you load all the way to 100% as people have non-project related meetings etc). What thresholds are used to determine acceptable overload percent and duration and going to vary by company, but if no one is thinking along those lines ... well, you need to hire program/project managers. Or at least send someone to a PMP seminar.

It can also be difficult to convince people that something is 400 hours worth of work. But again, there are project management tips and tricks (fairly mundane ones -- ask 3 relevant people, average the answers) that can help. The best tool is experience -- workers with backgrounds at companies that care about managing risk, schedule and budgetary performance will have fairly a well-tuned ability to estimate, regardless of the project management. The hardest part is getting non-technical staff to listen, but that's what well-executed estimates are there for.

As for making sure people have work, ever heard of a Gantt Chart? When you create a breakdown of the tasks required for any project, and then assign them a time frame that tracks their inter-dependencies, it's not a stretch to assign resources to each task. And out pops resource loading. There are plenty of ways to do this -- Microsoft Project for one, although there are innumerable competitors. Heck, it's not hard to do in excel.

So yeah, don't try to reinvent the wheel.

dimhoLt
Posts: 2
Joined: Thu Jan 24, 2013 5:51 pm UTC

Re: Request for Comments - Programmer's Saturation Scale

Postby dimhoLt » Thu Jan 24, 2013 9:43 pm UTC

Many thanks for your information, Azrael. I tried to find some sort of model of what I was looking for, but I guess my terminology or specifications weren't clear enough. I figured it should be available somewhere.

I'll look more into Resource Loading and the Gantt Chart.

Tyndmyr
Posts: 11443
Joined: Wed Jul 25, 2012 8:38 pm UTC

Re: Request for Comments - Programmer's Saturation Scale

Postby Tyndmyr » Thu Jan 24, 2013 10:56 pm UTC

Azrael wrote: and most models are considered junk if you load all the way to 100% as people have non-project related meetings etc


This is very important. Coders do non coding stuff from time to time, people get sick, people take vacations, etc, etc. And hell, something is bound to take longer than it should. Anything over about 80% is pretty optimistic, in my experience.

nitePhyyre
Posts: 1280
Joined: Mon Jul 27, 2009 10:31 am UTC

Re: Request for Comments - Programmer's Saturation Scale

Postby nitePhyyre » Fri Jan 25, 2013 1:51 am UTC

What value does saying "I am at 200% saturation with an optimal time of 1 week" have over saying "That'll take 2 weeks and you want it done in 1"?
sourmìlk wrote:Monopolies are not when a single company controls the market for a single product.

You don't become great by trying to be great. You become great by wanting to do something, and then doing it so hard you become great in the process.

User avatar
Azrael
CATS. CATS ARE NICE.
Posts: 6491
Joined: Thu Apr 26, 2007 1:16 am UTC
Location: Boston

Re: Request for Comments - Programmer's Saturation Scale

Postby Azrael » Fri Jan 25, 2013 3:39 am UTC

nitePhyyre wrote:... over saying "That'll take 2 weeks and you want it done in 1"?

Ignore his made up jargon.

Saying a task will take 2 weeks and you want it done in 1 doesn't address most of the variables. What if you double the number of people? What if the duration is months instead of weeks? The salient point is that you have to track both individual and company capacity.

One person could work double for one week. But probably not for one month. Similarly, two people could do that work in one week working normal hours. But the company may not have someone that's completely free. Or the task might not be divisible between two people without adding in inefficiencies that increase the total amount of effort, if splitting is feasible at all.

Again, this is what project management is. And there's a reason companies pay people good money to do it.

shvedsky
Posts: 13
Joined: Mon Jan 21, 2013 6:39 am UTC

Re: Request for Comments - Programmer's Saturation Scale

Postby shvedsky » Fri Jan 25, 2013 7:02 am UTC

As a programmer, I never was in a situation where I had less than "100% saturation."

User avatar
dudiobugtron
Posts: 1098
Joined: Mon Jul 30, 2012 9:14 am UTC
Location: The Outlier

Re: Request for Comments - Programmer's Saturation Scale

Postby dudiobugtron » Mon Jan 28, 2013 4:35 am UTC

dimhoLt wrote:Speaking for myself as a programmer, I am in a profession requiring much insight into complex technological systems, their workings and similar things in which someone in another profession may have a difficult time assessing the work involved to complete a task. This often leads to the work done being:
  1. Taken for granted.
  2. Not properly understood.
While this, of course, is natural with aforementioned professional situations, I am hoping to create some sort of easily understandable scale for people in other professions to understand the current work load of their development team. With luck, this scale could also be applied to other professions where non-professionals may have a hard time understanding the work involved for the professionals performing them.


I think you're wrong to suggest that it's the same for other professions.
Programmers (unlike doctors, teachers, etc...) perform a service role for other professions, so there is a tendency to treat them like they are 'less important' even though they require the same level of skill/education etc....
Programmers (unlike doctors, teachers, etc...) also do work that most people are totally unfamiliar with, and so have very little understanding of what is actually involved.

There are other professions with these same sort of problems (plumbers, lawyers, consultants) etc... but these are usually employed as contractors, whereas programmers are more often employed in-house. Also, it's commonly understood that these professions charge lots of money and take ages to deliver, so not as much is expected of them.

All-in-all, I think programmers are right at the top when it comes to being taken for granted, and not being understood.
That said, in my experience, they're also right at the top when it comes to complaining about it. ;)
Image

leady
Posts: 1592
Joined: Mon Jun 18, 2012 12:28 pm UTC

Re: Request for Comments - Programmer's Saturation Scale

Postby leady » Mon Jan 28, 2013 11:13 am UTC

Persecution complex?

You'll find, quite depressingly that a lot of the time in the real world you'll end up on projects run by someone who has no conceptual understanding of the way things work. Personally I think this is utterly barmy but is not solely an IT problem. What you do get in IT is far more PMs more than happy to own up to not understanding what they are managing - no one would hire a construction PM without understanding of construction.

On the specific question, the best chart for this type of thing is a good old agile estimated velocity vs burn down chart. The problem I always see is rigor in application, particularly in bigger programmes

User avatar
yurell
Posts: 2924
Joined: Sat Nov 13, 2010 2:19 am UTC
Location: Australia!

Re: Request for Comments - Programmer's Saturation Scale

Postby yurell » Mon Jan 28, 2013 11:26 am UTC

"Never attribute to malice that which can be adequately explained by stupidity."
-Hanlon's Razor
cemper93 wrote:Dude, I just presented an elaborate multiple fraction in Comic Sans. Who are you to question me?


Pronouns: Feminine pronouns please!

HungryHobo
Posts: 1708
Joined: Wed Oct 20, 2010 9:01 am UTC

Re: Request for Comments - Programmer's Saturation Scale

Postby HungryHobo » Tue Jan 29, 2013 2:06 pm UTC

Azrael wrote:
nitePhyyre wrote:... over saying "That'll take 2 weeks and you want it done in 1"?

Ignore his made up jargon.

Saying a task will take 2 weeks and you want it done in 1 doesn't address most of the variables. What if you double the number of people?


Depends if the work is 2 totally seperate things taking 40 hours each with no shared information or one task which you want to split to 2 people. if the latter you might end up with the opposite of the desired effect if you're not careful.
Give a man a fish, he owes you one fish. Teach a man to fish, you give up your monopoly on fisheries.

User avatar
Azrael
CATS. CATS ARE NICE.
Posts: 6491
Joined: Thu Apr 26, 2007 1:16 am UTC
Location: Boston

Re: Request for Comments - Programmer's Saturation Scale

Postby Azrael » Tue Jan 29, 2013 10:22 pm UTC

HungryHobo wrote:
Azrael wrote:Saying a task will take 2 weeks and you want it done in 1 doesn't address most of the variables. What if you double the number of people? ...
Depends if the work is 2 totally seperate things taking 40 hours each with no shared information or one task which you want to split to 2 people. if the latter you might end up with the opposite of the desired effect if you're not careful.

Whether the tasks can be done in parallel or have to be serial, whether there are two resources both capable of doing the work and to what degree the inefficiency of the split effects the total time required are:

a) Exactly what project managers do, and
b) Are the unaccounted for variables illustrated by the question "what if?"

ctdonath
Posts: 198
Joined: Wed Feb 08, 2012 2:40 pm UTC

Re: Request for Comments - Programmer's Saturation Scale

Postby ctdonath » Wed Jan 30, 2013 3:17 pm UTC

dudiobugtron wrote:Programmers (unlike doctors, teachers, etc...) also do work that most people are totally unfamiliar with, and so have very little understanding of what is actually involved.


"Any sufficiently advanced technology is indistinguishable from magic."
We programmers sit in small chambers for prolonged periods, gesturing at inanimate objects which obey our every command. When requested to perform a task, often an important and complex request is performed within minutes, while a petty simplistic request can cause consternation for months. The general public may share an alleged understanding and vocabulary about this technology, but on the whole hasn't a clue what those terms mean. Indistinguishable from magic.

I sometimes contend I'm a "angelic choreographer", directing the dance of a great many non-corporeal beings upon the head of a pin.

User avatar
Red Hal
Magically Delicious
Posts: 1445
Joined: Wed Nov 28, 2007 2:42 pm UTC

Re: Request for Comments - Programmer's Saturation Scale

Postby Red Hal » Thu Jan 31, 2013 6:06 pm UTC

At the moment these things are quite germane to my occupation.

To give you some actual figures we start with a maximum efficiency of 80% Thus we expect 32 hours of available work time in a 40 hour week. Next, we add in - for staff not dedicated to projects - figures which allow for dealing with incidents and emergencies, and maintenance - by which we mean the things a person does so they don't get incidents and emergencies. We add those figures together, and express them as a "baseline load". When subtracted from 32 that gives us the time remaining for project work

There are a shade under 100 staff in our department, and the baseline load for most of them is around 35-40%, this means that around 19 hours per person per week are available for project work. To make things easy we round it up to 20. Therefore, we consider a person to be 100% loaded if they have 20 hours of project work assigned to them per week. If a task requires 5 "resource days" (that's 40 hours) of effort, then we need to allow two weeks elapsed for that task. If we want it done in a week and it is not something two people can work on, then we need to arrange to hand off that person's baseline load to another team member for the week to allow them to work full time on the task, and accept that the person being handed off to has zero availability that week.

Ideally we'd run everyone at 100% adjusted loading (remember we've already factored in an 80% figure so that's readily achievable). In practice projects, like network traffic, are bursty in nature, and there aren't enough of them to level out.

dimhoLt, I suggest you take a look at ITIL and PRINCE2 methodologies. Both are clearly defined, both have a wealth of information available for free on the web, and both are used today.

However, to come back to your original thoughts, it is important to remember that "We're Not Scotty"*. It simply isn't good enough in today's environment to respond to a professional saying "It'll take three weeks" with the comeback "You've got 12 hours". That may work in an emergency when it's all hands to the pump and the object is to stop the boat sinking (to carry the metaphor a bit further than intended), but it doesn't work in a project office.

The easiest way to communicate this to someone who doesn't understand the subject matter is to indicate how long a team's current workload would take to complete if no other work came in.

"I understand your requirements, but our team is 100% allocated for the next five weeks. Given your estimates, we reckon that'll take three weeks of elapsed time to complete, so we can have it for you in two months. If you need it earlier than that then you'll either need to tell us which of your other work we can push back to make space for this, or pay for additional temporary contract staff to handle the extra workload. Your choice."



*If that isn't on tvtropes it really should be.
Lost Greatest Silent Baby X Y Z. "There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain..."

User avatar
dudiobugtron
Posts: 1098
Joined: Mon Jul 30, 2012 9:14 am UTC
Location: The Outlier

Re: Request for Comments - Programmer's Saturation Scale

Postby dudiobugtron » Thu Jan 31, 2013 8:21 pm UTC

Image

User avatar
Red Hal
Magically Delicious
Posts: 1445
Joined: Wed Nov 28, 2007 2:42 pm UTC

Re: Request for Comments - Programmer's Saturation Scale

Postby Red Hal » Thu Jan 31, 2013 8:59 pm UTC

On topic: The tldr of my previous post is that you can indicate to someone how loaded your team is by expressing it as the length of time to complete their current work queue at 100% loading. This can be easier to grasp than actual loading and also relates to effort required for the work being requested.

Comment on previous post: Argh! Browser tab explosion!
Lost Greatest Silent Baby X Y Z. "There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain..."


Return to “Serious Business”

Who is online

Users browsing this forum: No registered users and 7 guests