HERO: Online Real-time Vehicle Tracking in Shanghai Xuejia Lu 11/17/2008.
Smart+Shanghai+2008 09 05
-
Upload
guestaa42e9 -
Category
Technology
-
view
567 -
download
0
Transcript of 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
Some people feel we are this good
• How a Software Company would design a Treeswing
Let’s look at our press
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:
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
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!
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!
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?
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
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
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
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
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
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!
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
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
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
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
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
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!
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
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
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
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
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
Unsmart with Process
We have got enough of process
Unified Process
AgileCMMICMMI
ProjectLead
Existing Way of Working
27© 2008 Ivar Jacobson International
Unsmart with Process
We have got enough of process
Unified Process
AgileCMMICMMI
ProjectLead
28© 2008 Ivar Jacobson International
Existing Way of Working
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
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
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
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!
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
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
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
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
Of course, eventually it comes back to you, but
37
We can all become smarter
© 2008 Ivar Jacobson International
38
Thank You
© 2008 Ivar Jacobson International
This is smart!
Article images