374rnberg 2008-11-11.ppt )

46
Be Smart! or What they don’t teach you about software at school Ivar Jacobson with Ian Spence, Pan Wei Ng and Kurt Bittner [email protected] www.ivarblog.com

Upload: others

Post on 12-Sep-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 374rnberg 2008-11-11.ppt )

Be Smart!or

What they don’t teach you about software at schoolabout software at school

Ivar Jacobsonwith

Ian Spence, Pan Wei Ng and Kurt Bittner

[email protected]

Page 2: 374rnberg 2008-11-11.ppt )

Our goal is the same as always!

Good

Software

Good Software, Quickly and at Low Cost!

© 2008 Ivar Jacobson International 2

Page 3: 374rnberg 2008-11-11.ppt )

What it takes

Low Cost

QuicklyCompetent & Motivated People

Good SoftwareUseful Extensible Reliable

Low CostLarge Scale Reuse of Components

© 2008 Ivar Jacobson International 3

Page 4: 374rnberg 2008-11-11.ppt )

How good are we at software development?

Usable:

Extensible:

Low High

Low High

Reliable: Low High

Reuse of Components: Low High

Competency: Low High

Motivation: Low High

© 2008 Ivar Jacobson International 4

Page 5: 374rnberg 2008-11-11.ppt )

Some people feel we are this good

• How a Software Company would design a Treeswing

© 2008 Ivar Jacobson International 5

Page 6: 374rnberg 2008-11-11.ppt )

Let’s look at our press

© 2008 Ivar Jacobson International 6

Page 7: 374rnberg 2008-11-11.ppt )

It certainly seems like …

Usable:

Extensible:

Low High

Low High

Reliable: Low High

Reuse of Components: Low High

…we need to get better!

Competency: Low High

Low HighMotivation:

© 2008 Ivar Jacobson International 7

Page 8: 374rnberg 2008-11-11.ppt )

One major obstacle…we are a fashion industry

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

CMMICMMI– 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 a silver bullet

This is unsmart!

© 2008 Ivar Jacobson International 8

Page 9: 374rnberg 2008-11-11.ppt )

One major obstacle…we are 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

CMMICMMI– 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!

© 2008 Ivar Jacobson International 9

Page 10: 374rnberg 2008-11-11.ppt )

One major obstacle…we are 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

CMMICMMI– 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!

© 2008 Ivar Jacobson International 10

Page 11: 374rnberg 2008-11-11.ppt )

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?

© 2008 Ivar Jacobson International 11

Page 12: 374rnberg 2008-11-11.ppt )

What does Smart mean?

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

- Albert Einstein

This is smart!

E= mc2

© 2008 Ivar Jacobson International 12

Page 13: 374rnberg 2008-11-11.ppt )

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 – 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 ++

Mr Smart

© 2008 Ivar Jacobson International 13

Page 14: 374rnberg 2008-11-11.ppt )

Agenda

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

1. People2. Teams3. Projects4. Requirements5. Architecture6. Modeling7. Test

What they don’t teach you

about software at school 7. Test

8. Documentation9. Process10.Knowledge

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

© 2008 Ivar Jacobson International

at school

14

www.ivarblog.com

Page 15: 374rnberg 2008-11-11.ppt )

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!

© 2008 Ivar Jacobson International

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

15

Page 16: 374rnberg 2008-11-11.ppt )

Smart with People

Case study: Ericsson AXE – the largest commercial success story ever in Sweden–We had no tools and no defined process–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

Have you ever seen any software being developed by process and tools?

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

–This could only have been done with people – good people

This is smart!

© 2008 Ivar Jacobson International 16

Page 17: 374rnberg 2008-11-11.ppt )

Unsmart with Teams

• Many software projects involve 20+ people• Often organized into stove-pipe groups:

– Requirements, Analysis, Design, Coding, Testing, etc.

This is unsmart!

Requirements Implementation Test

© 2008 Ivar Jacobson International 17

Page 18: 374rnberg 2008-11-11.ppt )

Smart with Teams

• Software development is a team sport• Teams are cross-functional

– Including analysts, developers, testers etc…

• Ideal size of the team is less than 10 people– Bigger projects should be organized as team of teams

This is smart!

© 2008 Ivar Jacobson International 18

Page 19: 374rnberg 2008-11-11.ppt )

Unsmart with Projects

• Most companies still follow the waterfall approach

Requirements

High-Level Design

© 2008 Ivar Jacobson International

Detailed-Level Design

Coding

Testing

This is unsmart!

Crash!

19

Page 20: 374rnberg 2008-11-11.ppt )

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 System

© 2008 Ivar Jacobson International

Think big, build in small steps

This is smart!

20

Page 21: 374rnberg 2008-11-11.ppt )

Unsmart with Requirements

A constant in software development is that requirements

always change

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

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

Thou shalt

work with fixed

requirements for

fixed prices

the solution

This is unsmart!

© 2008 Ivar Jacobson International 21

Page 22: 374rnberg 2008-11-11.ppt )

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

I understand your needs, let’s

work together to make sure

we develop the right system

for the right price. This is smart!

© 2008 Ivar Jacobson International 22

Page 23: 374rnberg 2008-11-11.ppt )

Unsmart with Architecture

No architecture

Just Code

Refactor later

Mr EnterpriseArchitect on Ivory Tower

I’ll design

everything up

Two extremes:

Mr Supposedly Agile

This is unsmart!

© 2008 Ivar Jacobson International

everything up

front

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

of its architecture

23

Page 24: 374rnberg 2008-11-11.ppt )

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!smart!

© 2008 Ivar Jacobson International

Skinny System Full Fledged System

ArchitecturalBlue Print

24

Page 25: 374rnberg 2008-11-11.ppt )

Unsmart with Modeling

We have always had programming languages.

Writingadd file [ numberOffile==MAX ] / flag OFF

add file

Actor A

Use 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 StandardsNow we also have modeling languages

25© 2008 Ivar Jacobson International

Mr HackerModel Nothing

Just 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: fillDocument ( )

7: readFile ( )

8: fillFile ( )

9: sortByName ( )

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

È-ÀÏ°ü¸®ÀÚ ´Â Àоî¿Â ¹®¼-ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼- °́ ü¿¡ ¼³Á¤À» ¿äÃ»Ç Ñ ´Ù.

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

Openning

ReadingClosing

flag OFF

close file

close file

Model everything

This is unsmart!

Page 26: 374rnberg 2008-11-11.ppt )

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!

26© 2008 Ivar Jacobson International

Page 27: 374rnberg 2008-11-11.ppt )

Unsmart with Test

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

We have two classes of people: Developers and Testers

– Developers are the creators…it is OK to create bugs as well

– Testers are the cleaners in the software world

This is unsmart!

© 2008 Ivar Jacobson International 27

Page 28: 374rnberg 2008-11-11.ppt )

Smart with Test

Our mantra: • Whatever you do you are not done until you have verified

that you did what you wanted to do.

We are all testers !

This is smart!

© 2008 Ivar Jacobson International 28

Page 29: 374rnberg 2008-11-11.ppt )

Unsmart with Documentation

• There has been an over-emphasis on teams producing documentation

Thou shalt

follow the document

template I give you to

document every part of

the system.

29© 2008 Ivar Jacobson International

This is unsmart!

Page 30: 374rnberg 2008-11-11.ppt )

Smart with Documentation

Myth: The idea that you document software so people later

can read what you did.

Emphasize the essentials…

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

people figure out the rest themselves

This is smart!

…making sure the documents add value.

30© 2008 Ivar Jacobson International

Page 31: 374rnberg 2008-11-11.ppt )

Unsmart with Process/Methodology/Approach

Unified Process

CMMICMMIAgile

Project

Lead

Existing Way of Working

© 2008 Ivar Jacobson International 31

Page 32: 374rnberg 2008-11-11.ppt )

Unsmart with Process/Methodology/Approach

Unified Process

CMMICMMIAgile

Project

Lead

© 2008 Ivar Jacobson International

Existing Way of Working

32

Page 33: 374rnberg 2008-11-11.ppt )

Unsmart with Process/Methodology/Approach

Unified Process

CMMICMMIAgile

I want a new way of working

New Way of Working

Project

Lead

© 2008 Ivar Jacobson International 33

Page 34: 374rnberg 2008-11-11.ppt )

Unsmart with Process/Methodology/Approach

We have got enough of process

Unified Process

CMMIAgileAgile

I want to have some of CMMI

I like to have some of unified process

Let me start with Agile, maybe

New Way of Working

Project

Lead

© 2008 Ivar Jacobson International

processmaybe

Does not workI cannot get it together

This is unsmart!

34

Page 35: 374rnberg 2008-11-11.ppt )

Existing Way of Working

Smart with Process/Methodology/Approach

1. Use a practice-based approach (such as EssWork)2. Practices are separate but composable3. Practices come from any source in the world4. Improve in small steps

© 2008 Ivar Jacobson International 35

Page 36: 374rnberg 2008-11-11.ppt )

Smart with Process/Methodology/Approach

And the Law of Nature: People don’t read process books

So focus on the essentials, people figure out the rest

themselves

New Way of Working This is

© 2008 Ivar Jacobson International

Working smart!

1. Use a practice-based approach (such as EssWork)2. Practices are separate but composable3. Practices come from any source in the world4. Improve in small steps

36

Page 37: 374rnberg 2008-11-11.ppt )

Unsmart with Knowledge

People have unlimited access to information:

– Wikipedia– Google– Lot’s of books

I’ve got all this

guidance but it

doesn’t help me

But it doesn’t make them smarter:

37© 2008 Ivar Jacobson International

Just collecting information on your internet is pointless now people can access the world-wide web.

smarter: – People don’t read– Information competes and

conflicts– It’s never put into context

This is unsmart!

Page 38: 374rnberg 2008-11-11.ppt )

Smart with Knowledge

Individuals just need enough to get the job done– Not the whole composed process– Just the bits needed for the specific point in time– Context sensitive to the problem at hand– Focused on the essentials

38© 2008 Ivar Jacobson International

I help witharchitecture

I help withuse cases

I help withIterative planning

They don’t want instructions they want help– Add active guidance, review, checking and

help by automation– Intelligent agents and smart tools

This is smart!

Page 39: 374rnberg 2008-11-11.ppt )

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?

© 2008 Ivar Jacobson International 39

Page 40: 374rnberg 2008-11-11.ppt )

How do you become Smart?

• You need knowledge in good (maybe best) practices– There are 100’s of practices, some of them are good

Risk-DrivenIterative

Development

Test-DrivenDevelopment

Business Modeling

Scrum Product-Line Engineering

Systems Engineering

© 2008 Ivar Jacobson International

• And you need experience in using them

Use-CaseDriven

Development

Use-CaseModeling

Robustness Analysis

User Stories

Aspect Orientation

PSP SOA

Retro-spectives

Business ProcessRe-Engineering

Prince2

Pair

Programming

ProgramManagement

40

Page 41: 374rnberg 2008-11-11.ppt )

How do you become Smart?

• You need knowledge in good (maybe best) practices– There are 100’s of practices, some of them are good

Risk-DrivenIterative

Development

Test-DrivenDevelopment

Business Modeling

Scrum Product-Line Engineering

Systems Engineering

© 2008 Ivar Jacobson International

• And you need experience in using them

Use-CaseDriven

Development

Use-CaseModeling

Robustness Analysis

User Stories

Aspect Orientation

PSP SOA

Retro-spectives

Business ProcessRe-Engineering

Prince2

Pair

Programming

ProgramManagement

41

Page 42: 374rnberg 2008-11-11.ppt )

How do you become Smart?

• You need knowledge in good (maybe best) practices– There are 100’s of practices, some of them are good

Risk-DrivenIterative

Development

Test-DrivenDevelopment

Business Modeling

Scrum Product-Line Engineering

Systems Engineering

© 2008 Ivar Jacobson International

• And you need experience in using them

Use-CaseDriven

Development

Use-CaseModeling

Robustness Analysis

User Stories

Aspect Orientation

PSP SOA

Retro-spectives

Business ProcessRe-Engineering

Prince2

Pair

Programming

ProgramManagement

42

Page 43: 374rnberg 2008-11-11.ppt )

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?

© 2008 Ivar Jacobson International 43

Page 44: 374rnberg 2008-11-11.ppt )

What does Smart really mean?

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

© 2008 Ivar Jacobson International 44

Page 45: 374rnberg 2008-11-11.ppt )

Of course, eventually it comes back to you, but

We can all become

© 2008 Ivar Jacobson International

become smarter.

45

Page 46: 374rnberg 2008-11-11.ppt )

Thank

© 2008 Ivar Jacobson International

Thank You

46