If you can't read please download the document
Upload
greg-wilson
View
65.367
Download
0
Embed Size (px)
Citation preview
Two Solitudes
Greg Wilson
Two Solitudes
Greg Wilson
Not as long ago as you might think
You are free to:
Copy, share, adapt, or re-mix;
Photograph, film, or broadcast;
Blog, live-blog, or post video of;
This presentation. Provided that:
You attribute the work to its author and respect the rights and licenses associated with its components.
Once Upon a Time...
Once Upon a Time...
1992:Get a PhD
Once Upon a Time...
1992:Get a PhD
1994:How can I teach software engineering when I've never shipped product?
Once Upon a Time...
1992:Get a PhD
1994:How can I teach software engineering when I've never shipped product?
So get a job at IBM and learn
Once Upon a Time...
1995:Realize that IBM ships softwaredespite its process
Once Upon a Time...
1995:Realize that IBM ships softwaredespite its process
We do things this way becausethat's the way we do things
Once Upon a Time...
1995:Realize that IBM ships softwaredespite its process
We do things this way becausethat's the way we do things
Kind of embarrassing, since I'd been telling scientistshow much they could learn from real programmers...
Once Upon a Time...
1995:So join a startup
Once Upon a Time...
1995:So join a startupA lean team of rockstars
Once Upon a Time...
1995:So join a startupA lean team of rockstars
Individually, we were pretty smart
Once Upon a Time...
1995:So join a startupA lean team of rockstars
Individually, we were pretty smart
Together, our IQs cancelled out
Once Upon a Time...
1995:So join a startupA lean team of rockstars
Individually, we were pretty smart
Together, our IQs cancelled out
Didn't learn anything aboutsoftware engineering
Meanwhile...
Meanwhile...
1986:Start programming for physicists onfirst-generation parallel computers
Meanwhile...
1986:Start programming for physicists onfirst-generation parallel computers
1996:What Should Computer ScientistsTeach to Physical Scientists andEngineers? (IEEE CS&E)
Meanwhile...
1986:Start programming for physicists onfirst-generation parallel computers
1996:What Should Computer ScientistsTeach to Physical Scientists andEngineers? (IEEE CS&E)
1997:OK, show us
Meanwhile...
1986:Start programming for physicists onfirst-generation parallel computers
1996:What Should Computer ScientistsTeach to Physical Scientists andEngineers? (IEEE CS&E)
1997:OK, show us
1998:First Software Carpentry courseat Los Alamos National Laboratory
What I Learned
The problem with teaching scientists isthey know what evidence looks like
What I Learned
The problem with teaching scientists isthey know what evidence looks like
The problem with Computer Science isI didn't know of any
Blind Alleys
Blind Alleys
But Then
But Then
Hey, we actually know stuff about things!
And Also
And Also
Hey, some people actually know how to do this!
So, In 2002...
So, In 2002...
What I knew about building software, I'd learned on the job
So, In 2002...
What I knew about building software, I'd learned on the job
Most of my colleagues didn't know that there had ever been more than half a dozen empirical studies of real software development
So, In 2002...
Hands up if you think this has changedin the last ten years...
What I knew about building software, I'd learned on the job
Most of my colleagues didn't know that there had ever been more than half a dozen empirical studies of real software development
Computer Science Isn't
Computer Science Isn't
How many experiments did you do as an undergraduate?
Computer Science Isn't
How many experiments did you do as an undergraduate?
How much experimental data did you analyze?
Computer Science Isn't
How many experiments did you do as an undergraduate?
How much experimental data did you analyze?
How many experimental papers did you read?
Computer Science Isn't
How many experiments did you do as an undergraduate?
How much experimental data did you analyze?
How many experimental papers did you read?
Hands up if you think this has changedin the last ten years...
OK, Now I'm Mad
2006:About to start teaching softwarearchitecture
OK, Now I'm Mad
2006:About to start teaching softwarearchitecture
Looked at over a dozen books withthose two words in their titles
OK, Now I'm Mad
2006:About to start teaching softwarearchitecture
Looked at over a dozen books withthose two words in their titles
How to describe architectures
OK, Now I'm Mad
2006:About to start teaching softwarearchitecture
Looked at over a dozen books withthose two words in their titles
How to describe architectures
How to develop architectures
OK, Now I'm Mad
2006:About to start teaching softwarearchitecture
Looked at over a dozen books withthose two words in their titles
How to describe architectures
How to develop architectures
But no actual architectures!
OK, Now I'm Mad
The Question Is
The Question Is
Where are all of our examples?
The Question Is
That's how everybody else teaches...
Where are all of our examples?
The Answer Is
Few and far between
The Answer Is
Few and far between
From: Greg WilsonSubject: Beautiful CodeDate: May 17, 2006
I hope you don't mind mail out of the blue, but I'm working on anew book project with O'Reilly called "Beautiful Code" and wouldlike to ask you to contribute an article-length section. Profitsfrom the book will be donated to Amnesty International.
The book will be a collection of master classes in software design.In each chapter, a well-known software developer will present oneof his or her favorite pieces of code, then explain what makes itparticularly appealing. The aim is to "think aloud" while walkingthrough its design and implementation, so that junior developerscan learn to see through more experienced developers eyes.
Thanks,Greg
I expected
From: [name withheld]Subject: re: Beautiful CodeSorry, I'm too busy. Good luck.
I expected
From: [name withheld]Subject: re: Beautiful CodeSorry, I'm too busy. Good luck.
Most people said
From: [name withheld]Subject: re: Beautiful CodeI don't think I've ever written any beautiful code,but I'd really like to read the book when it's done.
I expected
From: [name withheld]Subject: re: Beautiful CodeSorry, I'm too busy. Good luck.
Most people said
From: [name withheld]Subject: re: Beautiful CodeI don't think I've ever written any beautiful code,but I'd really like to read the book when it's done.
But quite a few said
From: [name withheld]Subject: re: Beautiful CodeSure, count me in!
Beauty Comes in All Sizes
Beauty Comes in All Sizes
Beauty Comes in All Sizes
Beauty Comes in All Sizes
A Beautiful Failure
No uptake as a textbook
A Beautiful Failure
No uptake as a textbook
A Beautiful Failure
No uptake as a textbook
Too eclectic to fit anyone's curriculum?
If At First You Don't Succeed...
If At First You Don't Succeed...
2007:Join faculty at the University of Toronto
If At First You Don't Succeed...
To: ResearcherFrom: Practitioner
2007:Join faculty at the University of Toronto
If At First You Don't Succeed...
To: ResearcherFrom: Practitioner
2007:Join faculty at the University of Toronto
To: PractitionerFrom: Researcher
The Result
The Result
The Result
Yup, that's it,right there
The Result
http://neverworkintheory.org
The Result
http://neverworkintheory.org
Ric Holt's grad course
If At First You Don't Succeed...
If At First You Don't Succeed...
try, try again.
If At First You Don't Succeed...
try, try again.
If it still doesn't work,
give up.
If At First You Don't Succeed...
try, try again.
If it still doesn't work,
give up.
There's no point being
a damn fool about it.
Two Solitudes
Two Solitudes
The academic system does not respect practitioners' knowledge (or timescales).
Two Solitudes
The academic system does not respect practitioners' knowledge (or timescales).I know whereof I speak.
Two Solitudes
The academic system does not respect practitioners' knowledge (or timescales).I know whereof I speak.
Practitioners don't understand that computer scientists don't care about building software.
Two Solitudes
The academic system does not respect practitioners' knowledge (or timescales).I know whereof I speak.
Practitioners don't understand that computer scientists don't care about building software.They are about the science of computing.
In Our Particular Case
Most practitioners(and computer scientists)simply don't knowwhat empirical results exist(or how to interpret them).
How Not to Fix This
How Not to Fix This
Let's organize a speed-dating session withsmall companies and startups at ICSE 2013
How Not to Fix This
Let's organize a speed-dating session withsmall companies and startups at ICSE 2013
100 researchers + 100 practitioners5 minutes of one-to-one conversationThen shift left one chair
How Not to Fix This
Let's organize a speed-dating session withsmall companies and startups at ICSE 2013
100 researchers + 100 practitioners5 minutes of one-to-one conversationThen shift left one chair
How Not to Fix This
I suspect that there are very few start-ups with