E-factor
March 7, 2008
Today, Peopleware taught me about the E-Factor.
The environmental factor is a simple measure: count the number of uninterupted hours you have at work during an average work week, and divide it by the number of hours of office presence. The idea behind this ratio is to give a measure of how much of your office time is spent actually producing. For a software developer, producing means writing code or thinking about it. Both activities require from the developer to be in a state that psychologists call flow, an almost meditative state of deep and active concentration.
I love flow. That's the reason I became a software developer.
And I have felt growingly frustrated about it during the past year. Let me tell you my story...
A number of things happened at work over the past 2 years: we switched place, and I got to sit just beside a heavily trafficked passage in the office. I sat with my back toward visitors so I never new whether someone standing behind me was just passing or trying to get my attention. I should mention that I and the other developers are sitting in a large open-space and are surrounded by groups of testers, managers and other development teams. I have at any time some 30 persons within hearing reach around me. In the middle of the floor lies the printer room (right in my back) and the dinning room (on the right side of my back) that people enter and leave in an almost uninterrupted stream. I have been working there for a few years now and I am sitting on quite much system knowledge, so people tend to visit me quite often to ask for insights and help. My software team is quite small and has a rather high turnover so I also have to be available to the new developers and support them when needed.
At the same time, I became the main developer on a truly complex project consisting in designing and implementing various rates to measure the growth and return of portfolios of funds. That was a tricky task, involving financial maths and an expert understanding of a complex piece of software for fond trading. In fact it was more of a research project, since no one knew how to actually implement those rates.
This project required flow. High quality flow.
Now, if you have read Peopleware or if you just have a bit of experience in software development, you probably already see where I am heading.
The project's deadline had been fixed ahead of time, before we even understood the true complexity of the task. Some of the rates were put in production upon the deadline and fundamental flaws in their very definition were quickly identified when customers started calling our support center after seeing crazy numbers on their account. From then on the project became a race to quickly re-think and re-implement those rates. That put a lot of pressure on me. I got chronicly stressed, slept badly, became distant from my colleagues. I was showing symptoms of getting worn out.
Meanwhile, my working environment hadn't changed. I have measured my E-factor this week and got 0.2. It's bad. It's not nearly close to the level required by the situation.
Peopleware mentions 0.4 as an acceptable level. A lead developer of an agile team reports an amazing 0.8 here.
With those hard numbers in hands, I have clear arguments to try once more to tell my management that our office structure is not adapted to software development.
The environmental factor is a simple measure: count the number of uninterupted hours you have at work during an average work week, and divide it by the number of hours of office presence. The idea behind this ratio is to give a measure of how much of your office time is spent actually producing. For a software developer, producing means writing code or thinking about it. Both activities require from the developer to be in a state that psychologists call flow, an almost meditative state of deep and active concentration.
I love flow. That's the reason I became a software developer.
And I have felt growingly frustrated about it during the past year. Let me tell you my story...
A number of things happened at work over the past 2 years: we switched place, and I got to sit just beside a heavily trafficked passage in the office. I sat with my back toward visitors so I never new whether someone standing behind me was just passing or trying to get my attention. I should mention that I and the other developers are sitting in a large open-space and are surrounded by groups of testers, managers and other development teams. I have at any time some 30 persons within hearing reach around me. In the middle of the floor lies the printer room (right in my back) and the dinning room (on the right side of my back) that people enter and leave in an almost uninterrupted stream. I have been working there for a few years now and I am sitting on quite much system knowledge, so people tend to visit me quite often to ask for insights and help. My software team is quite small and has a rather high turnover so I also have to be available to the new developers and support them when needed.
At the same time, I became the main developer on a truly complex project consisting in designing and implementing various rates to measure the growth and return of portfolios of funds. That was a tricky task, involving financial maths and an expert understanding of a complex piece of software for fond trading. In fact it was more of a research project, since no one knew how to actually implement those rates.
This project required flow. High quality flow.
Now, if you have read Peopleware or if you just have a bit of experience in software development, you probably already see where I am heading.
The project's deadline had been fixed ahead of time, before we even understood the true complexity of the task. Some of the rates were put in production upon the deadline and fundamental flaws in their very definition were quickly identified when customers started calling our support center after seeing crazy numbers on their account. From then on the project became a race to quickly re-think and re-implement those rates. That put a lot of pressure on me. I got chronicly stressed, slept badly, became distant from my colleagues. I was showing symptoms of getting worn out.
Meanwhile, my working environment hadn't changed. I have measured my E-factor this week and got 0.2. It's bad. It's not nearly close to the level required by the situation.
Peopleware mentions 0.4 as an acceptable level. A lead developer of an agile team reports an amazing 0.8 here.
With those hard numbers in hands, I have clear arguments to try once more to tell my management that our office structure is not adapted to software development.