dev conf 2017 - what is software product design

Post on 22-Jan-2018

28 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

@jacdevos jacques@nreality.com

We are all product designers!

@jacdevos jacques@nreality.com

@jacdevos jacques@nreality.com

Who here builds software?

@jacdevos jacques@nreality.com

Software is still a new thing

@jacdevos jacques@nreality.com

@jacdevos jacques@nreality.com

Design Thinking

http://dschool.stanford.edu/

@jacdevos jacques@nreality.comvia monteronesteinerranch.files.wordpress.

com

@jacdevos jacques@nreality.com

Empathise:go out and learn about user needs

@jacdevos jacques@nreality.com

Define:frame the problem from user insights

@jacdevos jacques@nreality.com

Ideate:use all brains to get solutions

@jacdevos jacques@nreality.com

Prototype:create a representation we can show

(or taste!)

@jacdevos jacques@nreality.com

Test:test assumptions through user feedback

@jacdevos jacques@nreality.com

Iterate

@jacdevos jacques@nreality.com

Not a state, but a process

Not magic, but hard work

Learning about real user needs

Iterate and experiment… until its tasty

Design makes things “tasty”

@jacdevos jacques@nreality.com

What does this have to do with software products?

@jacdevos jacques@nreality.com

Software product development is often a pretty Wicked Problem

@jacdevos jacques@nreality.com

Big Bangsjust don’t work on Wicked Problems

ALICE NERR/THINKSTOCK

@jacdevos jacques@nreality.com

We need feedback tobuild better products

@jacdevos jacques@nreality.comBuild software iteratively

@jacdevos jacques@nreality.com

Build

-> Code

Measure

-> Data

Learn

-> Ideas

Lean StartupMinimise the total time through the loop

@jacdevos jacques@nreality.com

But why should I care?I’m a programmer.

I’m not a startup with $100M!

@jacdevos jacques@nreality.com

Historical SDLC (vs mature engineering discipline)

Planning Requirements Design Programming Testing Deployment

Engineering Design Construction of Design

@jacdevos jacques@nreality.com

What Is Software Design?Jack W. Reeves (1992)

@jacdevos jacques@nreality.com

Real software is ones and zerosits incredibly cheap to build but incredibly expensive to design

@jacdevos jacques@nreality.com

Code is the ultimate design artefact

@jacdevos jacques@nreality.com

Code shows us• real complexity, cost and constraints

• flaws in our problem-solution fit

• the devil in the details

@jacdevos jacques@nreality.com

Coding and testing is part of the design process

@jacdevos jacques@nreality.com

Modern SDLC (vs mature engineering discipline)

Planning Requirements Design Programming Testing Deployment

Engineering DesignConstruction

of Design

@jacdevos jacques@nreality.com

#SoftwareConstructionMustFalldevelopment as construction

metaphor is broken

@jacdevos jacques@nreality.com

How would we devif we see it as design process?

@jacdevos jacques@nreality.com

Start with the design problem and not technologies

@jacdevos jacques@nreality.com

Small Releases to enable iteration

@jacdevos jacques@nreality.com

Design Improvement (Refactoring) and

System Metaphor (DDD) ensure code structure reflects product learning

@jacdevos jacques@nreality.com

Pair Programming is a design collaboration that creates

code that communicates intent

@jacdevos jacques@nreality.com

Simple Design and TDD make changes safer, easier

@jacdevos jacques@nreality.com

Continuous Integration gives early verification and allows change

@jacdevos jacques@nreality.com

DevOps automates construction -by enabling iteration, it enables design

@jacdevos jacques@nreality.com

Testing gives quick design feedback -validation is a key aspect of design

@jacdevos jacques@nreality.com

@jacdevos jacques@nreality.com

XP practices are product designenablers!

@jacdevos jacques@nreality.com

Don’t build software, design it!• Design is a iterative process to create Tasty Products

• Software product development is a Wicked Problem

• Design is a better model than Construction

• Code is our ultimate software design artifact

• XP, Testing and Continuous Delivery are design tools

• Software Developers are Product Designers

@jacdevos jacques@nreality.com

Don’t build software, design it!Questions?

@jacdevos jacques@nreality.com

@jacdevos jacques@nreality.com

@jacdevos jacques@nreality.com

Links:

Wicket Problems: http://www.leanessays.com/2002/01/wicked-problems.html?m=1

Waterfall 1970: https://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf

Code is Design: http://www.developerdotstar.com/mag/articles/reeves_design.html

Design Thinking: https://en.wikipedia.org/wiki/Design_thinking

Design School: http://dschool.stanford.edu

Design Sprint: http://www.thesprintbook.com

Lean Startup: http://theleanstartup.com/

Lean Startup meets design thinking: https://youtu.be/bvFnHzU4_W8

Extreme Programming: https://www.amazon.com/Extreme-Programming-Explained-Embrace-

Change/dp/0321278658

Continuous Delivery: https://www.amazon.com/gp/product/0321601912

top related