$30 off During Our Annual Pro Sale. View Details »

User Driven Development

User Driven Development

Improve your development process focusing on the user

David González

October 06, 2015
Tweet

More Decks by David González

Other Decks in Programming

Transcript

  1. User Driven Development
    Improve your development process focusing on the user
    David González
    @dggonzalez
    [email protected]

    View Slide

  2. Design
    Prototyping
    Scribbles
    Reviews
    Retrospectives
    User testing
    Beta releases
    Development Stakeholders

    View Slide

  3. View Slide

  4. Designers are also nice
    people

    - Sebastiano Poggi
    Android Developer at Novoda

    View Slide

  5. Paper prototyping
    is to find as much issues as possible before starting to develop

    View Slide

  6. Paper allows you to do and
    redo without fear of losing
    development time
    The Sun Mobile News - Aug 2014

    View Slide

  7. Scribbles
    are the minimum representation
    of an element

    View Slide

  8. public class FeedItemView extends AspectRatioView {
    private TextView createdText;
    private TextView categoryText;
    public FeedItemView(Context ctx, AttributeSet attrs) {
    super(context, attrs);
    }
    @Override
    protected void onFinishInflate() {
    super.onFinishInflate();
    inflate(getContext(), R.layout.feed_item, this);
    createdText = findById(this, R.id.feed_text_created);
    categoryText =findById(this, R.id.feed_text_category);
    }
    }
    Create a custom view

    View Slide

  9. android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="?android:attr/actionBarSize">
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg_article_top" />
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg_article_content" />


    View Slide

  10. View Slide

  11. Iterate
    How do we do it from here?

    View Slide

  12. Split the user journey in as
    few steps as possible

    View Slide

  13. Guesstimate

    View Slide

  14. View Slide

  15. Acceptance criteria

    View Slide

  16. View Slide

  17. 5 points
    Scribble implementation with local data
    Given I am a logged in user
    And I have previously saved an article
    When I navigate to My Articles
    Then I should see a list of articles

    View Slide

  18. 3 points
    Loading screen
    Given I have internet connection
    When I navigate to My articles
    Then the date should be fetched from the API
    And I should see a loading screen

    View Slide

  19. 3 points
    Empty screen
    Given I have no saved articles
    When I navigate to My Articles
    Then I should see an empty screen

    View Slide

  20. 8 points
    Scribble implementation fetching data
    from API
    Given I have internet connection
    When I navigate to My articles
    Then the date should be fetched from the API
    And I should see a list of saved articles

    View Slide

  21. 5 points
    Visual design items
    Given I see a list of articles
    When I navigate to My articles
    Then the list items designs should match
    specifications

    View Slide

  22. 5 points
    Interaction with articles
    Given I have a list of saved articles
    When I tap on the article header image
    Then I should see a selected item

    View Slide

  23. 8 points
    Response from API
    Given I have a list of saved articles
    When I swipe away one of the elements
    Then the remote item should be deleted
    And I should be notified of the deletion

    View Slide

  24. Design reviews
    It’s up to the design team to accept a visual design story

    View Slide

  25. View Slide

  26. View Slide

  27. View Slide

  28. Code quality

    View Slide

  29. View Slide

  30. View Slide

  31. View Slide

  32. View Slide

  33. Use Pull Request Builder and Thresholds
    in Jenkins to prevent Technical Debt

    View Slide

  34. View Slide

  35. View Slide

  36. View Slide

  37. View Slide

  38. View Slide

  39. Sprint reviews,
    retrospectives and demos

    View Slide

  40. View Slide

  41. View Slide

  42. Show what you achieved

    View Slide

  43. Be transparent about what’s
    missing

    View Slide

  44. Excite them about what’s
    coming

    View Slide

  45. Usability testing

    View Slide

  46. Acceptance criteria
    Define goals, what do you
    want to achieve?

    View Slide

  47. Pilot tests highlight problems
    early and save your user’s
    time

    View Slide

  48. Acceptance criteria
    Define action points, refine
    and test again

    View Slide

  49. Nightly releases

    View Slide

  50. View Slide

  51. Thank you!
    David González
    @dggonzalez
    [email protected]

    View Slide