(1) experimental software engineering in internet startups: an oxymoron? philip johnson...

9
1) Experimental Software Engineering in Internet Startups: An Oxymoron? Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu, HI USA

Upload: wesley-pearson

Post on 26-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: (1) Experimental Software Engineering in Internet Startups: An Oxymoron? Philip Johnson Collaborative Software Development Laboratory Information and Computer

(1)

Experimental Software Engineering in Internet Startups: An Oxymoron?

Philip JohnsonCollaborative Software Development

LaboratoryInformation and Computer Sciences

University of HawaiiHonolulu, HI USA

Page 2: (1) Experimental Software Engineering in Internet Startups: An Oxymoron? Philip Johnson Collaborative Software Development Laboratory Information and Computer

(2)

“Experimental Methodology”

True confession: there wasn’t any.

Thoughts based upon direct experiences with:•Large, mature hardware/software corp.

-Instrumentation devices, C++, embedded

•Small, mature ocean engineering corp.-Cable lay software, Fortran, VB

•Small, explosively growing Internet startup-N-tier web information system, Java

Page 3: (1) Experimental Software Engineering in Internet Startups: An Oxymoron? Philip Johnson Collaborative Software Development Laboratory Information and Computer

(3)

Issues What differentiates an Internet startup from other kinds of software development organizations?

Why would an Internet startup find experimental software engineering useful?

What are the challenges of getting an Internet startup to practice experimental software engineering?

Page 4: (1) Experimental Software Engineering in Internet Startups: An Oxymoron? Philip Johnson Collaborative Software Development Laboratory Information and Computer

(4)

Things that are not different

Politics

Organizational volatility

Rapidly changing requirements

Variability in skill level

Page 5: (1) Experimental Software Engineering in Internet Startups: An Oxymoron? Philip Johnson Collaborative Software Development Laboratory Information and Computer

(5)

Things that are different No legacy code, languages, environments, customers

No “we’ve always done it that way”

No developer or management deadwood

Page 6: (1) Experimental Software Engineering in Internet Startups: An Oxymoron? Philip Johnson Collaborative Software Development Laboratory Information and Computer

(6)

Benefits Standard benefits:•Improved quality•Better planning •etc.

Unique benefits to Internet startups:•Faster development of “self-awareness”

Page 7: (1) Experimental Software Engineering in Internet Startups: An Oxymoron? Philip Johnson Collaborative Software Development Laboratory Information and Computer

(7)

Obstacles Mature companies often decide to invest in Exp. SE because of past failures.

Internet startups•Have no past history of failure•May be clueless about software development

•May be ridiculously optimistic

Page 8: (1) Experimental Software Engineering in Internet Startups: An Oxymoron? Philip Johnson Collaborative Software Development Laboratory Information and Computer

(8)

Recommendations Data collection must be “free”.•Instrument IDE, version control system, defect tracking system, etc.

Startups love to outsource. Exploit that.•You want to “partner”, not be an employee.

Equity compensation first, cash second. •Risk takers like to work with risk takers.

Startups are desperate to be cutting edge.•Experimentation must be rad, not trad.

Page 9: (1) Experimental Software Engineering in Internet Startups: An Oxymoron? Philip Johnson Collaborative Software Development Laboratory Information and Computer

(9)

Things to discuss What kinds of experiments would be suited to a startup environment?

What kinds of experimental methods give results in weeks or days, not months or years?

What is the “elevator pitch” for exp. SE?

How can the current popularity of incubators and accelerators be exploited (in-house experimental software engineering).