34
Some Wicked Problems of Software Design Björn Hartmann UC Berkeley EECS Sunday, October 27, 13

Some Wicked Problems of Software Design

Embed Size (px)

DESCRIPTION

Panel position statement talk presented at the Wicked Problems Symposium at UC Berkeley on 10/26/2013.

Citation preview

Page 1: Some Wicked Problems of Software Design

Some Wicked Problems of Software Design

Björn HartmannUC Berkeley EECS

Sunday, October 27, 13

Page 2: Some Wicked Problems of Software Design

From social policy to software

Sunday, October 27, 13

Page 3: Some Wicked Problems of Software Design

(cc) Eric Fischerhttp://www.flickr.com/photos/walkingsf/3897327276/

Sunday, October 27, 13

Rittel and Webber’s paper describes challenges of planning at the societal level, and particularly the challenges that a classical or rational approach faced at the time of writing. An example problem was that of freeway design - here’s the 1948 plan of a network of freeways for San Francisco including the panhandle and mission freeways and the southern crossing across the bay directly to just about the area where the oakland airport would be built.

Page 4: Some Wicked Problems of Software Design

San Francisco Freeway revolt (1959)Photo: Photo: San Francisco History Center, SF Public Library, via

http://foundsf.org/index.php?title=The_Freeway_Revolt

Sunday, October 27, 13

As the 1959 freeway revolt showed, the work of professional planners met with increasingly strong public opposition. Rittel and Weber draw a a larger picture of an increasingly diverse, “tangled”, and often antagonistic social context.

Page 5: Some Wicked Problems of Software Design

People’s Park RiotPhoto: Robert Altman

http://www.altmanphoto.com/Catalog.1.html

Sunday, October 27, 13

Examples of such antagonism include the student revolts in Berkeley

Page 6: Some Wicked Problems of Software Design

Photo: Wikipediahttp://en.wikipedia.org/wiki/Black_Panther_Party

Sunday, October 27, 13

and the “urban as a racially charged problem” as we heard in the previous session.Exemplified by the black panther party in Oakland.

Page 7: Some Wicked Problems of Software Design

What do wicked problems have to do with software?

Sunday, October 27, 13

So what do civil upheaval and the new types of wicked problems that planners faced have to do with software design?

Page 8: Some Wicked Problems of Software Design

The classical paradigm of science and engineering is not applicable to the problems of open societal systems.”

Rittel and Webber

Sunday, October 27, 13

In short, it’s the sense that “classical” approaches don’t work for new types of problems.So transferred to my own domain, Rittel and Webber’s statement ... turns into ...

Page 9: Some Wicked Problems of Software Design

The classical paradigm of science and engineering is not applicable to the problems of complex software systems”

Sunday, October 27, 13

The classical paradigm of science and engineering is not applicable to the problems of complex software systems.So what is the classical paradigm and what should one do instead?

Page 10: Some Wicked Problems of Software Design

Requirements Capture

DesignSystem

BuildSystem

DevelopmentalTesting

AcceptanceTesting

System in Use

Sunday, October 27, 13

Our “classical approach” of software development is called the waterfall model - an orderly set of stages, to be traversed in sequence. Design takes in concrete requirements and its output then gets thrown “over the wall”.

Page 11: Some Wicked Problems of Software Design

Source: http://www.everyspec.com/DoD/DoD-STD/DOD-STD-2167_278/

Sunday, October 27, 13

Now earlier on today we heard that consultants may perhaps tell you they follow one model, and do something completely different once the clients have left the room.

However, process models do get enshrined into standards - for example any software developed for the department of defense, had to follow the waterfall as defined in DOD standard 2167.

The waterfall, while rationally appealing, has not fared so well in practice.

Page 12: Some Wicked Problems of Software Design

R. N. Charette, Why Software FailsIEEE Spectrum (2005)

Sunday, October 27, 13

Consider this long list of failed software projects that all cost tens to hundreds of millions of dollars.

Page 13: Some Wicked Problems of Software Design

• over budget

• over time

• unmanageable

• difficult to maintain

• does not fulfill user’s needs

The software crisis

Sunday, October 27, 13

Page 14: Some Wicked Problems of Software Design

“ Horst Rittel and Melvin Webber defined a 'wicked' problem as one that could be clearly defined only by solving it, or by solving part of it. This paradox implies essentially, that you must 'solve' the problem once to clearly define it and then solve it again to create a solution that works. This process is almost motherhood and apple pie in software development.”

Peters & Tripp (1976), quoted in McConnell, Code Complete, p.74-75

Sunday, October 27, 13

These failures suggest that software design itself is a wicked problem. Computer scientists have made this very connection - For example, Peters and Tripp 37 years ago wrote about the paradox that in wicked problems, one must first solve the problem to understand and define it.

Page 15: Some Wicked Problems of Software Design

Sunday, October 27, 13

Over the years the language of wicked problems recurs in plenty of Computer Science publications.

Page 16: Some Wicked Problems of Software Design

1991Sunday, October 27, 13

I want to pick out one in particular since it points out that wickedness seems to be especially inherent to user-facing applications

Page 17: Some Wicked Problems of Software Design

“ We are now encountering problems of a different nature where the computer is no longer at the center of things — the human is — and the machine is now acting to provide or organize information the humans need to produce results. These are called ‘wicked’ problems, described by Host Rittel and Welvin Webber [1973].”

DeGrace & Stahl (1991)

Sunday, October 27, 13

Page 18: Some Wicked Problems of Software Design

1996Sunday, October 27, 13

This led to the search for better methodologies of constructing software.In my own area, human-computer interaction, a very influential view was that instead of treating software as a rational planning problem, one should treat it instead as a design problem. Terry Winograd’s edited book bringing design to software certainly did much to advance this perspective.

Page 19: Some Wicked Problems of Software Design

DESIGN

PROTOTYPEEVALUATE

Dreyfuss, Designing for People, 1955 Lawson, How Designers Think, 1997

Cross, Designerly Ways of Knowing, 2005

Iterative Design

Sunday, October 27, 13

Iterative design acknowledges that fit between problem and solution can only be achieved through repeated testing and improvement.

Page 20: Some Wicked Problems of Software Design

OBSERVE

VISUALIZE

PROTOTYPEEVALUATE

UNDERSTAND IMPLEMENT

Sunday, October 27, 13

In addition to iteration, we also emphasize the importance of observation, contextual inquiry - the designers adopting the perspective of a target user.

Page 21: Some Wicked Problems of Software Design

Sunday, October 27, 13

Almost all programs in the field in Human-Computer Interaciton now teach this process, including us here at the Cal Design Lab in Wurster Hall...

Page 22: Some Wicked Problems of Software Design

Moss Up 2013Moss Up 2013

CITRIS INVENTION LAB

LEARN

LAUNCH

BUILD

Bjoern Hartmann & Eric Paulos Co-Directors 141 Sutardja Dai Hall

Sunday, October 27, 13

...and in the invention lab that Eric Paulos told you about.

Page 23: Some Wicked Problems of Software Design

Local Commerce

SustainabilityRecycling

LocalPolitics

Sunday, October 27, 13

What do these courses tend to produce? The ones on software often focus on generating new apps. In my undergraduate user interface design course, students design and implement new applications that may be commercial or may have some positive community impact as their motivation.

Page 24: Some Wicked Problems of Software Design

Image: http://www.techsling.com/2013/06/how-you-can-promote-your-mobile-apps-successfully/

Sunday, October 27, 13

Bringing user-centered desing to software has been fantastically productive:There are now more than 800,000 mobile applications available - and that’s only for iOS.

Page 25: Some Wicked Problems of Software Design

macrumors.com april 23, 2013

Sunday, October 27, 13

This development has been profitable, too - Apple reported earlier this year that $9b dollars have been paid to app developers

Page 26: Some Wicked Problems of Software Design

New industry created

Users empowered

Inefficiencies eliminated

Anachronistic ways “disrupted.”

Success?

Sunday, October 27, 13

So should we declare success? Not so fast...

Page 27: Some Wicked Problems of Software Design

http://www.jaronlanier.com/futureukuscombo.jpg http://www.amazon.com/Save-Everything-Click-Here-Technological/dp/1610391381

http://www.amazon.com/Race-Against-Machine-Accelerating-ebook/dp/B005WTR4ZI

Sunday, October 27, 13

There is a growing literature of discontents with the emergent properties and repercussions of our increasingly softare driven economy. The following are not so much original thoughts but perspectives that resonate with me.

Page 28: Some Wicked Problems of Software Design

ComputerWorld

http://www.businessinsider.com/instagram-employees-and-investors-2012-4

http://www.computerworld.com/s/article/9243038/As_the_digital_revolution_kills_jobs_social_unrest_will_rise

Sunday, October 27, 13

Consider the following juxtaposition of headlines.They raise the question whether successful apps increase economic disparity.

Page 29: Some Wicked Problems of Software Design

Does Successful Software Increase Economic Disparity?

• Application platforms aggregate free user contributions

• Economic benefits all accrue to the “platform” operators

• You barely need any people to run the platforms

(Lanier)

Sunday, October 27, 13

Many of our most successful applications follow a recurring pattern:they aggregate information contributed for free by users; app or platform operators reap all the benefits; and it takes a very small team of employees to run such an app. Somewhere along the way, we have collectively decided that “free” is preferable to contributions from creative professionals such as critics, restaurant reviewers, travel writers, journalists, etc.

Page 30: Some Wicked Problems of Software Design

Sunday, October 27, 13

Beyond free content, there are also many marketplaces that break paid work into small manageable chunks (like delivery through task rabbit or information processing tasks on mechanical turk); or host winner-take-all contests (like 99 designs for graphic design).

Page 31: Some Wicked Problems of Software Design

Does Successful Software Increase Disparity?

• Work-on-demand increases granularity and flexibility of labor

• Removes hard-fought rights and protections, creating a “Precariat” (Guy Standing)

Sunday, October 27, 13

These sites have many positive aspects such as increasing flexibility for both employers and employees. However, in general, they also tend to be devoid of any labor protections or other “levees” - you may be employed this morning, but not this afternoon. The danger here is that we’re encouraging the formation of as “precariat”, a class of workers who have no safety net or even job predicatability.

Page 32: Some Wicked Problems of Software Design

How might we create software-driven eoconomic systems that benefit a larger number of their participants?

A wicked problem:

Sunday, October 27, 13

This leads to a first wicked problem I’d like you to consider.

Page 33: Some Wicked Problems of Software Design

Limits of Technological Solutionism

• While design as a process may be wicked, are the problems that are tackled in Silicon Valley only tame?

• 99c apps as a (limited) genre

(Morozov)

Sunday, October 27, 13

There’s also a danger of redirecting too much of our collective intellectual energy into a particularly narrow genre of applications - this genre naturally has its limits and also tends to encourage thinking in terms neat engineering solutions - in many ways a retreat to “tame” problems.

Page 34: Some Wicked Problems of Software Design

How might we channel enthusiasm and entrepreneurship towards activities that balance approchability and impact?

A wicked problem:

Sunday, October 27, 13

Which leads to a second wicked problem for you to consider.