Developer Experience, API design and craft skills

Developer Experience, API design and craft skills

We define Developer Experience as applying the tools and techniques of User Experience professionals to the design of artefacts for developers. What does that mean for you? What changes if you start thinking about and testing the usability of the APIs you design and build? In this talk I’ll explain how thinking about Developer Experience as a craft skill (something honed through iteration, heuristics and the transmission of tacit knowledge) should affect your day job.

This was the keynote at PHP Northwest 2012 in Manchester.

Fa3afb9c3589ea91c866030babaeee64?s=128

Ade Oshineye

October 06, 2012
Tweet

Transcript

  1. DEVELOPER EXPERIENCE, API DESIGN AND CRAFT SKILLS

  2. www.oshineye.com/+

  3. www.oshineye.com/+

  4. ACQUISITION TRANSMISSION GROWTH SKILL

  5. API DESIGNERS IN THE ROOM?

  6. None
  7. None
  8. 1 UX techniques for developer-facing products 2 Focus on the

    OOB experience 3 Use convention over configuration 4 Design away common problems
  9. UX TECHNIQUES FOR DEVELOPERS

  10. FOCUS ON THE OUT-OF-BOX EXPERIENCE

  11. None
  12. CONVENTION OVER CONFIGURATION

  13. DESIGN AWAY COMMON PROBLEMS

  14. None
  15. None
  16. None
  17. AFFORDANCES

  18. ZUHANDEN READY-TO-HAND

  19. VORHANDEN PRESENT-AT-HAND

  20. API DESIGN & API USE

  21. ASPIRATIONAL

  22. EXAMPLES PATTERNS HEURISTICS

  23. DEVELOPEREXPERIENCE.ORG @DEVEXPFTW +DEVELOPER EXPERIENCE #devexp

  24. RICHARD SENNETT AND THE SKILL OF REPAIR http://www.flickr.com/photos/arselectronica/4953202301

  25. REPAIR “making and repairing form a single whole” “it is

    by fixing things that we often get to understand how they work”
  26. STATIC REPAIR “the simplest way to make a repair is

    to take something apart, find and fix what’s wrong, then restore the object to its former state”
  27. DYNAMIC REPAIR “a dynamic repair will change the object’s current

    form or function once it is reassembled” “the dynamic repair may involve a jump of domains, as when a mathematical formula corrects a defect in observed data. Or the dynamic repair may invite new tools for working with objects”
  28. CONTINUUM OF MAKING AND REPAIRING 1 New code 2 Refactoring

    3 Legacy code
  29. SKILL AND COMMUNITY “in craftwork, people can and do improve”

    “the isolated expert sends a signal that the organization is in trouble” “too many modern experts imagine themselves in the Stradivari trap−indeed, we could call the Stradivari Syndrome the conviction that one’s expertise is ineffable...as a result their skills degrade over time in comparison with doctors who turn outward professionally”
  30. REFACTORING != REPAIR Refactoring: behaviour-preserving transformation Transformation in other dimensions

    Repair focusses on change in various dimensions
  31. EXAMPLE: FEEDPARSER

  32. BROKEN? Last release: 2007 XXX open bugs and patches Supported

    ancient versions of Python Standard Feedparser for Python (and other) communities
  33. BROKEN? No new committers in years Centralised development Comprehensive acceptance

    suite
  34. START SMALL, CONCRETE AND PUBLIC

  35. START SMALL, CONCRETE AND PUBLIC

  36. EMBRACE POSITIVE DEVIATION AND DYNAMIC REPAIR

  37. REPAIR IS A SKILLED PROCESS OF RENEWAL NOT AN EVENT

  38. AFFORDANCE AND SKILL

  39. EMPATHY AND API DESIGN

  40. None
  41. None
  42. None
  43. None
  44. INFORMATION IS WORTHLESS IF IT DOESN’T CHANGE YOU

  45. CHANGE A LITTLE

  46. THANK YOU!