Smart+Shanghai+2008 09 05

39
Be Smart! Ivar Jacobson with Pan Wei Ng, Ian Spence and Kurt Bittner [email protected]

Transcript of Smart+Shanghai+2008 09 05

Page 1: Smart+Shanghai+2008 09 05

Be Smart!

Ivar Jacobsonwith

Pan Wei Ng, Ian Spence and Kurt Bittner

[email protected]

Page 2: Smart+Shanghai+2008 09 05

First a question….

How good are we at software development?

Quality:

Cost:

Low High

Low High

Value for Money: Poor Good

Timeliness: On-Time Late

User Experience Bad Good

Secure / Reliable: Low High

Potential: Low High

Page 3: Smart+Shanghai+2008 09 05

Some people feel we are this good

• How a Software Company would design a Treeswing

Page 4: Smart+Shanghai+2008 09 05

Let’s look at our press

Page 5: Smart+Shanghai+2008 09 05

It certainly seems like …

…we need to get better!

Quality:

Cost:

Low High

Low High

Value for Money: Poor Good

Timeliness: On-Time Late

User Experience: Bad Good

Low High

Potential: Limited Open Ended

Secure / Reliable:

Page 6: Smart+Shanghai+2008 09 05

Is Software Development a Fashion Industry?

Yes, Software Development is driven by fashions and fads

– Fifteen years ago it was all about OO– Ten years ago it was about

components, UML, Unified Process– Five years ago it was about RUP and

CMMI– Two years ago it was about XP– Today it is about Scrum

All good, but none is all you need

The software industry keeps looking for silver bullets

This is unsmart!

6© 2008 Ivar Jacobson International

Page 7: Smart+Shanghai+2008 09 05

What can we do about it?

Yes, Software Development is driven by fashions and fads

– Fifteen years ago it was all about OO– Ten years ago it was about

components, UML, Unified Process– Five years ago it was about RUP and

CMMI– Two years ago it was about XP– Today it is about Scrum

All good, but none is all you need

The software industry keeps looking for silver bullets

This is unsmart!

7© 2008 Ivar Jacobson International

THERE IS NO SILVER BULLET!

Page 8: Smart+Shanghai+2008 09 05

What can we do about it?

Yes, Software Development is driven by fashions and fads

– Fifteen years ago it was all about OO– Ten years ago it was about

components, UML, Unified Process– Five years ago it was about RUP and

CMMI– Two years ago it was about XP– Today it is about Scrum

All good, but none is all you need

The software industry keeps looking for silver bullets

This is unsmart!

8© 2008 Ivar Jacobson International

We have to work smarter!

Page 9: Smart+Shanghai+2008 09 05

Agenda

1. What does Smart mean?2. Smart Cases – Recognize it when you see it3. How do you become Smart4. What does Smart really mean?

Page 10: Smart+Shanghai+2008 09 05

What does Smart mean?

Things should be done as simple as possible – but no simpler

This is smart!

E= mc2

- Albert Einstein

10© 2008 Ivar Jacobson International

Page 11: Smart+Shanghai+2008 09 05

What does being Smart mean?

• Being Smart is not the same thing as being intelligent– You can be intelligent without being smart - and

you can be very smart without being very intelligent

• Smart is more than having common sense– You can have common sense without being smart,

but if you are smart you must have common sense.

• Being Smart is being agile, but more– Agile means being flexible and adaptable to

different situations.– Being Smart = Being Agile + doing exactly the

right thing in a particular situation.– Doing exactly the right things comes from rules

(harvested from training and experience)

Mr Smart

11© 2008 Ivar Jacobson International

Ivar Jacobson
Can we come up with a better sentence?
Page 12: Smart+Shanghai+2008 09 05

Agenda

1. What does Smart mean?2. Smart Cases – Recognize it when you see it

1. People2. Projects3. Requirements4. Architecture5. Modeling6. Test7. Documentation8. Process

3. How do you become Smart4. What does Smart really mean?

12© 2008 Ivar Jacobson International

Page 13: Smart+Shanghai+2008 09 05

Unsmart with People

Some companies view process and tools as more important than people

– They think they can use process to make people interchangeable

– They think that tools will make people with poor skills as effective as people with excellent skills

This is unsmart!

13© 2008 Ivar Jacobson International

A fool with a tool is still a fool but a dangerous fool

Ivar Jacobson
How can you be smart with people?Do we need to care when we have all these fantastic tools?
Page 14: Smart+Shanghai+2008 09 05

Smart with People

Software is developed by people!– By competent and motivated people– Using consumable practices and tools– Balancing tasks with competencies

Case study: Ericsson AXE – the largest commercial success story ever in Sweden–We had no tools and an old-fashioned methodology–Despite this, we developed components, use cases, and a modeling language now part of UML–This could only have been done with people – good people

This is smart!

14© 2008 Ivar Jacobson International

Page 15: Smart+Shanghai+2008 09 05

Unsmart with Projects

15© 2008 Ivar Jacobson International

• Most companies still follow the waterfall approach

Requirements

High-Level Design

Detailed-Level Design

Coding

Testing

This is unsmart!

Page 16: Smart+Shanghai+2008 09 05

Smart with Projects

• Build a skinny system to demonstrate that you have eliminated all critical risks

• Add more capabilities on top of that skinny system

Skinny System Full Fledged SystemThis is smart!

16© 2008 Ivar Jacobson International

Page 17: Smart+Shanghai+2008 09 05

Unsmart with Requirements

A constant in software development is that requirements always change

Thou shalt work with

fixed requirements

for fixed prices

• Still many managers believe you can detail all the requirements upfront...

• ...and based on these can accurately predict the cost of the solution

This is unsmart!

17© 2008 Ivar Jacobson International

Ivar Jacobson
What is special about requirements.You just specify them upfront and get the approved before you start working
Page 18: Smart+Shanghai+2008 09 05

Smart with Requirements

• Base early decisions on lightweight requirements and detail as and when it is needed– Use case outlines, feature lists or user stories

• Design your project for requirement changes– Remember requirements are negotiable and priorities will change

• Sell tailormade solutions but renegotiate standard solution– The Swedish telecom case

I understand your needs, let’s work together to make

sure we develop the right system for the

right price.This is smart!

18© 2008 Ivar Jacobson International

Page 19: Smart+Shanghai+2008 09 05

Unsmart with Architecture

Mr Supposedly Agile

No architectureJust Code Refactor later

This is unsmart!

19© 2008 Ivar Jacobson International

Mr EnterpriseArchitect on Ivory Tower

I’ll designeverything

up front

Two extremes:

The single most important determinant of a software system’s quality is the quality

of its architecture

Page 20: Smart+Shanghai+2008 09 05

Smart with Architecture

• Focus on the skinny system• But an architecture without executable code is a

hallucination• Refactor over releases, but large refactoring is very

costlyThis is smart!

20© 2008 Ivar Jacobson International

Skinny System Full Fledged System

ArchitecturalBlue Print

Page 21: Smart+Shanghai+2008 09 05

Unsmart with Modeling

We have always had programming languages.

21© 2008 Ivar Jacobson International

Mr HackerModel

NothingJust Code

user : Clerk

mainWnd : MainWnd

fileMgr : FileMgr

repository : Repositorydocument : Document

gFile : GrpFile

9: sortByName ( )

L1: Doc view request ( )

2: fetchDoc( )

5: readDoc ( )7: readFile ( )

3: create ( )6: fillDocument ( )

4: create ( )8: fillFile ( )

Window95

¹®¼ °ü¸® Ŭ¶óÀ̾ðÆ®.EXE

WindowsNT

¹®¼ °ü¸® ¿£Áø.EXE

WindowsNT

Windows95

Solaris

ÀÀ¿ë¼ ¹ö.EXE

AlphaUNIX

IBM Mainframe

µ¥ÀÌŸº£À̽º¼ ¹ö

Windows95

¹®¼ °ü¸® ¾ÖÇø´

Document

FileManager

GraphicFileFile

Repository DocumentList

FileList

usermainWndfileMgr :

FileMgrrepositorydocument :

DocumentgFile

1: Doc view request ( )

2: fetchDoc( )

3: create ( )

4: create ( )

5: readDoc ( )

6: fi llDocument ( )

7: readFile ( )

8: fil lFile ( )

9: sortByName ( )

ƯÁ¤¹®¼ ¿¡ ́ ëÇÑ º¸±â¸¦ »ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.

È ÀÏ°ü̧ ®ÀÚ´Â Àоî¿Â ¹®¼ ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼

°´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.

È ̧é °´Ã¼´Â ÀоîµéÀÎ °́ üµé¿¡ ́ ëÇØ À̸§º°·Î Á¤·ÄÀ» ½ÃÄÑ È ̧é¿¡ º̧ ¿©ÁØ´Ù.

Openning

Writing

ReadingClosing

add file [ numberOffi le==MAX ] / flag OFF

add file

close file

close file

Actor AUse Case 1

Use Case 2

Actor B

Use Case 3GrpFile

read( )open( )create( )fillFile( )

rep

Repository

name : char * = 0

readDoc( )readFile( )

(from Persistence)

FileMgr

fetchDoc( )sortByName( )

DocumentList

add( )delete( )

Document

name : intdocid : intnumField : int

get( )open( )close( )read( )sortFileList( )create( )fillDocument( )

fList

1

FileList

add( )delete( )

1

File

read( )

read() fill the code..

Mr Analysisand Design Standards

Model everything

Now we also have modeling languages

This is unsmart!

Page 22: Smart+Shanghai+2008 09 05

Smart with Modeling

• If the modeling language isn’t executable, focus on the essentials only – the skinny system

• Don’t duplicate the effort by modeling everything,

Full Fledged System

This is smart!

22© 2008 Ivar Jacobson International

Page 23: Smart+Shanghai+2008 09 05

Unsmart with Test

We have two classes of people: Thinkers and Cleaners– Testers are the cleaners in the software world

This is unsmart!

23© 2008 Ivar Jacobson International

• Testing is done as an after thought – too late and too expensive

Kurt Bittner
I would NOT tell State Farm that they have too many database people. The database people do MOSTLY production support work, and only a little "development" work -- and you are right, it would be politically incorrect (and would gain us lots of enemies).On this slide, you should make clear that some people think these things - but that we think these things are not smart.
Page 24: Smart+Shanghai+2008 09 05

Smart with Test

Our mantra: •Whatever you do you are not done until you have verified that you did what you wanted to do.

This is smart!

We are all testers !

24© 2008 Ivar Jacobson International

Page 25: Smart+Shanghai+2008 09 05

Unsmart with Documentation

• Over many years there has been an over-emphasis on teams producing documentation

VisionDocument Template

This is unsmart!

Architecture DescriptionTemplate

Use Case Specification Template

Thou shalt follow the document

template I give you to document every part of the

system.25© 2008 Ivar Jacobson International

Page 26: Smart+Shanghai+2008 09 05

Smart with Documentation

Myth: The idea that you document software so people later can read what you did.

This is smart!

Emphasize the essentials…

…making sure the documents add value.

26© 2008 Ivar Jacobson International

– Law of nature: People don’t read documents– Focus on the essentials, the placeholders for conversations,

people figure out the rest themselves

Page 27: Smart+Shanghai+2008 09 05

Unsmart with Process

We have got enough of process

Unified Process

AgileCMMICMMI

ProjectLead

Existing Way of Working

27© 2008 Ivar Jacobson International

Ivar Jacobson
I think we shoudl show the existing way of working being pushed off a cliff.Ivar: good idea
Ivar Jacobson
It's not clear why we are picking n CMMI adopters.Ivar: we need to pick on something...any other suggestion than CMMI
Ng Pan Wei
panwei: these are different shapes to show that they come from different camps.panwei CMMI shapes have strong outline to show that they are heavy weight! and also show that they are different from unified process and agile (because unified process **is** agile)
Page 28: Smart+Shanghai+2008 09 05

Unsmart with Process

We have got enough of process

Unified Process

AgileCMMICMMI

ProjectLead

28© 2008 Ivar Jacobson International

Existing Way of Working

Ivar Jacobson
It's not clear why we are picking n CMMI adopters.Ivar: we need to pick on something...any other suggestion than CMMI
Ng Pan Wei
I think we shoudl show the existing way of working being pushed off a cliff.Ivar: good ideaPan-wei: The cliff takes too much real estate.
Page 29: Smart+Shanghai+2008 09 05

New Way of Working

Unsmart with Process

We have got enough of process

Unified Process

AgileCMMICMMI

ProjectLead

29© 2008 Ivar Jacobson International

I want a new way of working

Ng Pan Wei
ian: It might be nice to see the good old process engineer weaving their web of process on here somewhere.Ivar: agreepanwei: weaving is difficult to draw or animatepanwei: -I have the irregular shapes trying to join the main selected process but bouncing apart because of incompatibility.
Ng Pan Wei
panwei: As an example, the guy adopts CMMI, so he takes everyting. He tries to take stuff from UP - e.g. iterative, but it cannot fit and is rejected.panwei: The guy tries to adopt agile. That does not fit either and gets rejected.
Page 30: Smart+Shanghai+2008 09 05

New Way of Working

Unsmart with Process

We have got enough of process

Unified Process

AgileCMMICMMI

ProjectLead

This is unsmart!

30© 2008 Ivar Jacobson International

I want to be agile

I like to have some of unified process

Let me start with CMMI, maybe

Does not workI cannot get it together

Ng Pan Wei
ian: It might be nice to see the good old process engineer weaving their web of process on here somewhere.Ivar: agreepanwei: weaving is difficult to draw or animatepanwei: -I have the irregular shapes trying to join the main selected process but bouncing apart because of incompatibility.
Ng Pan Wei
panwei: As an example, the guy adopts CMMI, so he takes everyting. He tries to take stuff from UP - e.g. iterative, but it cannot fit and is rejected.panwei: The guy tries to adopt agile. That does not fit either and gets rejected.
Page 31: Smart+Shanghai+2008 09 05

Existing Way of Working

Smart with process

Law of Nature: People don’t read process booksFocus on the essentials, people figure out the rest themselves

31

Use a practice-based approach such as EssWorkPractices are separate but composablePractices come from any source in the worldImprove in small steps

© 2008 Ivar Jacobson International

Ivar Jacobson
The text in this box should come one line at a time on clicks
Page 32: Smart+Shanghai+2008 09 05

Smart with process

Law of Nature: People don’t read process booksFocus on the essentials, people figure out the rest themselves

32

Use a practice-based approach such as EssWorkPractices are separate but composablePractices come from any source in the worldImprove in small steps

© 2008 Ivar Jacobson International

New Way of Working

This is smart!

Ivar Jacobson
The New WoW looks to simple...need to figure out what to do to makeit look good
Page 33: Smart+Shanghai+2008 09 05

Agenda

1. What does Smart mean?2. Smart Cases – Recognize it when you see it3. How do you become Smart4. What does Smart really mean?

33© 2008 Ivar Jacobson International

Page 34: Smart+Shanghai+2008 09 05

How do you become Smart?

• You need knowledge and experience in a never-ending stream– continuously striving for improvement

• You need good practices from different domains– Software engineering, process

improvement, social engineering• ... but don’t throw away what you have,

– instead start with what you have– Find your pain points and improve in small

steps – one practice at a time

34

It is as simple as that

© 2008 Ivar Jacobson International

Ivar Jacobson
There is some overlap with slide 30
Page 35: Smart+Shanghai+2008 09 05

Agenda

1. What does Smart mean?2. Smart Cases – Recognize it when you see it3. How do you become Smart4. What does Smart really mean?

35© 2008 Ivar Jacobson International

Page 36: Smart+Shanghai+2008 09 05

What does Smart really mean?

• If you didn’t get what smart is so far let me summarize it to you

36© 2008 Ivar Jacobson International

Ian Spence
Not keen on the graphic - I would prefer some kind of summary.It works very well for my storyIan: Fair enough, but you need to add the story to the slide notes for other presenters.
Page 37: Smart+Shanghai+2008 09 05

Of course, eventually it comes back to you, but

37

We can all become smarter

© 2008 Ivar Jacobson International

Ivar Jacobson
"we can always become smarter", which can be contrasted with other camps for example "but we can't always become more agile".Ivar: I am not sure what you mean here...why would we say: we can't always become more agile
Page 38: Smart+Shanghai+2008 09 05

38

Thank You

© 2008 Ivar Jacobson International

This is smart!

Page 39: Smart+Shanghai+2008 09 05

Article images