Transcript

Why and How to do a Software Startup

Carolina Innovations SeminarJanuary 7, 2015

Jeff Terrell, Ph.D.@kyptin

Jeff Terrell

Founder and CTO, Altometrics (2011)

Ph.D. Computer Science, UNC (2009)

Overview

1. Why Software

(5 mins)

2. How to do asoftware startup

(40 mins)

3. Questions

4. !

Why Software?

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

“All of the technology required to transform industries

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

Ubiquitous computers

Ubiquitous broadband

Cost of a basic Internet application

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

Examples

41% of all new book unit purchases

Largest video service by number of subscribers (2011)

Music

28M paid subscribers

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

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

movies.”

“Photography…was eaten by software

long ago.”

Self-driving cars

Military power (drones)

But why?

The market abhorsa vacuum

Software is fluid

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

How to do asoftware startup

Preamble:It depends

Everything is vitally important

…according to somebody

Meta-advice:

Be a good intestine

Overview

(in order of execution)

1. Types of software businesses

2. Prerequisites

3. Legal aspects

4. Accounting

5. Programming languages

6. Managing a software project

7. Evaluating technologies

8. Hiring tech people

9. Websites, hosting, SEO

10. Infrastructure

11. Intellectual Property

12. Security

13. Social media

1. Types of software businesses

Consulting

(We'll build it for you.)

On-premise solution

(You host our servers.)

SDK or engine

(You code with it.)

Plugin

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

Standalone app

(You download and install it.)

App-store app

(e.g. apps on your phone)

Web app

(You login and use it online.)

2. Prerequisites

Mutual trust

Have a programmer!

(on the founding team)

Determine equity split

Set reasonable expectations

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

3. Legal aspects

Vesting

(Or, protection for the corporation)

Incorporation

Cookie-cutter route

Custom route: find a (relevant) lawyer

4. Accounting

Use a payroll service

Justify business expenses

Save receipts

Hire a CPA to do taxes

CPA service(not generally available)

5. Programming languages

Sometimes an early consideration

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

Go with whatyou know

Else, use Clojure

Aside: why Clojure?

Immutabledata structures

Immutabledata structures

Immutable.Data.

Structures.

“Mutable stateful objects are the new

spaghetti code.”

–Rich Hickey, inventor of Clojure

“[They are] hard to understand, test,

and reason about.”

Immutability makes much of the concurrency problem

go away.

Share freely between threads.

Software Transactional

Memory

Runs on the JVM

(Full access to Java libraries)

6. Managing a software project

Understand tradeoffs

Scope, cost, and speed: pick two.

All the features and cheap →gonna take a while!

All the features and fast →gonna cost a lot!

Cheap and fast →only some features!

Prioritize features

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

1. Game-changing features:something new and useful

hard, but worth doing 1–3

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

it has these

do the bare minimum

3. Distractions

show no mercy

Communicate:clearly,

precisely, andin writing

Specify “what”not “how”

Be open toalternative solutions

(separate essential from incidental features)

Make predictions, then evaluate them

after completion

The tar pit:complexity breeds complexity

Simplicity

Simplicity is hardand takes time

Towards simplicity

1. Beware verbose language and “boilerplate”

2. Beware ill-fitting databases

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

Towards simplicity

Towards simplicity

3. Don't be afraidto start over

Towards simplicity

4. Do be afraid ofpushing devs too hard

Towards simplicity

5. Decent proxy for simplicity: lines of code

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.

7. Evaluating technologies

Don't be afraid to dive in

(even for huge topics)

Sometimes the shortest path is the long one

(Or, books and manuals are good)

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

8. Hiring tech people

Be slow to hire

(firing is no fun)

Avoid arguersfrom authority

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

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/ )

Smart and gets things done

Smart isn't enough.

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

Smart and gets things done

“Gets things done” isn't enough.

Smart and gets things done

smart ≠ knowledgeable

smart = able to explain things to non-technical

people

Understand developer motivations:

autonomymasterypurpose

Test candidates

Have an IP rights assignment

Have a vesting schedule

9. Websites, hosting, SEO

Find a content management system

Find a good theme

Focus on content

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

I like

StrikinglyWordpress

Example Strikingly site

(time: 1 day)

(Sales pitch: check out visclay.com!)

10. Infrastructure

Why infrastructure?

Because a static website isn't enough.

Cloud computing

It's here to stay.

11. Intellectual Property

Not every startup should get a patent

Why not to get a patent

1. You aren't doinganything that novel

Why not to get a patent

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

Why not to get a patent

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

Why not to get a patent

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

Why not to get a patent

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

Patent upsides

Why to get a patent

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

Why to get a patent

1. You want to grow large

Why to get a patent

2. You want to get acquired

Why to get a patent

Large companies use patents Cold-War-style:

Mutually Assured Destruction

Why to get a patent

Large companies use patents to enable

collaboration

Why to get a patent

3. You can afford10–20 patents

Patent strategy

Patent strategy

1. Know the basic requirements: statutes,

novelty, usefulness, nonobviousness

Patent strategy

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

clock ticking)

Patent strategy

3. Understand provisional patents

Patent strategy

4. Consider how you can discover and prove

violations

Patent strategy

5. Consider your patent from an adversary's

perspective. If possible, patent the chokepoint.

Patent strategy

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

Technology Development

Early stage advice

Early stage advice

1. Be aware of what you could patent

Early stage advice

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

Early stage advice

3. Focus on execution first

Early stage advice

4. Consider a provisional patent

12. Security

Detectify:Go hack yourself

Always use a firewall

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

Keep systemsup to date

Keep passwords and keys out of source

code

13. Social media

Product comes first

(although building a following takes time)

Frequent updates lend credibility

Beware the time-suck

Queue up posts for later

Nothing beats good, original content

Questions?

Thanks for coming!

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

http://visclay.com

top related