Cathedrals in the Cloud Musings on APIs for the Web Mike Amundsen - - PowerPoint PPT Presentation

cathedrals in the cloud
SMART_READER_LITE
LIVE PREVIEW

Cathedrals in the Cloud Musings on APIs for the Web Mike Amundsen - - PowerPoint PPT Presentation

Cathedrals in the Cloud Musings on APIs for the Web Mike Amundsen API Academy / CA @mamund Eric S. Raymond (ESR) "In the beginning, there were Real Programmers" - ESR "In the beginning, there were Real Programmers" - ESR


slide-1
SLIDE 1

Cathedrals in the Cloud

Musings on APIs for the Web

Mike Amundsen API Academy / CA @mamund

slide-2
SLIDE 2
slide-3
SLIDE 3
slide-4
SLIDE 4
slide-5
SLIDE 5
slide-6
SLIDE 6
slide-7
SLIDE 7
slide-8
SLIDE 8
slide-9
SLIDE 9
slide-10
SLIDE 10
slide-11
SLIDE 11
slide-12
SLIDE 12
slide-13
SLIDE 13
slide-14
SLIDE 14
slide-15
SLIDE 15
slide-16
SLIDE 16
slide-17
SLIDE 17
slide-18
SLIDE 18
slide-19
SLIDE 19
slide-20
SLIDE 20
slide-21
SLIDE 21

Eric S. Raymond (ESR)

slide-22
SLIDE 22

"In the beginning, there were Real Programmers" - ESR

slide-23
SLIDE 23
slide-24
SLIDE 24
slide-25
SLIDE 25
slide-26
SLIDE 26
slide-27
SLIDE 27
slide-28
SLIDE 28
slide-29
SLIDE 29

"In the beginning, there were Real Programmers" - ESR

slide-30
SLIDE 30

"In the beginning...

slide-31
SLIDE 31
slide-32
SLIDE 32
slide-33
SLIDE 33
slide-34
SLIDE 34
slide-35
SLIDE 35
slide-36
SLIDE 36
slide-37
SLIDE 37
slide-38
SLIDE 38
slide-39
SLIDE 39
slide-40
SLIDE 40
slide-41
SLIDE 41
slide-42
SLIDE 42
slide-43
SLIDE 43

Cathedral vs. Bazaar

slide-44
SLIDE 44

The Cathedral

slide-45
SLIDE 45

The Cathedral

The Cathedral model, in which source code is

  • nly available upon each software release.
slide-46
SLIDE 46
slide-47
SLIDE 47
slide-48
SLIDE 48

The Bazaar

slide-49
SLIDE 49

The Bazaar

The Bazaar model, in which the code is developed over the Internet in view of the public.

slide-50
SLIDE 50
slide-51
SLIDE 51
slide-52
SLIDE 52

"Centrally designed [systems] start out strong and improve logarithmically.

slide-53
SLIDE 53

"Centrally designed [systems] start out strong and improve logarithmically. Evolvable [systems] start out weak and improve exponentially."

slide-54
SLIDE 54

The Lessons of Open Source Software

slide-55
SLIDE 55
slide-56
SLIDE 56
  • 1. Every good work of software starts

by scratching a developer's personal itch.

slide-57
SLIDE 57

"Write programs that do

  • ne thing and do it well."
slide-58
SLIDE 58

"Write programs that do

  • ne thing and do it well."

"Write programs to work together."

  • Douglas McIlroy
slide-59
SLIDE 59
  • 3. Plan to throw one [version] away;

you will, anyhow.

(Copied from Frederick Brooks' The Mythical Man Month)

slide-60
SLIDE 60
slide-61
SLIDE 61
  • 3. Plan to throw one [version] away;

you will, anyhow.

(Copied from Frederick Brooks' The Mythical Man Month)

slide-62
SLIDE 62

If you want to succeed, double your failure rate."

  • Thomas J. Watson
slide-63
SLIDE 63
  • 5. When you lose interest in a

program, your last duty to it is to hand it off to a competent successor.

slide-64
SLIDE 64
slide-65
SLIDE 65
  • 7. Release early. Release often. And

listen to your customers.

slide-66
SLIDE 66
slide-67
SLIDE 67

"We onboard engineers quickly and their first goal is simple: deploy on your first day."

  • Chad Dickerson
slide-68
SLIDE 68

"We onboard engineers quickly and their first goal is simple: deploy on your first day."

  • Chad Dickerson
slide-69
SLIDE 69
  • 9. Smart data structures and dumb

code works a lot better than the other way around.

slide-70
SLIDE 70

"Bad programmers worry about the code. Good programmers worry about data structures and their relationships."

  • - Linus Torvalds
slide-71
SLIDE 71
slide-72
SLIDE 72

"Write programs to handle text streams, because that is a universal interface."

  • Douglas McIlroy
slide-73
SLIDE 73

"Write programs to handle negotiated message models, because that is a universal interface."

  • ala Douglas McIlroy
slide-74
SLIDE 74
  • 14. Any tool should be useful in the

expected way, but a truly great tool lends itself to uses you never expected.

slide-75
SLIDE 75

"The value of a well- designed object is that the people who use it can do things with it that the designer never imagined."

  • Donald Norman
slide-76
SLIDE 76

"Web architecture is all about serendipity"

  • Stu Charlton
slide-77
SLIDE 77
  • Scratch a (small) itch
  • Throw early iterations away
  • Plan to hand off the project
  • Release early and often
  • Smart messages beats dumb code
  • Build-in serendipitous reuse

Key Lessons

slide-78
SLIDE 78

One more thing...

slide-79
SLIDE 79
  • 19. Provided the development

coordinator has a communications medium at least as good as the Internet,

slide-80
SLIDE 80
  • 19. Provided the development

coordinator has a communications medium at least as good as the Internet, and knows how to lead without coercion,

slide-81
SLIDE 81
  • 19. Provided the development

coordinator has a communications medium at least as good as the Internet, and knows how to lead without coercion, many heads are inevitably better than one.

slide-82
SLIDE 82
slide-83
SLIDE 83

The Bazaar

slide-84
SLIDE 84
slide-85
SLIDE 85
slide-86
SLIDE 86
slide-87
SLIDE 87
slide-88
SLIDE 88

We're all Real Programmers

slide-89
SLIDE 89

Cathedrals in the Cloud

Musings on APIs for the Web

Mike Amundsen API Academy / CA @mamund http://g.mamund/2014-oscon-cathedrals