user-centered system design agile - uppsala university · • ”backlog” of requirements,...

Post on 04-Apr-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Department of Information Technology Uppsala university

User-centeredSystem Design Agile

Uppsala university

2009-02-24 | #2@ UU/IT

Business modeling Requirements Analysis & design Implementation

Test Deployment Configuration & Change Management:

Overview

Project Management Environment

Usability Design

Methods - what are they? Why do we have them?

Uppsala university

2009-02-24 | #3@ UU/IT

Failed IT projects

28

26

27

16

23

28

40

31

49

46

33

53

0% 20% 40% 60% 80% 100%

2000

1998

1996

1994

SuccessCancelledPartly failed

Uppsala university

2009-02-24 | #4@ UU/IT

Why failed projects?Reasons?• Low usability

Not able to produce a good enough system?• Never delivered, or late

Not enough pressure/skill?• Missing functionality, or wrong functions

Not knowing what to do?

Uppsala university

2009-02-24 | #5@ UU/IT

The selling game

Analysis: needs

Req.

Contract

Analysis:time & money

Customer Developer

Uppsala university

2009-02-24 | #6@ UU/IT

Agile: everything on this page is wrong

“Requirements engineering (RE) is receiving increasing attention as it is generally acknowledged that the early stages of the system development life cycle are crucial to the successful development and subsequent deployment and ongoing evolution of the system. As computer systems play increasingly important roles in organizations, it seems there is a need to pay more attention to the early stages of requirements engineering itself (e.g., [6]).”Towards Modelling and Reasoning Support for Early-Phase RequirementsEngineering, Eric S. K. Yu, paper 1 for Neil

Uppsala university

2009-02-24 | #7@ UU/IT

Learing from the bestWhat is a successful system?Why is the reason it is good do you think?• Was this planned or by chance?

Uppsala university

2009-02-24 | #8@ UU/IT

Are we A or B?Q

ualit

y

Functionality

Qua

lity

Functionality

A B

Uppsala university

2009-02-24 | #9@ UU/IT

AgileA reaction against the ”heavy” methods and failed projects• Too little feedback• Too much method• Too large systems• Too many functions• No one likes these methods• The methods don’t deliver, they fail

Overall idea: • Minimize risk by developing software in short

amounts of time.

Uppsala university

2009-02-24 | #10@ UU/IT

AgileMain Entry: ag·ilePronunciation: 'a-j&l, -"jI(-&)lFunction: adjectiveEtymology: Middle French, from Latin agilis,from agere to drive, act 1 : marked by ready ability to move with quick easy grace <an agile dancer>2 : having a quick resourceful and adaptable character <an agile mind> - ag·ile·ly /-j&(l)-lE, -"jI(l)-lE/ adverb

Uppsala university

2009-02-24 | #11@ UU/IT

Key principlesWe cannot do as before. A change is needed.• Individuals and interaction over processes and

tools • Working software over comprehensive

documentation • Customer collaboration over contract

negotiation • Responding to change over following a plan

• http://agilemanifesto.org/

Uppsala university

2009-02-24 | #12@ UU/IT

Agile Manifesto Principles, 1Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-faceconversation.

Uppsala university

2009-02-24 | #13@ UU/IT

Agile Manifesto Principles, 2Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity-the art of maximizing the amount of work not done-is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Uppsala university

2009-02-24 | #14@ UU/IT

Is this a development process?

Uppsala university

2009-02-24 | #15@ UU/IT

Also a tool"Make sure there are whiteboards and coffee corners all over the building.” (IBM)

Uppsala university

2009-02-24 | #16@ UU/IT

What is Agile development?Framework, of values and principles

DSDM (Stapledon)

eXtremeProgramming

(Beck)Crystal (Cockburn)

AdaptiveSoftwareDevelopment(Highsmith)

FDD

Scrum

AgileModeling (Ambler)

Uppsala university

2009-02-24 | #17@ UU/IT

ScrumKen Schwaber in Financial Times: Scrum is different, he says, as it "takes people out of cubicles and puts them in a room with whiteboards.”

http://www.controlchaos.com/module/FT.php

Observation• SW development can be very different, in different places

Uppsala university

2009-02-24 | #18@ UU/IT

ScrumTakeuchi and Nonaka, 1986The paper that started it all:• The new new product development game• http://apln-richmond.pbwiki.com/f/New%20New%20Prod%20Devel%20Game.pdf

”The rules of the game in new product development are changing. Many companies have discovered that it takes more than the accepted basics of high quality, low cost, and differentiation to excel in today's competitive market. It also takes speed and flexibility.”

Uppsala university

2009-02-24 | #19@ UU/IT

Characteristics of ScrumObservation: • Using small, cross-functional teams historically

produces the best results Based on a rugby metaphor…• A Scrum Master acts as project manager/buffer

to the outside world• Product Owner, represents stakeholders• Team, developers (less than 10)

Uppsala university

2009-02-24 | #20@ UU/IT

Scrum actionsSprint, 30-day iteration• ”backlog” of requirements, decided at the scrum

Managed by Product OwnerDaily meeting, called a ”scrum”• Starts precisely on time with team-decided punishments if late• Only "pigs" may speak (pigs and chickens)• The meeting is time boxed at 15 minutes; all attendees stand

up• The meeting should happen at the same location and same

time every dayAll pigs say:1. What have you done since yesterday? 2. What are you planning to do by tomorrow? 3. Do you have any problems preventing you from

accomplishing your goal?

Uppsala university

2009-02-24 | #21@ UU/IT

SprintA Product Owner compiles all the changes planned for the product and prioritizes the possible functionalities.The result of the Product Owner’s work is a Product Backlog – a to-do list that is constantly reprioritized. Before each Sprint, the highest prioritized goals are transferred to a Sprint Backlog.Together with a user, the project members form a Scrum Team consisting of 5–9 people. During discussions with the Product Owner, the goal of the Sprint is determined and the prioritized functionality is broken down into detailed tasks. The team is self-organized and the members have a joint responsibility for the results.The Scrum Master coaches the development team, removes any possible impediments and constantly works to ensure that the team has the best possible circumstances for realizing the goals fixed for the Sprint.

Uppsala university

2009-02-24 | #22@ UU/IT

http://www.softhouse.se/Uploades/Scrum_eng_webb.pdf

Uppsala university

2009-02-24 | #23@ UU/IT

ReadingScrum in 5 minutes• http://www.softhouse.se/Uploades/Scrum_eng_webb.pdf

Ken Schwaber, co-developed the Agile process, Scrum. Video from Google Tech Talks: • http://video.google.com/videoplay?docid=-7230144396191025011

Uppsala university

2009-02-24 | #24@ UU/IT

At the same time…OOP is different from traditional procedural programmingThe business requirements were changing• Time-to-market important• Design-driven market• Need to show progress• Short product life expected

OOP-people see the successful patterns in problems like this

Uppsala university

2009-02-24 | #25@ UU/IT

XPKent Beck (1996/2000)A heavyweight methodology has many rules, practices, and documents. It requires discipline and time to follow correctly. A lightweight methodology has only a few rules and practices or ones which are easy to follow.

Uppsala university

2009-02-24 | #26@ UU/IT

Extreme ProgrammingA deliberate and disciplined approach to software developmentTo be more agile than traditional methodsCreate better software• Stresses customer satisfaction

Emphasizes team work

Uppsala university

2009-02-24 | #27@ UU/IT

Main aim of XP is to reduce the cost of change

Cos

t

Time

Then

Now

Uppsala university

2009-02-24 | #28@ UU/IT

5 values of XPCommunicationSimplicityFeedbackCourageRespect

Uppsala university

2009-02-24 | #29@ UU/IT

Communication tools?

Richness of communication channel

Com

mun

icat

ion

Effe

ctiv

enes

s

2 people atwhiteboard

2 people on phone

2 peopleon email

Videotape

Paper

Uppsala university

2009-02-24 | #30@ UU/IT

CommunicationAll communication must be rapid • No formal documentation

Frequent communication• One single room for all

Small note paper• Small design

Uppsala university

2009-02-24 | #31@ UU/IT

SimplicityDesign for what you knowDo not plan ahead! • No “what if…”• No big design up front• What most people find difficult about XP

A simple design…• Can easily be understood• Has higher quality, because it is stable• Is easier to change• Is faster to implement, has less errors

Uppsala university

2009-02-24 | #32@ UU/IT

What exit is the right one?

Uppsala university

2009-02-24 | #33@ UU/IT

FeedbackFrom system• Unit testing: test first, then code

From customer• Always present in room, takes part in acceptance

testsFrom team• Direct time estimates on new functionality

Uppsala university

2009-02-24 | #34@ UU/IT

User storiesSomething a userwants the system to do. Testable.

Uppsala university

2009-02-24 | #35@ UU/IT

User stories

Uppsala university

2009-02-24 | #36@ UU/IT

CourageNot to do more than requiredTo be able to re-factor code fast enoughTo review other’s code (and your own)Knowing when to throw away a bad solution

Issues• No place to hide!• This is quite a big problem

Uppsala university

2009-02-24 | #37@ UU/IT

RespectNot to break other’s codeAim for high qualityBe motivated and loyal

Uppsala university

2009-02-24 | #38@ UU/IT

What’s extreme?If tests are good, test all the time (start with Unit tests)If code review is good, always do reviews (pair programming)If iteration is good, deliver oftenSimplicity, do the simplest possible solutionUsers, have them in the same room

Uppsala university

2009-02-24 | #39@ UU/IT

XP’s 12 activitiesFine scale feedback• Pair programming• Planning Game (once per iteration, typically once a week)• Test driven development• Whole team (everyone needed is there)

Continuous process• Continuous Integration• Refactoring or Design Improvement• Small Releases (called “builds”, alpha)

Shared understanding• Coding Standards• Collective Code Ownership• Simple Design• System Metaphor

Programmer welfare• Sustainable pace

Uppsala university

2009-02-24 | #40@ UU/IT

Uppsala university

2009-02-24 | #41@ UU/IT

User stories

Uppsala university

2009-02-24 | #42@ UU/IT

Uppsala university

2009-02-24 | #43@ UU/IT

Is Agile user-centered?No:• Focus on code

No explicit way to handle usability• Involves users, maybe not the right ones, not in

the right environment• Hard for users to speak about their needs• Small increments – no overall view of the

situation and the interaction

Uppsala university

2009-02-24 | #44@ UU/IT

Is Agile user-centered?Yes:• User stories, by users• Direct communication• Simple representations • Iterations• Continuous testing and delivery• Change is welcome• About people, not processes

Uppsala university

2009-02-24 | #45@ UU/IT

ReadingAgile Modeling and eXtreme Programming• http://www.agilemodeling.com/essays/agileModelingXP.htm

Is Design Dead? Martin Fowler• http://martinfowler.com/articles/designDead.html

William Hudson: Adopting UCD within an agileprocess• http://www.syntagm.co.uk/design/articles/ucd-xp03.pdf

Larry Constantine: Process Agility and Software Usability• http://www.foruse.com/articles/agiledesign.pdf

top related