(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
(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
(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?
(4) Things that are not different Politics Organizational volatility Rapidly changing requirements Variability in skill level
(5) Things that are different No legacy code, languages, environments, customers No “we’ve always done it that way” No developer or management deadwood
(6) Benefits Standard benefits: Improved quality Better planning etc. Unique benefits to Internet startups: Faster development of “self-awareness”
(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
(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.
(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).