Slashdot Mirror


Researchers Test Developer Biometrics To Predict Buggy Code

rjmarvin writes: Microsoft Research is testing a new method for predicting errors and bugs while developers write code: biometrics. By measuring a developer's eye movements, physical and mental characteristics as they code, the researchers tracked alertness and stress levels to predict the difficulty of a given task with respect to the coder's abilities. In a paper entitled "Using Psycho-Physiological Measures to Assess Task Difficulty in Software Development," the researchers summarized how they strapped an eye tracker, an electrodermal sensor and an EEG sensor to 15 developers as they programmed for various tasks. Biometrics predicted task difficulty for a new developer 64.99% of the time. For a subsequent tasks with the same developer, the researchers found biometrics to be 84.38% accurate. They suggest using the information to mark places in code that developers find particularly difficult, and then reviewing or refactoring those sections later.

18 of 89 comments (clear)

  1. Why is it always developers? by i+kan+reed · · Score: 2

    Every time I hear about a terrifyingly invasive means of "improving performance" its targeted at developers. Is it just selection bias, or does the world actually hate us?

    1. Re:Why is it always developers? by dave562 · · Score: 3, Insightful

      The world hates putting up with buggy code.

    2. Re:Why is it always developers? by K.+S.+Kyosuke · · Score: 4, Interesting

      And what about managers who steer the development effort in a direction highly likely to produce buggy code, those won't get measured?

      --
      Ezekiel 23:20
    3. Re:Why is it always developers? by netsavior · · Score: 5, Insightful

      because the average judge/jury/CEO/consumer/manager has no idea how to write code.

      They can understand how a toilet is cleaned, how a sale is made, how a 1099 is filled out, how a fire drill works, how a sandwich is put together, how oil is changed, etc... but Coding might as well be a dark art.

      Developers are part of a very narrow segment which has no reliable Key Performance Indicators.
      Part of that is developers are smart enough to game any system, because they can think in algorithms.

      Want to track productivity on Lines of code? Fine, Developers can do NO WORK, and produce TONS of code
      Want to track productivity on Number of defects introduced? Fine, doing NO WORK is the baseline for perfect.
      Want to track productivity on Number of defects fixed? Fine, through the magic of hand wavery, defects can be found and fixed with no actual work happening

      Compare that to well-defined Key Performance Indicators for sales... Bring in X dollars of sales, your performance is X.

      CEOs HATE things they cannot measure... which means CEOs are a natural enemy of Developers.

    4. Re:Why is it always developers? by bobbied · · Score: 2

      It's because software sucks, and no one has any real idea what to do about it.

      You are more right than you know. Where writing software is a skill that most can develop, the really good developers are more a cross between engineers and artists. They are more like architects, where the form and function are both of high importance because having software that "works" (in that it does everything required [engineering]) and having software that is "workable" (in that it is easy to use [artist]) are worlds apart. Finding developers that do both engineering and art is rare.

      It's not just the GUI interface, but ANY "interface" that needs to be usable, functional, simple to understand and complete. Designing an interface that works is easy, making it functional and simple to understand is much harder, and then making sure it is complete (does enough, but not too much to make it complex) is the real art.

      --
      "File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
    5. Re:Why is it always developers? by znrt · · Score: 2

      i hit 50 last sunday and been a developer since i can remember, and i still love my profession but the "guild" has changed an awful lot, from once being a peculiar bunch to the herd it mostly is today. most of my colleagues are much younger than me and ... what can i say ... they are often so brainwashed with corporate bullshit they break my heart almost daily. holy shit, they even blog about it! it's so depressing, it makes me wanna cry. :'(

      sign'o'times, i guess. i can perfectly believe many of those sheep will cheerfully allow you to strap an eyetracker on them to check their nominal productivity.

      http://www.picturesnew.com/med...

    6. Re:Why is it always developers? by fuzzyfuzzyfungus · · Score: 2

      Every time I hear about a terrifyingly invasive means of "improving performance" its targeted at developers. Is it just selection bias, or does the world actually hate us?

      Mostly because they are a newer profession and a trickier one to quantify.

      Time and motion studies, along with 'scientific management' were already a serious hit in terrifyingly invasive performance enhancement for blue collar labor around the turn of the 20th century(Taylor and the Gilbreths being the poster children, with many successors). The workers who haven't been replaced by robots yet are likely still subject to a descendant of it. Though less amenable to automation, service sector jobs are also rationalized more or less as tightly as available technique allows.

      Software development is still a work in progress because it only started existing comparatively recently and because it takes more technology to dismiss any "Oh, what we do here is unquantifiable skilled craftsmanship" positions.

      It is selection bias, in that you apparently haven't heard of it happening to basically everyone it can reach; but the world does actually hate you, and is actively working on making software development absolutely as soul crushing as seems economically desirable.

    7. Re:Why is it always developers? by Medievalist · · Score: 2

      And what about managers who steer the development effort in a direction highly likely to produce buggy code, those won't get measured?

      Of course they get measured. In the long term if they deliver too many screwed up projects, their superiors stop giving them projects.

      Ultimately it is the developer's responsibility to push back against stupid managers and give them honest feedback about what can and cannot be done.

      I would like to know where the entrance is located to this magically meritocratic land you speak of, It is obviously not Earth.

      You'll need an invisible hand to turn the invisible doorknob.

    8. Re:Why is it always developers? by david_thornley · · Score: 2

      You do realize that we've done that over and over. We keep coming up with programs that do code generation. We introduced automatic programmers that represented machine codes with mnemonics and kept track of memory locations (these are now called assemblers). We introduced programs that would take scientific calculations (FORTRAN) and business logic (COBOL). We introduced "fourth generation languages" in the 1980s. All of these, and many more, were honest attempts to remove the need for programmers. They made life easier for programmers, but failed at removing the need for programmers. Windows Workflow Foundation isn't going to work any better.

      There is a step in any programming process where somebody has to translate ambiguous specifications into some sort of formal, precise, notation. Once we have the formal, precise, notation, we can have programs take it the rest of the way. We need an actual human to do that translation, though, and that human is a programmer no matter what title or position. If architects can create formal specs, they're programming. If it takes code monkeys, they're programming.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  2. Hooked up to all the equiptment by gunner_von_diamond · · Score: 2

    the researchers summarized how they strapped an eye tracker, an electrodermal sensor and an EEG sensor

    I'm sure being hooked up to something similar to a polygraph doesn't make a developer more stressful at all. Was the fact that they had all this equiptment hooked up to them a factor in their statistics?

  3. you dont need biometrics for this at all. by nimbius · · Score: 5, Insightful

    When your developers cringe at a project, when they encounter a subroutine or callback that literally makes them groan, you've found exactly what needs to be refactored. if you find a python wrapper around a godforsaken class, or find explitives cursing a dead gods name in a forgotten universe, thats the code that needs your attention. Project managers, section leaders, whoever has direct line-of-sight communication with the dev pit needs to pay more attention.

    the problem is 'refactoring' is a lie. as a DevOps (christ i hate that fucking word) engineer, I've been faced with rotting festering codebases for years in my career on a daily basis. the issue is business priorities interfering with good coding practices. I and 2 junior devs might want to go rip up a few thousand lines of horror-code to make everyone more productive, but we get denied. why?:

    1. downtime is unacceptable for this application. this code controls so much, does so many things, and is so obscure (say it with me, payments processing subsystem) that to do ANYTHING to it is literally worse than pistol whipping the CEO's daughter.
    2. New New NEW! we need to get in those swim lanes and stand up in those scrums nice and straight so we can deliver optimum ROI to our dear customers! who cares if the system crashes 5 times a month because this module is satans petrified asscrack, google just launched their new $app so our new $cloud_app_pro needs to go live NOW!.
    3. we had the resources, but uber elite coders in our ranks were ganked to other projects months ago. they havent seen the code in 3 months, and we're sure they'll be along to help us again once they put in their 2 weeks and show up in flip flops for the knowledge transfer.
    4. you were ganked from the refactor project and are now plugging away at an irritating new web 9.0 cash money matic piece of code that marketing wont stop skullfucking and your boss cant deliver fast enough. Catch this rabbit though and you'll be able to sit down and think through...wait....what was the refactoring project about again? oh christ is that CVS?

    what this technology will get used for
    efficiency sampling in your dev groups. eye tracking and biometrics will now subtly be included in SCRUM/ITIL/six sigma/devops/management wankfest.

    --
    Good people go to bed earlier.
  4. 64.99%, 84.38%, Really? by DrJimbo · · Score: 4, Interesting

    They tested 16 developers and gave statistics with four significant figures. I think you would need to test at least 100,000,000 developers to get such precise measurements. Who do they think they are? Dr. Spock on Star Trek?

    --
    We don't see the world as it is, we see it as we are.
    -- Anais Nin
  5. Re:64.99%, 84.38%, Really? by bobbied · · Score: 2

    They tested 16 developers and gave statistics with four significant figures. I think you would need to test at least 100,000,000 developers to get such precise measurements. Who do they think they are? Dr. Spock on Star Trek?

    Naw, they just used a really accurate ruler, made each measurement 10 times and averaged their results...

    You make an excellent point. There is no indication in the fine article about how accurate their results could be statistically, and given their really small sample size it doesn't seem likely 4 significant digits is justified.

    --
    "File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
  6. who the hell wrote this crap?!! by Thud457 · · Score: 5, Funny

    well duh, that vein on my forehead starts to throb and my eye starts to twitch when I read dumb code.

    oh wait, that was my commit

    --

    the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff

  7. uh huh by Charliemopps · · Score: 2

    Example?

    That's where we're at?
    I see this garbage all the time... and I never understand it. Growing up my father ran a factory and was damned good at it. His people showed up on time, did great work, had low scrap and were very productive. How did he manage this amazing feat? Minders that followed you everywhere in the factory? Discreet blood samples taken hourly? No...

    They had stats. That's it. You produce X parts per week. Go way above that get a bonus, go way bellow that, you get fired. If everyone is getting bonuses the stats would rise... if everyone was getting low stats they'd first check for procedural problems that might be hindering peoples work and baring that they'd lower their expectations. It worked marvelously well... people would think of ways to go faster and bring them up... because it meant a bonus until everyone else caught on. Anything that made production harder was immediately reported because people wanted their bonus.

    Damn near every successful factory in the country works this way. Do the same thing for code. What my father always said was "They could spend 7hrs in the bathroom every day... I don't care... if they can come out at hit 1000% efficiency that last hour to make up the difference it's fine with me. But they better keep in mind their peers are going to eventually figure out how they pulled it off and change the curve."

  8. This misses two of the biggest developer problems: by jeffb+(2.718) · · Score: 3, Interesting

    1) Arrogance. You know that average developers have a hard time with some kinds of code, but you're a superprogrammer, and you don't have those problems. If someone decides later that there's something wrong with your code, well, they should've gotten their requirements straightened out before they told you to go and build it. The only time you lose your cool is when you have to deal with idiot managers, analysts, or users.

    1) Complacency. You've been pounding on this code forever, and you just don't care any more. Yeah, there'll be bugs, people will yell, they'll get fixed. That's just the way development goes. Why get worked up about it?

  9. Re:64.99%, 84.38%, Really? by Anonymous Coward · · Score: 4, Funny

    I think it the extra bogus precision has something to do with the conversion between Imperial and Metric developers.
    (Oh, and something something dark side.)

  10. Programming CAN be judged by elgatozorbas · · Score: 2

    They can understand how a toilet is cleaned, how a sale is made, how a 1099 is filled out, how a fire drill works, how a sandwich is put together, how oil is changed, etc... but Coding might as well be a dark art.

    Disclaimer: I am in hardware myself and may completely miss the point here. However, our software/firmware folks do agile programming involving dividing programming problems into pieces which are assigned to programmers, followed-up on large whiteboards and being daily discussed in "scrum meetings" etc. (I may be confusing some concepts here but that is of less importance). The point being that your statement, that programming is some sort of unique dark-art-which-cannot-be-measured-by-managers, appears untrue to me and, honestly, rather pedantic. What these guys are doing is quite measurable. Maybe not by a silly measure like "lines of code", but by the measure of number of problems being solved, having a complexity that apparently everyone of them agrees on.

    Indeed, the CEO doesn't know the exact details of how this works, but neither does he personally count the number of cleaned toilets.