why and how to do a software startup

166
Why and How to do a Software Startup Carolina Innovations Seminar January 7, 2015 Jeff Terrell, Ph.D. @kyptin

Upload: kyptin

Post on 18-Jul-2015

344 views

Category:

Small Business & Entrepreneurship


0 download

TRANSCRIPT

Page 1: Why and How to do a Software Startup

Why and How to do a Software Startup

Carolina Innovations SeminarJanuary 7, 2015

Jeff Terrell, Ph.D.@kyptin

Page 2: Why and How to do a Software Startup

Jeff Terrell

Founder and CTO, Altometrics (2011)

Ph.D. Computer Science, UNC (2009)

Page 3: Why and How to do a Software Startup

Overview

Page 4: Why and How to do a Software Startup

1. Why Software

(5 mins)

Page 5: Why and How to do a Software Startup

2. How to do asoftware startup

(40 mins)

Page 6: Why and How to do a Software Startup

3. Questions

Page 7: Why and How to do a Software Startup

4. !

Page 8: Why and How to do a Software Startup

Why Software?

Page 9: Why and How to do a Software Startup

“Software is eating the world.”–Marc Andreessen (2011)

Page 10: Why and How to do a Software Startup

“All of the technology required to transform industries

through software finally works and can be widely delivered at global scale.”

Page 11: Why and How to do a Software Startup

Ubiquitous computers

Page 12: Why and How to do a Software Startup

Ubiquitous broadband

Page 13: Why and How to do a Software Startup

Cost of a basic Internet application

In 2000, $150k In 2015, $500 (if that)

Page 14: Why and How to do a Software Startup

Examples

Page 15: Why and How to do a Software Startup

41% of all new book unit purchases

Page 16: Why and How to do a Software Startup

Largest video service by number of subscribers (2011)

Page 17: Why and How to do a Software Startup

Music

28M paid subscribers

39% of revenue ($5B) from digital channels

Page 18: Why and How to do a Software Startup

“Disney—Disney!—had to buy Pixar, a software company, to remain relevant in animated

movies.”

Page 19: Why and How to do a Software Startup

“Photography…was eaten by software

long ago.”

Page 20: Why and How to do a Software Startup

Self-driving cars

Page 21: Why and How to do a Software Startup

Military power (drones)

Page 22: Why and How to do a Software Startup

But why?

Page 23: Why and How to do a Software Startup

The market abhorsa vacuum

Page 24: Why and How to do a Software Startup

Software is fluid

Page 25: Why and How to do a Software Startup

“Software is eating the world.”–Marc Andreessen (2011)

Page 26: Why and How to do a Software Startup

How to do asoftware startup

Page 27: Why and How to do a Software Startup

Preamble:It depends

Page 28: Why and How to do a Software Startup

Everything is vitally important

…according to somebody

Page 29: Why and How to do a Software Startup

Meta-advice:

Be a good intestine

Page 30: Why and How to do a Software Startup

Overview

(in order of execution)

Page 31: Why and How to do a Software Startup

1. Types of software businesses

Page 32: Why and How to do a Software Startup

2. Prerequisites

Page 33: Why and How to do a Software Startup

3. Legal aspects

Page 34: Why and How to do a Software Startup

4. Accounting

Page 35: Why and How to do a Software Startup

5. Programming languages

Page 36: Why and How to do a Software Startup

6. Managing a software project

Page 37: Why and How to do a Software Startup

7. Evaluating technologies

Page 38: Why and How to do a Software Startup

8. Hiring tech people

Page 39: Why and How to do a Software Startup

9. Websites, hosting, SEO

Page 40: Why and How to do a Software Startup

10. Infrastructure

Page 41: Why and How to do a Software Startup

11. Intellectual Property

Page 42: Why and How to do a Software Startup

12. Security

Page 43: Why and How to do a Software Startup

13. Social media

Page 44: Why and How to do a Software Startup

1. Types of software businesses

Page 45: Why and How to do a Software Startup

Consulting

(We'll build it for you.)

Page 46: Why and How to do a Software Startup

On-premise solution

(You host our servers.)

Page 47: Why and How to do a Software Startup

SDK or engine

(You code with it.)

Page 48: Why and How to do a Software Startup

Plugin

(If you're using <platform>, you can use our add-on too.)

Page 49: Why and How to do a Software Startup

Standalone app

(You download and install it.)

Page 50: Why and How to do a Software Startup

App-store app

(e.g. apps on your phone)

Page 51: Why and How to do a Software Startup

Web app

(You login and use it online.)

Page 52: Why and How to do a Software Startup

2. Prerequisites

Page 53: Why and How to do a Software Startup

Mutual trust

Page 54: Why and How to do a Software Startup

Have a programmer!

(on the founding team)

Page 55: Why and How to do a Software Startup

Determine equity split

Page 56: Why and How to do a Software Startup

Set reasonable expectations

(e.g. there will be a ramen phase)

Page 57: Why and How to do a Software Startup

3. Legal aspects

Page 58: Why and How to do a Software Startup

Vesting

(Or, protection for the corporation)

Page 59: Why and How to do a Software Startup

Incorporation

Page 60: Why and How to do a Software Startup

Cookie-cutter route

Page 61: Why and How to do a Software Startup

Custom route: find a (relevant) lawyer

Page 62: Why and How to do a Software Startup

4. Accounting

Page 63: Why and How to do a Software Startup

Use a payroll service

Page 64: Why and How to do a Software Startup

Justify business expenses

Page 65: Why and How to do a Software Startup

Save receipts

Page 66: Why and How to do a Software Startup

Hire a CPA to do taxes

Page 67: Why and How to do a Software Startup

CPA service(not generally available)

Page 68: Why and How to do a Software Startup

5. Programming languages

Page 69: Why and How to do a Software Startup

Sometimes an early consideration

(e.g. difficult to hire until this is decided)

Page 70: Why and How to do a Software Startup

Go with whatyou know

Page 71: Why and How to do a Software Startup

Else, use Clojure

Page 72: Why and How to do a Software Startup

Aside: why Clojure?

Page 73: Why and How to do a Software Startup

Immutabledata structures

Page 74: Why and How to do a Software Startup

Immutabledata structures

Page 75: Why and How to do a Software Startup

Immutable.Data.

Structures.

Page 76: Why and How to do a Software Startup

“Mutable stateful objects are the new

spaghetti code.”

–Rich Hickey, inventor of Clojure

Page 77: Why and How to do a Software Startup

“[They are] hard to understand, test,

and reason about.”

Page 78: Why and How to do a Software Startup

Immutability makes much of the concurrency problem

go away.

Share freely between threads.

Page 79: Why and How to do a Software Startup

Software Transactional

Memory

Page 80: Why and How to do a Software Startup

Runs on the JVM

(Full access to Java libraries)

Page 81: Why and How to do a Software Startup

6. Managing a software project

Page 82: Why and How to do a Software Startup

Understand tradeoffs

Scope, cost, and speed: pick two.

Page 83: Why and How to do a Software Startup

All the features and cheap →gonna take a while!

Page 84: Why and How to do a Software Startup

All the features and fast →gonna cost a lot!

Page 85: Why and How to do a Software Startup

Cheap and fast →only some features!

Page 86: Why and How to do a Software Startup

Prioritize features

From How to build great productshttp://www.defmacro.org/2013/09/26/products.html

Page 87: Why and How to do a Software Startup

1. Game-changing features:something new and useful

hard, but worth doing 1–3

Page 88: Why and How to do a Software Startup

2. Show-stopping features:people won't buy it unless

it has these

do the bare minimum

Page 89: Why and How to do a Software Startup

3. Distractions

show no mercy

Page 90: Why and How to do a Software Startup

Communicate:clearly,

precisely, andin writing

Page 91: Why and How to do a Software Startup

Specify “what”not “how”

Page 92: Why and How to do a Software Startup

Be open toalternative solutions

(separate essential from incidental features)

Page 93: Why and How to do a Software Startup

Make predictions, then evaluate them

after completion

Page 94: Why and How to do a Software Startup

The tar pit:complexity breeds complexity

Page 95: Why and How to do a Software Startup

Simplicity

Page 96: Why and How to do a Software Startup

Simplicity is hardand takes time

Page 97: Why and How to do a Software Startup

Towards simplicity

1. Beware verbose language and “boilerplate”

Page 98: Why and How to do a Software Startup

2. Beware ill-fitting databases

Or, “Representation is the essence of programming.”–Frederick P. Brooks, Jr.

Towards simplicity

Page 99: Why and How to do a Software Startup

Towards simplicity

3. Don't be afraidto start over

Page 100: Why and How to do a Software Startup

Towards simplicity

4. Do be afraid ofpushing devs too hard

Page 101: Why and How to do a Software Startup

Towards simplicity

5. Decent proxy for simplicity: lines of code

Page 102: Why and How to do a Software Startup

When should I outsource projects?

● It's outside your team's expertise,● You can clearly describe what you

want and what success looks like,● It uses non-proprietary languages

and technologies, and● You have the money to pay for it.

Page 103: Why and How to do a Software Startup

7. Evaluating technologies

Page 104: Why and How to do a Software Startup

Don't be afraid to dive in

(even for huge topics)

Page 105: Why and How to do a Software Startup

Sometimes the shortest path is the long one

(Or, books and manuals are good)

Page 106: Why and How to do a Software Startup

Find an expert, and ask them:

● What solutions exist?● What would you recommend? Why?● Why wouldn't somebody do that?● What alternatives exist?● Why is this the best choice?● Push until you're satisfied

Page 107: Why and How to do a Software Startup

8. Hiring tech people

Page 108: Why and How to do a Software Startup

Be slow to hire

(firing is no fun)

Page 109: Why and How to do a Software Startup

Avoid arguersfrom authority

Your employees should not say, “Because I said so.”

Page 110: Why and How to do a Software Startup

Hire “smart andgets things done”

From The Guerrilla Guide to Interviewingby Joel Spolsky

http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html

(See also: http://qz.com/258066/this-is-why-you-dont-hire-good-developers/ )

Page 111: Why and How to do a Software Startup

Smart and gets things done

Smart isn't enough.

“Knowledge is for wisdom,and wisdom is for living.”

Page 112: Why and How to do a Software Startup

Smart and gets things done

“Gets things done” isn't enough.

Page 113: Why and How to do a Software Startup

Smart and gets things done

smart ≠ knowledgeable

smart = able to explain things to non-technical

people

Page 114: Why and How to do a Software Startup

Understand developer motivations:

autonomymasterypurpose

Page 115: Why and How to do a Software Startup

Test candidates

Page 116: Why and How to do a Software Startup

Have an IP rights assignment

Page 117: Why and How to do a Software Startup

Have a vesting schedule

Page 118: Why and How to do a Software Startup

9. Websites, hosting, SEO

Page 119: Why and How to do a Software Startup

Find a content management system

Page 120: Why and How to do a Software Startup

Find a good theme

Page 121: Why and How to do a Software Startup

Focus on content

Page 122: Why and How to do a Software Startup

A good website will be one on a phone, too.

Page 123: Why and How to do a Software Startup

I like

StrikinglyWordpress

Page 124: Why and How to do a Software Startup

Example Strikingly site

(time: 1 day)

(Sales pitch: check out visclay.com!)

Page 125: Why and How to do a Software Startup

10. Infrastructure

Page 126: Why and How to do a Software Startup

Why infrastructure?

Because a static website isn't enough.

Page 127: Why and How to do a Software Startup

Cloud computing

It's here to stay.

Page 128: Why and How to do a Software Startup

11. Intellectual Property

Page 129: Why and How to do a Software Startup

Not every startup should get a patent

Page 130: Why and How to do a Software Startup

Why not to get a patent

1. You aren't doinganything that novel

Page 131: Why and How to do a Software Startup

Why not to get a patent

2. You don't want to publicly disclose your idea

Page 132: Why and How to do a Software Startup

Why not to get a patent

3. They're expensive to get ($10–30k)

Page 133: Why and How to do a Software Startup

Why not to get a patent

4. They're expensive to defend (at least $1–2M)

Page 134: Why and How to do a Software Startup

Why not to get a patent

4. They take a long time to get (1–3 years)

Page 135: Why and How to do a Software Startup

Patent upsides

Page 136: Why and How to do a Software Startup

Why to get a patent

0. You want to get royalties (good luck!)

Page 137: Why and How to do a Software Startup

Why to get a patent

1. You want to grow large

Page 138: Why and How to do a Software Startup

Why to get a patent

2. You want to get acquired

Page 139: Why and How to do a Software Startup

Why to get a patent

Large companies use patents Cold-War-style:

Mutually Assured Destruction

Page 140: Why and How to do a Software Startup

Why to get a patent

Large companies use patents to enable

collaboration

Page 141: Why and How to do a Software Startup

Why to get a patent

3. You can afford10–20 patents

Page 142: Why and How to do a Software Startup

Patent strategy

Page 143: Why and How to do a Software Startup

Patent strategy

1. Know the basic requirements: statutes,

novelty, usefulness, nonobviousness

Page 144: Why and How to do a Software Startup

Patent strategy

2. Know what counts as a disclosure (starts a 1-year

clock ticking)

Page 145: Why and How to do a Software Startup

Patent strategy

3. Understand provisional patents

Page 146: Why and How to do a Software Startup

Patent strategy

4. Consider how you can discover and prove

violations

Page 147: Why and How to do a Software Startup

Patent strategy

5. Consider your patent from an adversary's

perspective. If possible, patent the chokepoint.

Page 148: Why and How to do a Software Startup

Patent strategy

6. If you're UNC-affiliated, talk to the Office of

Technology Development

Page 149: Why and How to do a Software Startup

Early stage advice

Page 150: Why and How to do a Software Startup

Early stage advice

1. Be aware of what you could patent

Page 151: Why and How to do a Software Startup

Early stage advice

2. Be aware of whether you have to disclose your idea

Page 152: Why and How to do a Software Startup

Early stage advice

3. Focus on execution first

Page 153: Why and How to do a Software Startup

Early stage advice

4. Consider a provisional patent

Page 154: Why and How to do a Software Startup

12. Security

Page 155: Why and How to do a Software Startup

Detectify:Go hack yourself

Page 156: Why and How to do a Software Startup

Always use a firewall

Page 157: Why and How to do a Software Startup

Use key-based authentication (and keep your keys safe)

Page 158: Why and How to do a Software Startup

Keep systemsup to date

Page 159: Why and How to do a Software Startup

Keep passwords and keys out of source

code

Page 160: Why and How to do a Software Startup

13. Social media

Page 161: Why and How to do a Software Startup

Product comes first

(although building a following takes time)

Page 162: Why and How to do a Software Startup

Frequent updates lend credibility

Page 163: Why and How to do a Software Startup

Beware the time-suck

Page 164: Why and How to do a Software Startup

Queue up posts for later

Page 165: Why and How to do a Software Startup

Nothing beats good, original content

Page 166: Why and How to do a Software Startup

Questions?

Thanks for coming!

Follow me on Twitter @kyptinhttp://altometrics.com

http://visclay.com