54
Spreadsheets are code Felienne Hermans (@felienne)

Spreadsheets are code

Embed Size (px)

DESCRIPTION

I have said it before, and I'll say it again: Spreadsheets are code. This talk explains why and discusses the implications.

Citation preview

Page 1: Spreadsheets are code

Spreadsheets are codeFelienne Hermans (@felienne)

Page 2: Spreadsheets are code

Spreadsheets are codeFelienne Hermans (@felienne)

In this slidedeck I explain whyy spreadsheets are code, and what we can do with that idea.

Page 3: Spreadsheets are code

Spreadsheets are mislabeled

Page 4: Spreadsheets are code

Spreadsheets are mislabeled

People often think of spreadsheets as data, but...

Page 5: Spreadsheets are code

Spreadsheets are code

Page 6: Spreadsheets are code

Spreadsheets are code

I have made it my life’s work to spread the happy word

“Spreadsheets are code!”

Page 7: Spreadsheets are code

Spreadsheets are code

I have made it my life’s work to spread the happy word

“Spreadsheets are code!”

If you don’t immediately believe me, I have three reasons*

* If you do believe me, skip the next 10 slides ;)

Page 8: Spreadsheets are code

1) Used for similar problems

Page 9: Spreadsheets are code

This tool (for stock price computation) could have been built in any language. C, JavaScript, COBOL, or Excel.

The problems Excel is used for are often (not always) similar to problems solved in different languages.

Page 10: Spreadsheets are code

2) Formulas are Turing complete

Page 11: Spreadsheets are code

2) Formulas are Turing complete

I go to great lengths to make my point. To such great lengths that I built a Turing machine in Excel, using formulas only.

Page 12: Spreadsheets are code

Here you see it in action. Every row is an consecutive step of the lint.

This makes it, in addition to a proof that formulas are Turing complete,Also a nice visualization of a Turing machine.

Page 13: Spreadsheets are code

3) They suffer from the same problems

Page 14: Spreadsheets are code

3) They suffer from the same problems

Page 15: Spreadsheets are code

3) They suffer from the same problems

Page 16: Spreadsheets are code

3) They suffer from the same problems

Page 17: Spreadsheets are code

In summary: both the activities, complexity and problems are the

same

Page 18: Spreadsheets are code

So if spreadsheets are code, can we apply software engineering methods?

Page 19: Spreadsheets are code
Page 20: Spreadsheets are code

In software, tools have been created to

help programmers understand code

Page 21: Spreadsheets are code
Page 22: Spreadsheets are code

Speadsheets however, lack support for testing, refactoring and code analysis.

Page 23: Spreadsheets are code

My goals is to bring those tools to spreadsheets

Page 24: Spreadsheets are code

In my dissertation, I defined smellsfor spreadsheet formulas

Page 25: Spreadsheets are code

www.felienne.com/publications

In my dissertation, I defined smellsfor spreadsheet formulas

Page 26: Spreadsheets are code

If you say smells

Page 27: Spreadsheets are code

If you say smells, you say refactoring

Page 28: Spreadsheets are code

So, we built BumbleBee: a refactoring tool for spreadsheets

Page 29: Spreadsheets are code

So, we built BumbleBee: a refactoring tool for spreadsheets

Page 30: Spreadsheets are code
Page 31: Spreadsheets are code
Page 32: Spreadsheets are code
Page 33: Spreadsheets are code
Page 34: Spreadsheets are code
Page 35: Spreadsheets are code
Page 36: Spreadsheets are code
Page 37: Spreadsheets are code
Page 38: Spreadsheets are code
Page 39: Spreadsheets are code

You can download BumbleBee frommy website

(felienne.com/BumbleBee)

Page 40: Spreadsheets are code

The transformations are entirely programmable, with a small language

Page 41: Spreadsheets are code

And of course, if you say refactoring,

you say …

Page 42: Spreadsheets are code

And of course, if you say refactoring,

you say testing

Page 43: Spreadsheets are code

Spreadsheets tests are hiding in plain sight

Page 44: Spreadsheets are code
Page 45: Spreadsheets are code

These test formulas are common, and they can be exploited

Page 46: Spreadsheets are code

Our tool Expector can find test formulas

Page 47: Spreadsheets are code
Page 48: Spreadsheets are code
Page 49: Spreadsheets are code
Page 50: Spreadsheets are code
Page 51: Spreadsheets are code
Page 52: Spreadsheets are code

Expector helps users to understand robustness of their spreadsheets

Page 53: Spreadsheets are code

Also available:felienne.com/Expector

Page 54: Spreadsheets are code

Thanks for viewing the slides for

Spreadsheets: are code!

Want to know more?

• Visit my sites felienne.com spreadsheetlab.org

• Send a tweet @felienne

• Send an email [email protected]