PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

51
Seven Habits of Highly Impactful Empirical Software Engineers Laurie Williams North Carolina State University

Transcript of PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Page 1: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Seven Habits of Highly

Impactful Empirical Software

Engineers

Laurie Williams

North Carolina State University

Page 2: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Who am I … Where I’m Coming From Degree confusion: BS in Industrial Engineering (Lehigh

University); MBA (Duke University); PhD in Computer

Science (University of Utah)

Worked for IBM for 9 years (engineering then software)

Then … was a non-traditional PhD student with 3 kids

NC State since August 2000

10 PhD, 13 MS completed; 6 PhD, 2 MS in process

~ 160 refereed papers; ~70+% with industrial co-author

$5M+ in funding: ~$3M government; ~$2M industrial

Active in consulting and industrial training

Page 3: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

What is a habit? noun 1. an acquired behavior pattern regularly followed

until it has become almost involuntary: the habit of

looking both ways before crossing the street.

Knowledge: what to do and why

Skill: how to do it

Desire: the want to do

We are what we repeatedly do,

Excellence, then, is not an act, but a habit.

-- Aristotle

Definition by Dictionary.com Unabridged

Based on the Random House Dictionary, © Random House, Inc. 2011.

Photo from: http://tkofthewildboyz.blogspot.com/2008/10/vacay-pt-ii-new-york.html

Page 4: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

What is Impact? im·pact [n. im-pakt; v. im-pakt]

noun 1. the striking of one thing against another; forceful

contact; collision: The impact of the colliding cars broke

the windshield.

noun 2. the force exerted by a new idea, concept,

technology, or ideology: the impact of the industrial

revolution.

Definitions from Dictionary.com Unabridged

Based on the Random House Dictionary, © Random House, Inc. 2011.Photos from http://knowledge.allianz.com/?823/road-safety and http://ed101.bu.edu/StudentDoc/current/ED101sp09/rcm/

Page 5: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Structured based upon …

© 2004

Amazon book rank: 54

Now that’s impact!

Page 6: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Who may we want to impact?

Practitioners Colleagues

Students & Mentees Family & Friends

Page 7: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

… with our research results

They use our stuff! They cite our stuff!

We collaborate.

They follow our methods.

They alter their research path.

Page 8: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

… and with our personal (inter)actions

They grow to be happy and successful. Our lives are more enjoyable.

Their ideas are enriched.Their professional life is changed.

Page 9: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

My goal for this talk …

We are what we repeatedly do,Excellence, then, is not an act, but a habit.

-- Aristotle

To be an impactful empirical software engineer by impacting each of you in at least some small way to change your habit(s) so you can impact someone else … in a positive way of course

And hopefully learn from you as well

Page 10: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Covey’s Seven Habits Personal Victory… independence

Be Proactive

Begin with the End in Mind

Put First Things First

Public Victory … interdependence

Think Win/Win

Seek First to Understand, Then to be Understood

Synergize

Renewal … continuous improvement

Sharpen the Saw

Page 11: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Personal: Be Proactive

“Proactive people are smart, they’re value driven, they

read reality, and they know what’s needed.”

Think about it: who do you want to impact as an

empirical software engineer?

Figure from Covey, S., Seven Habits of Highly Effective People, 2004.

Page 12: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Software technology maturation Basic Research

Recognize problem,

investigate concepts

Concept Formulation

Refine ideas, publish

partial solutions

Development & Extension

Try it out, clarify, refine

Internal ExplorationStabilize, port, use for

industrial-strength problems

External Exploration

Broaden user group,

extend

Popularization

Propagate through

community

Redwine, S. and Riddle, S., Software Technology Maturation, ICSE 1985.

state of the art:

colleagues/students

state of the

practice:

practitioners

Page 13: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Critical factors in software

maturation Conceptual integrity

Clear recognition of need

Tuneability

Prior positive experience

Management commitment

Training

Page 14: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Inhibitors in software

technology maturation Internal transfer

High cost

Contracting disincentives

Psychological hurdles

Easily modified technology

Page 15: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Facilitators to software

technology maturation Prior success

Incentives

Technically astute managers

Readily available help

Latent demand

Simplicity

Incremental extensions to current technology

Page 16: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Software technology maturation Basic Research

Recognize problem,

investigate concepts

Concept Formulation

Refine ideas, publish

partial solutions

Development & Extension

Try it out, clarify, refine

Internal ExplorationStabilize, port, use for

industrial-strength problems

External Exploration

Broaden user group,

extend

Popularization

Propagate through

community

Redwine, S. and Riddle, S., Software Technology Maturation, ICSE 1985.

Where’s the

beef . . . .

validation?

state of the art:

colleagues/students

state of the

practice:

practitioners

“The best process for transitioning

technology seems to be incremental

expansion in small steps with trial use

and the careful gathering of empirical

evidence concerning the technology’s

value.”

Page 17: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)
Page 18: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Personal: Begin with the End

in Mind “To begin with the end in mind means to start with an

understanding of your destination. It means to know

where you’re going so that you better understand

where you are now and so that the steps you take are

always in the right direction.”

“We may be very busy, we may be very efficient, but

we will also be truly effective only when we begin with

the end in mind.”

Page 19: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

What is Your Destination? Who are you desiring to impact?

What validation techniques are you using to impact them? Do they like that technique?

state-of-the-art state-of-the-practice

Page 20: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

The Impact Project

Funded by US NSF, UK Institution of Engineering and Technology, IEEE Computer Society, Japanese government

Solid and scholarly assessment of the impact software engineering research has had on software engineering practice

Literature reviews and personal interviews

Case studies: configuration management; modern programming languages; runtime assertion checking; reviews and walkthroughs; cost and economic models; software architecture

Osterweil, L., Ghezzi, C., Kramer, J., and Wolf, A., Determining the Impact of Software Engineering

Research on Practice, IEEE Computer, March 2008.

Page 21: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

The Impact Project Findings

Lasting impact seems to come most readily from ongoing

interactions between research and practice

Research impact might not be fully felt for at least 10 years

(in terms of widespread adoption)

Continuous support for sustaining a vigorous research

community is required

A research community must provide nurturing in a variety of

ways

The interplay between research and practice can be difficult

to determine precisely and communicate clearly

Osterweil, L., Ghezzi, C., Kramer, J., and Wolf, A., Determining the Impact of Software Engineering

Research on Practice, IEEE Computer, March 2008.

Page 22: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Disparity of Acceptability and

Desirability

State-of-the-art: Researchers look for how well a theory has been validated

State-of-the-practice: Industry looks for how easily understandable evidence of how well the technique works in their own environment (real world validation)

LW “soap box”: Researchers are often the gatekeepers of what empirical software engineering research can reach industry, often using their own “theory validation” filter that is not important to the customer of the research (industry).

Zelkowitz, M., Wallace, D. Binkley, D., Understanding the Culture Clash in Software Engineering

Technology Transfer, Tech. Report No. 2, University of Maryland, College Park, Maryland, 1998.

Page 23: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Personal: Put First Things

First “Don’t prioritize your schedule instead … schedule your

priorities.”

Page 24: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Students

“Focus on the

students, since graduating

great students means you'll

produce great

research, while focusing on

the research may or may

not produce great students.”

Nico Habermann

1932-1993

… obtained from the web

page of David Notkin, Nico’s

academic son

Page 25: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)
Page 26: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)
Page 27: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)
Page 28: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)
Page 29: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)
Page 30: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)
Page 31: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Focus

“Nothing focuses the mind like a noose.” -- Mark Twain

Page 32: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Real Impact

Page 33: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Laurie’s Laws

Page 34: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Public: Think Win/Win “Win/win is a frame of mind and heart that constantly

seeks mutual benefit in all human interactions.”

Page 35: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)
Page 36: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)
Page 37: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Win/Win in our personal

interactions Peer review Why to accept, rather than why to reject

How to help the authors advance rather than to discourage

Be inclusive of topic and research technique, not biased to your own technique or views

Sharing Techniques

Guidance/Advice/Mentoring

Lose the personal or research group rivalries and pet theories

Communicate benefits of (participating in) research in terms of benefits to practitioners/participants

…. There really is “enough” for all of us so we can all make progress

Page 38: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Public: Seek First to Understand,

Then to be Understood

“Seeking first to understand, diagnosing before you

prescribe, is hard … It takes a great deal of security to

go into a deep listening experience because you open

yourself up to be influenced … It’s a paradox, in a

sense, because in order to have influence, you have

to be influenced.”

Page 39: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Understanding our “customer”

Potts, C., Software Engineering Research Revisited, IEEE Software, Sept 1993..

Problem

often

“related”

to desired

technical

solution

Page 40: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Understanding our “customer”

Potts, C., Software Engineering Research Revisited, IEEE Software, Sept 1993..

Industrial case

studies that

exhibit problems

of interest …

scale/complexity;

unpredictability;

dynamism

Evolving the

state of the

art, possibly

multiple

researchers/

groups

Page 41: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Potts, C., Software Engineering Research Revisited, IEEE Software, Sept 1993..

Page 42: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Potts, C., Software Engineering Research Revisited, IEEE Software, Sept 1993..

Page 43: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Posterchild Vic Basili and NASA’s Software Engineering Laboratory

Industry-as-laboratory

Page 44: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Public: Synergize “Synergy means that 1 + 1 may equal 8, 16, or even

1600. The synergistic position of high trust produces

solutions better than any originally proposed, and all

parties know it. Furthermore, they genuinely enjoy the

creative enterprise.”

Page 45: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Agile Manifesto/Alliance• XP, SCRUM, DSDM,

Adaptive Software Development, Crystal,

FDD

• February 2001 (Snowbird, UT)

Page 46: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Survey says …. They nailed it with the Agile Principles

Page 47: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

It is in their collaboration and cooperation that they rocked

the software industry.

Page 48: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Reprisal “… in order to have influence, you have to be

influenced.”

… in order to influence, you have to really listen, even if

that means you need to realize that no matter how

smart you are and how groundbreaking your past

research was, you might just need to alter your path

due to new information or trends.

Page 49: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Renewal: Sharpen the Saw “This is the single most powerful investment we can

ever make in life – investment in ourselves, in the only

instrument we have with which to deal with life and to

contribute. We are the instruments of our own

performance, and to be effective we, we need to

recognize the importance of taking time regularly to

sharpen the saw …”

Page 50: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

Final Thoughts It is in giving that you receive … do empirical research

for the greater good.

Actions speak louder than words.

When you look back on your career (as an empirical

software engineer), who do you want to have

impacted? Develop habits of excellent to focus on

those things now.

Page 51: PROMISE 2011: Seven Habits of High Impactful Empirical Software Engineers (Laurie Williams)

References Covey, S., Seven Habits of Highly Effective People, 2004.

Osterweil, L., Ghezzi, C., Kramer, J., and Wolf, A., Determining the Impact of Software Engineering Research on Practice, IEEE Computer, March 2008.

Potts, C., Software Engineering Research Revisited, IEEE Software, Sept 1993.

Redwine, S. and Riddle, S., Software Technology Maturation, ICSE 1985.

Zelkowitz, M., Wallace, D. Binkley, D., Understanding the Culture Clash in Software Engineering Technology Transfer, Tech. Report No. 2, University of Maryland, College Park, Maryland, 1998.