User Driven Development

User Driven Development

Improve your development process focusing on the user

820df515de752bffa0ce2644a7927186?s=128

David González

October 06, 2015
Tweet

Transcript

  1. User Driven Development Improve your development process focusing on the

    user David González @dggonzalez david@novoda.com
  2. Design Prototyping Scribbles Reviews Retrospectives User testing Beta releases Development

    Stakeholders
  3. None
  4. Designers are also nice people “ - Sebastiano Poggi Android

    Developer at Novoda
  5. Paper prototyping is to find as much issues as possible

    before starting to develop
  6. Paper allows you to do and redo without fear of

    losing development time The Sun Mobile News - Aug 2014
  7. Scribbles are the minimum representation of an element

  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
  9. <ScrollView xmlns:android=“…” android:layout_width="match_parent" android:layout_height="match_parent" android:paddingTop="?android:attr/actionBarSize"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <com.newsuk.thesun.view.AspectRatioView

    android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/bg_article_top" /> <com.newsuk.thesun.view.AspectRatioView android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/bg_article_content" /> </LinearLayout> </ScrollView>
  10. None
  11. Iterate How do we do it from here?

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

  13. Guesstimate

  14. None
  15. Acceptance criteria

  16. None
  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
  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
  19. 3 points Empty screen Given I have no saved articles

    When I navigate to My Articles Then I should see an empty screen
  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
  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
  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
  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
  24. Design reviews It’s up to the design team to accept

    a visual design story
  25. None
  26. None
  27. None
  28. Code quality

  29. None
  30. None
  31. None
  32. None
  33. Use Pull Request Builder and Thresholds in Jenkins to prevent

    Technical Debt
  34. None
  35. None
  36. None
  37. None
  38. None
  39. Sprint reviews, retrospectives and demos

  40. None
  41. None
  42. Show what you achieved

  43. Be transparent about what’s missing

  44. Excite them about what’s coming

  45. Usability testing

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

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

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

  49. Nightly releases

  50. None
  51. Thank you! David González @dggonzalez david@novoda.com