374rnberg 2008-11-11.ppt )
TRANSCRIPT
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
Our goal is the same as always!
Good
Software
Good Software, Quickly and at Low Cost!
© 2008 Ivar Jacobson International 2
What it takes
Low Cost
QuicklyCompetent & Motivated People
Good SoftwareUseful Extensible Reliable
Low CostLarge Scale Reuse of Components
© 2008 Ivar Jacobson International 3
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
Some people feel we are this good
• How a Software Company would design a Treeswing
© 2008 Ivar Jacobson International 5
Let’s look at our press
© 2008 Ivar Jacobson International 6
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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!
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
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
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
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!
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
Unsmart with Process/Methodology/Approach
Unified Process
CMMICMMIAgile
Project
Lead
Existing Way of Working
© 2008 Ivar Jacobson International 31
Unsmart with Process/Methodology/Approach
Unified Process
CMMICMMIAgile
Project
Lead
© 2008 Ivar Jacobson International
Existing Way of Working
32
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
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
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
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
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!
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!
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
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
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
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
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
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
Of course, eventually it comes back to you, but
We can all become
© 2008 Ivar Jacobson International
become smarter.
45
Thank
© 2008 Ivar Jacobson International
Thank You
46