Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Agile Dev Practices
From a UX Perspective
@andersramsay • @agileuxmeetup • #agileux
@andersramsay • @agileuxmeetup • #agileux
Why a talk on Agile
Dev Practices?
@andersramsay • @agileuxmeetup • #agileux
@andersramsay • @agileuxmeetup • #agileux
@andersramsay • @agileuxmeetup • #agileux
@andersramsay • @agileuxmeetup • #agileux
Pseudo Code
Test-Driven Development
Pair Programming
Refactoring/Technical Debt
...
@andersramsay • @agileuxmeetup • #agileux
Shoutout:
@aviflombaum at @flatironschool
bit.ly/alien-sandwich-workshop
@anders...
@andersramsay • @agileuxmeetup • #agileux
Let’s look at some alien sandwich
instructions…
@andersramsay • @agileuxmeetup • #agileux
Writing Pseudo Code
@andersramsay • @agileuxmeetup • #agileux
Pseudocode is a natural language
description of what a computer
program should d...
@andersramsay • @agileuxmeetup • #agileux
Make Sandwich
My Alien Sandwich
Instructions…
https://gist.github.com/andersr/11004954
A more practical example
https://gist.github.com/andersr/10471560
@andersramsay • @agileuxmeetup • #agileux
Some Benefits of Pseudo Code
A logic-based approach to writing user flows.
A code...
@andersramsay • @agileuxmeetup • #agileux
Pair Programming
@andersramsay • @agileuxmeetup • #agileux
@andersramsay • @agileuxmeetup • #agileux
@andersramsay • @agileuxmeetup • #agileux
Pair Programming is just as
much about being persuasive,
being a good listener, ...
@andersramsay • @agileuxmeetup • #agileux
Pairing and Pair
Programming
Cross-Functional Pairing: More about “What should w...
@andersramsay • @agileuxmeetup • #agileux
Test-Driven
Development
@andersramsay • @agileuxmeetup • #agileux
Test-Driven Development:

Testing code, not users.
@andersramsay • @agileuxmeetup • #agileux
Cut two slices of bread and place on the plate
1. Grasp the Knife in a cutting g...
@andersramsay • @agileuxmeetup • #agileux
Oops, you didn’t grasp the bread-loaf.
Sorry, you’re not holding the knife
in a ...
@andersramsay • @agileuxmeetup • #agileux
Benefits of understanding TDD
An opportunity to write fewer traditional specs an...
@andersramsay • @agileuxmeetup • #agileux
Refactoring and
Technical Debt
Coding is “just” writing
Every coder will write different
code, with better coders being
more succinct, eloquent, etc.
Goo...
@andersramsay • @agileuxmeetup • #agileux
–Kent Beck
“Make it Work.
Make it Good.
Make it Fast.”
@andersramsay • @agileuxmeetup • #agileux
Make it Work…

Ship early/often, holding off on better/
faster code (incurring t...
@andersramsay • @agileuxmeetup • #agileux
Make it Good. Make it Fast…
Refactor, Pay Down Technical Debt:

Find ways to say...
@andersramsay • @agileuxmeetup • #agileux
Continuous
Integration
@andersramsay • @agileuxmeetup • #agileux
Coding a large system is like
having many novelists all writing
the same novel a...
@andersramsay • @agileuxmeetup • #agileux
Traditional
Integration
@andersramsay • @agileuxmeetup • #agileux
Continuous Integration…and knowledge sharing.
@andersramsay • @agileuxmeetup • #agileux
Continuous Integration from
a UX Perspective
“Continuous” is the game-changer.
W...
@andersramsay • @agileuxmeetup • #agileux
Thanks!
Upcoming SlideShare
Loading in …5
×

Agile developer practices from a ux perspective

1,864 views

Published on

Presented at the April NYC Agile Experience Design Meetup http://www.meetup.com/Agile-Experience-Design/events/173376062/

For many non-technical members on a project team, what developers do tends to be a black box. You decide as a team what to build, and maybe create some wireframes or sketches and then they go off and do...something. Maybe you have a general idea of what's involved in building software, but unless you actually are a developer, that's usually about it.

In this session, we'll take a non-developer view of techniques commonly associated with Agile software development, such as pair programming, refactoring, test-driven development and continuous integration, and show how understanding these concepts can offer riches in terms of improved collaboration and communication between designers and developers.

Published in: Design, Technology

Agile developer practices from a ux perspective

  1. 1. Agile Dev Practices From a UX Perspective @andersramsay • @agileuxmeetup • #agileux
  2. 2. @andersramsay • @agileuxmeetup • #agileux Why a talk on Agile Dev Practices?
  3. 3. @andersramsay • @agileuxmeetup • #agileux @andersramsay • @agileuxmeetup • #agileux
  4. 4. @andersramsay • @agileuxmeetup • #agileux
  5. 5. @andersramsay • @agileuxmeetup • #agileux Pseudo Code Test-Driven Development Pair Programming Refactoring/Technical Debt Continuous Integration
  6. 6. @andersramsay • @agileuxmeetup • #agileux Shoutout: @aviflombaum at @flatironschool bit.ly/alien-sandwich-workshop @andersramsay • @agileuxmeetup • #agileux
  7. 7. @andersramsay • @agileuxmeetup • #agileux Let’s look at some alien sandwich instructions…
  8. 8. @andersramsay • @agileuxmeetup • #agileux Writing Pseudo Code
  9. 9. @andersramsay • @agileuxmeetup • #agileux Pseudocode is a natural language description of what a computer program should do.
  10. 10. @andersramsay • @agileuxmeetup • #agileux Make Sandwich
  11. 11. My Alien Sandwich Instructions… https://gist.github.com/andersr/11004954
  12. 12. A more practical example https://gist.github.com/andersr/10471560
  13. 13. @andersramsay • @agileuxmeetup • #agileux Some Benefits of Pseudo Code A logic-based approach to writing user flows. A coder/designer communication bridge. Improved design coverage.
  14. 14. @andersramsay • @agileuxmeetup • #agileux Pair Programming
  15. 15. @andersramsay • @agileuxmeetup • #agileux @andersramsay • @agileuxmeetup • #agileux
  16. 16. @andersramsay • @agileuxmeetup • #agileux Pair Programming is just as much about being persuasive, being a good listener, and letting go of ego, as it is about coding.
  17. 17. @andersramsay • @agileuxmeetup • #agileux Pairing and Pair Programming Cross-Functional Pairing: More about “What should we build?” Pair Programming: More about “How do we build it?” Writing Pseudo Code can enable pairing with a developer, particularly on writing tests and TDD.
  18. 18. @andersramsay • @agileuxmeetup • #agileux Test-Driven Development
  19. 19. @andersramsay • @agileuxmeetup • #agileux Test-Driven Development:
 Testing code, not users.
  20. 20. @andersramsay • @agileuxmeetup • #agileux Cut two slices of bread and place on the plate 1. Grasp the Knife in a cutting grasp and hold it out above the table. 2. Grasp the bread-loaf and place it on the table, such that it is directly below the knife. …. Test-Driven Development:
 Replacing traditional specs with “executable specs,” i.e. specs that talk back at you.
  21. 21. @andersramsay • @agileuxmeetup • #agileux Oops, you didn’t grasp the bread-loaf. Sorry, you’re not holding the knife in a cutting grasp.
  22. 22. @andersramsay • @agileuxmeetup • #agileux Benefits of understanding TDD An opportunity to write fewer traditional specs and more executable or test-driven specs. Can help reduce churn, improve design coverage, and design/dev communication. Likely to encourage developers to adopt TDD in general.
  23. 23. @andersramsay • @agileuxmeetup • #agileux Refactoring and Technical Debt
  24. 24. Coding is “just” writing Every coder will write different code, with better coders being more succinct, eloquent, etc. Good coding is re-coding. Coding software means writing for two audiences: binary aliens and analog humans.
  25. 25. @andersramsay • @agileuxmeetup • #agileux –Kent Beck “Make it Work. Make it Good. Make it Fast.”
  26. 26. @andersramsay • @agileuxmeetup • #agileux Make it Work…
 Ship early/often, holding off on better/ faster code (incurring technical debt) only once you know you’ve built something valuable.
  27. 27. @andersramsay • @agileuxmeetup • #agileux Make it Good. Make it Fast… Refactor, Pay Down Technical Debt:
 Find ways to say the same thing in fewer or clearer words, improving scalability, maintainability, reuse, stability, speed, etc.
  28. 28. @andersramsay • @agileuxmeetup • #agileux Continuous Integration
  29. 29. @andersramsay • @agileuxmeetup • #agileux Coding a large system is like having many novelists all writing the same novel at the same time.
  30. 30. @andersramsay • @agileuxmeetup • #agileux Traditional Integration
  31. 31. @andersramsay • @agileuxmeetup • #agileux Continuous Integration…and knowledge sharing.
  32. 32. @andersramsay • @agileuxmeetup • #agileux Continuous Integration from a UX Perspective “Continuous” is the game-changer. Writing pseudo code, pairing, integrating your work through TDD, and other practices (eg Live Style Guides), are all ways to maintain a continuous working relationship with developers.
  33. 33. @andersramsay • @agileuxmeetup • #agileux Thanks!

×