Successfully reported this slideshow.
Your SlideShare is downloading. ×

Exploring the Causes of Frustration for Software Developers

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Exploring the Causes of Frustration for Software Developers

  1. 1. Exploring Causes of Frustration for Software Developers Denae Ford and Dr. Chris Parnin North Carolina State University @denaeford
  2. 2. 2 How many of you get frustrated? When is the last time you were frustrated?
  3. 3. 3 Source: http://goo.gl/v0CMhN Source: http://goo.gl/rUaoYb Source: http://goo.gl/4ju26f Source: http://goo.gl/UArPjK
  4. 4. 4 Source: http://goo.gl/PIVv28
  5. 5. 5 Frustration is… “An interference with the occurrence of an instigated goal- response at its proper time in the behavior sequence” (Dollard, 1939) An obstacle encountered in pursuit of an expected goal.
  6. 6. 6 Athletes do this because they want to. Source: http://goo.gl/ES9pfx
  7. 7. 7 Background • Frustration in other fields leads to low retention(Garner, 2010) • Tools for detecting frustration(Rodrigo, 2009) • Affects engagement and negative learning outcomes for developers in the classroom (Grafsgaard, 2013; Hansen, 2007) • Outlined the landscape of frustration aside from memoirs(Eisenstadt, 1997)
  8. 8. 8 Survey Asked developers to fill out a 16-question survey Ranked severity of frustrating programming tasks on Likert scale Open card sort on one question: When is the last time you were frustrated?
  9. 9. 9 Participant Pool Participants recruited through CS Forums and mailing lists 45 Self- Identified developers 23 Students 12 Industry employees 10 Both Industry and Student
  10. 10. 10 11 Causes 1. Mapping Behavior 2. Programming Tools 3. Size 4. New Project Adjustment 5. Unavailability of Resources 6. Programming Experience 1. Simple Problem 2. Fear of Failure 3. Internal Hurdles 4. Limited Time 5. Peers
  11. 11. 11 Mapping Behavior to Cause “I was frustrated when I couldn’t figure out why there was a random gap of space on my website...”
  12. 12. 12 New Project Adjustment “I was trying to set up some software for a study I’m working on. I expected some configuration obstacles, but I became frustrated...”
  13. 13. 13 Unavailability of Resources “The server I needed for my files was not letting me log in and the only person who could fix it was too busy working on something else.”
  14. 14. 14 How did you deal with that frustration?
  15. 15. 15 New Norm Source: http://goo.gl/PThd8T “My work revolves around it, so it’s frequent...”
  16. 16. 16 What now? • Analyze coping mechanisms • Expand survey with ranking questionnaire • Multipliers: determine which causes occur in combination with others • Encourage tools to monitor frustration for developers
  17. 17. Problem Space
  18. 18. 18 Contact Info Denae Ford North Carolina State University http://denaeford.me http://www.buzzfeed.com/dford3/11-signs-of-a-frustrate-programmer-197vz dford3@ncsu.edu @DenaeFord
  19. 19. MORE CAUSES OF FRUSTRATION The following slides were not included in original presentation but cover other causes.
  20. 20. 20 Programming Tools “I’ve been trying to transition to using an IDE I never have before...”
  21. 21. 21 Size 1) Large goal spaces, high cognitive complexity: Where do I begin? 2) Gulf of completion: I’ve come a long way but there is a little thing blocking me 3) Large artifacts: There’s so much to understand.
  22. 22. 22 Simple Problem “Inability to code something that I know should be simple.”
  23. 23. 23 Programming Experience “I had to code something in Perl and I didn’t know the language syntax.”
  24. 24. 24 Fear of Failure “It builds a strong sense of anxiety. I feel like I may not solve the issue...”
  25. 25. 25 Internal Hurdles “The problem that I faced with frustration is I tend to procrastinate...”
  26. 26. 26 Limited Time “I had to deal with an ambitious project in a limited time frame.”
  27. 27. 27 Peers “Peers were terrible programmers, less experienced, and refused to use libraries/patterns to make things easier... ”

Editor's Notes

  • By show of hands how many of you get frustrated?

    So before we start. I want you all to think of the last time you were frustrated. It could’ve been this morning with getting your code to work , this week trying to get a paper submitted, or whenever.

    Keep that memory that in your mind we are going to come back to that later.
  • The life of a Software Developer is pretty exciting. Don’t you think? Developers work in a field where they, are expected to learn new technologies, adapt to new environments, and overcome these challenges ..(And pray to whatever higher being you serve that it all goes well(did I mention they are expected to do it fast!)



    Learn New Technologies: http://netdna.webdesignerdepot.com/uploads/2012/11/technology.jpg

    New Env: (http://vignette2.wikia.nocookie.net/matrix/images/d/df/Thematrixincode99.jpg/revision/latest?cb=20140425045724)
    Overcome obstacles: http://www.themudflats.net/wp-content/uploads/2013/11/fast-track_460x276.jpg
    http://qph.is.quoracdn.net/main-qimg-9641be2c169bd5e3154abd6a6d60a07e?convert_to_webp=true

    Pray to whatever being you serve that it goes well(http://sugarcube.cz/news_img/1854250aa5e55928.65476904.jpg)
  • Well all of these expectations can be a lot to developers and scare them away in frustration.
    And that’s actually the last thing we want.
    According to the USBLS, at the rate that our retention levels are at by the year 2022 we are expected to need 3 times as many computing personnel as the U.S. will have.

    Source: http://www.developerhandbook.com/wp-content/uploads/2014/08/visitor-engagement-frustrated-customer.jpg

    Graph Source: http://cs.calvin.edu/images/department/jobs/2022/06.US-BLS-Total-Jobs-2022-Vs-NSF-Grads-2010.png
  • So I’ve said this word frustration a couple times now. But what does frustration mean?
    Dollard defines it as an interference with the occurrence of an instigated goal-response at its proper time in the behavior sequence.

    Well for me that definition was a bit too sciency so as a runner I had to put it where myself and others like me could get it.

    “An obstacle encountered in pursuit of an expected goal”

  • So when I think about frustration I think about my life as a runner.
    If you all know track and field this race is called the steeple chase. A race where you run about 3000 meters on the track, jump over hurdles(steeples) and into a ginormous puddle of water(often times half naked).
    AND FYI The key point here is that people do this because they want to. SMH
    Think about the trials that developers go through in their life on a never ending sprints to produce code. The amount of tough skin that they have acquired over time is remarkable.

    When you reflect on encounters like this, it make so much more sense why researches have taken the time to care about their frustration…
    In our review of other studies we found that not all causes are this dangerous…or are they.. We found …[next slide]

    Image source: http://cdn.running.competitor.com/files/2013/09/steeplechase-fall.jpg
  • That in previous research that software developers we have found that …
  • We created a 16 question survey…
  • We posted the survey on CS affinity groups such a reddit, facebook groups, and computer science mailing lists to get a wide variety of responses…
  • Mapping Behavior to Cause is one cause that many developers identified with.
    <Read quote>
    Respondents identified that they had issue finding and matching code that was causing an issue in the product.
    This was a classic example of not having a good mental model of the code.
  • Another cause of frustration is the adjustment to a new project.
    One of the participant said “ I was trying to set up...<read quote>”
    Here, this relates to that new feeling that happens when you come across a new project.
    In early stages of a project you are unclear of expectations of your contributions, unclear on what’ expected of your teammates, and figuring out where you fit into all of that.
    It takes time and experience to get caught up which can be frustrating.
  • That’s actually a nice segway into what also could happen on a new project.
    The unavailability of resources.
    This participant says “ The server I needed for my files was not…<read quote>”

    By show of hands, How many of you have ever expected to find details about an issue you were having in the API’s or wiki’s of a product.. and it wasn’t there? I’ll admit it’s happened to me!

    How are you expected to succeed if the resources, being the documentation or assigned mentors, are not available to you? This is something that’s out of the developers control and therefore frustrates them.
  • So We’ve talked about all these causes but I want to pose another question to you to reflect on. How did you deal with your frustration?
  • One person acknowledged that they don’t get frustrated because it’s something that they deal with everyday.
    This was represents our one outlier in our set of responses; the new norm as we described it.
    So notice how the person in red is trucking through this water. Atleast more calm than the person in the green.

    They didn’t perceive it as problem. We want to define mechanisms for software developers to get to the point where they look like the (athlete)lady in red.

    Source: http://dt9guucc6nuua.cloudfront.net/media/LargeL/0bda7eac-fbd2-4413-a331-a746f0e4512e.jpg?v=-301040725
  • As we continue want to be able to analyze those potential coping mechanisms,
    We also want to:
    (1)send a ranking questionnaire to determine priority of causes,
    (2)Refine the essence of multipliers, causes that occurred together,
    (3)and potentially modify and create tools to help developers monitor their frustration
  • In conclusion, identifying these 11 causes demonstrates that there is still a problem space for developers.
    This research is just a step in reducing that space and understanding those frustrating obstacles developers encounter, but there’s more work to do.
    We hope this work encourage others to expand and enhance the developer experience through similar analysis.

×