Upgrade to Pro — share decks privately, control downloads, hide ads and more …

API Design Life Cycle @ Nordic APIs 2014

API Design Life Cycle @ Nordic APIs 2014

APIs are software and as such they are also a target of basic software engineering rules we are all taught for decades. Unfortunately, this fact is often ignored or forgotten and common API design process resembles an infamous waterfall model. As APIs are often sitting on boundaries between groups of developers with very different expectations and use cases, problems resulting from one-sided waterfall development are even worse than usual.

Honza’s talk will show you how to avoid waterfalls by employing iterations, prototyping, communication with client developers and testing. The last part of the presentation will be focused on how API Blueprint and its ecosystem fit into this concept and how they help to deliver APIs the right way.

Honza Javorek

October 22, 2014
Tweet

More Decks by Honza Javorek

Other Decks in Technology

Transcript

  1. API Design Life Cycle
    HONZA JAVOREK

    View Slide

  2. Honza Javorek
    API design lover
    Czech Python evangelist
    tea & mate drinker
    sauna enthusiast
    sort of cartoonist
    Python, CoffeeScript
    @honzajavorek

    View Slide

  3. 1 what's wrong on classic API design
    2 how to do it better
    3 how can Apiary help

    View Slide

  4. How do people design and
    develop APIs?

    View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. 70s
    40 years ago

    View Slide

  9. 70s
    ABBA waterfall model
    coined
    Led Zeppelin
    David Bowie
    AC/DC
    40 years ago

    View Slide

  10. API is an interface

    View Slide

  11. API is an interface
    to data

    View Slide

  12. API is an interface
    to data
    for client developers

    View Slide

  13. For who?

    View Slide

  14. Clientina Utvecklarsson
    frontend samurai
    mobile app hippie
    guerilla gardening evangelist
    chocolate core commiter
    Objective-C, Java, JavaScript, CoffeeScript

    View Slide

  15. Human
    usability
    consistency
    naming
    error prevention
    use case oriented
    helpful error messages
    help & documentation
    ProTip™: read Jakob Nielsen

    View Slide

  16. Different concerns
    SQL
    ORM
    caching
    Django
    JBoss
    storage
    Rails
    maintenance
    uptime
    versioning
    security

    View Slide

  17. Different concerns
    SQL JBoss
    Rails
    maintenance
    latency
    Objective-C
    how to...?
    Angular
    jQuery
    learning curve
    examples
    JavaScript
    uptime
    versioning
    security
    debugging

    View Slide

  18. Different culture
    cenaPiva
    öl_pris
    BeerPrice
    precio-de-la-cerveza
    பபரர வவலல

    View Slide

  19. EMPATHY IS HARD!

    View Slide

  20. iterations
    prototypes
    communication
    co-operation
    design first
    documentation first
    use cases

    View Slide

  21. View Slide

  22. But how?

    View Slide

  23. API Blueprint

    View Slide

  24. View Slide

  25. Markdown file

    View Slide

  26. View Slide

  27. View Slide

  28. Design
    Prototype
    Design
    Feedback
    Delivery
    Implementation

    View Slide

  29. Design
    Prototype
    Design
    Feedback
    Delivery
    Implementation

    View Slide

  30. AST
    Documentation
    Mock Server
    Debugging Proxy Server
    Open Source
    Apiary.io
    Dredd
    GitHub
    JSON Schema
    Atom editor plugin
    Sublime Text plugin
    SoapUI Pro plugin

    View Slide

  31. IMAGE CREDITS: Leonardo da Vinci - Le proporzioni del corpo umano secondo Vitruvio, 1490

    View Slide

  32. Q & A
    HONZA JAVOREK
    [email protected]
    @apiaryio · apiary.io
    @apiblueprint · apiblueprint.org
    @honzajavorek

    View Slide