How to Write Open Source Software that People Will Actually Use

Views:
 
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Slide 1: 

How OSS Failed Dispersed Teams

Slide 2: 

Or...

Slide 3: 

Writing OSS that People Will Actually Use

Slide 4: 

Who I Am

Slide 5: 

Why you should care

Slide 6: 

Why you should care

Slide 7: 

I Love FLOSS

Slide 8: 

GNU/Linux Hippie

Slide 9: 

Emacs Fiend

Slide 10: 

Corporate Infiltrator

Slide 11: 

Creator/Contributor

Slide 12: 

http://github.com/avdi

Slide 13: 

Dispersed Teams

Slide 14: 

Geographically separated, working together

Slide 15: 

Sound Familiar?

Slide 16: 

We practically invented the dispersed team

Slide 17: 

Developers love FLOSS tools

Slide 18: 

FLOSS: It's not just cheaper, it's better

Slide 19: 

...right?

Slide 20: 

So I have this website

Slide 21: 

http://wideteams.com

Slide 22: 

Interviews

Slide 23: 

Dispersed teams aren't using FLOSS (much)

Slide 24: 

Why not?

Slide 25: 

The remote toolkit

Slide 26: 

Voice/Video Chat Chat Rooms Screen Sharing Version Control

Slide 27: 

Voice/Video Chat

Slide 28: 

SIP/H.323

Slide 29: 

1. Choose a Protocol

Slide 30: 

2. Host a Server

Slide 31: 

3. Find clients

Slide 32: 

4. Set up accounts

Slide 33: 

5. Tell everyone how to connect

Slide 34: 

6. Maintain it

Slide 35: 

Skype

Slide 36: 

1. Download it

Slide 37: 

2. Create accounts

Slide 38: 

3. Log in

Slide 39: 

(4. Complain about how annoying Skype is)

Slide 40: 

Chat Rooms

Slide 41: 

IRC/Jabber

Slide 42: 

1. Host a server

Slide 43: 

2. Set up a log server

Slide 44: 

4. Set up accounts

Slide 45: 

5. Get everyone connected

Slide 46: 

6. Maintain It

Slide 47: 

Campfire

Slide 48: 

1. Set up account

Slide 49: 

2. Define Users

Slide 50: 

3. Send a link

Slide 51: 

Screen Sharing

Slide 52: 

VNC

Slide 53: 

1. Get [compatible] software

Slide 54: 

2. Punch hole in firewall

Slide 55: 

3. Figure out SSH tunneling

Slide 56: 

4. Look up your IP address

Slide 57: 

5. Connect

Slide 58: 

6. Public wifi? Forget it.

Slide 59: 

TeamViewer

Slide 60: 

1. Download it

Slide 61: 

1. Download it

Slide 62: 

2. Start it

Slide 63: 

3. Send session ID

Slide 64: 

4. Connect

Slide 65: 

Version Control

Slide 66: 

FLOSS!

Slide 67: 

GIT

Slide 68: 

...hosted on GitHub

Slide 69: 

Most teams do centralized version control

Slide 70: 

No one wants to host their own

Slide 71: 

Observations

Slide 72: 

Social Software

Slide 73: 

“How will it help to get your users laid?” - JWZ

Slide 74: 

A Means to an End

Slide 75: 

Connecting people

Slide 76: 

The Distributed Mindset

Slide 77: 

Centralization is underrated

Slide 78: 

Jabber: Gtalk, GIT: GitHub

Slide 79: 

Everyone else is there

Slide 80: 

Small Teams

Slide 81: 

No DevOps

Slide 82: 

Lessons

Slide 83: 

1. Do one thing well easily

Slide 85: 

2. Lower the Barrier to Entry

Slide 86: 

Do the Web UI First

Slide 87: 

Services, not protocols

Slide 88: 

Clients will follow

Slide 89: 

3. Release Early

Slide 90: 

But you knew that

Slide 91: 

Diaspora

Slide 92: 

4. Host it

Slide 93: 

One Well-Known Host

Slide 94: 

Leave the distributed architecture for 2.0

Slide 95: 

...or forget it entirely

Slide 96: 

5. Sell it

Slide 97: 

You need to pay for hosting

Slide 98: 

You need good feedback

Slide 99: 

You need an incentive

Slide 100: 

Your users need confidence

Slide 101: 

Projects

Slide 102: 

talkerapp.com

Slide 103: 

teambox.com

Slide 104: 

EtherPad

Slide 105: 

dimdim.com

Slide 106: 

Google Wave

Slide 107: 

Conclusion

Slide 108: 

We need more OSS

Slide 109: 

Fix It!

Slide 110: 

Thank You

Slide 111: 

Avdi Grimm avdi@avdi.org Twitter: @avdi / @wideteams http://avdi.org/devblog http://wideteams.com http://shiprise.net