Date post: | 18-Jul-2015 |
Category: |
Small Business & Entrepreneurship |
Upload: | kyptin |
View: | 343 times |
Download: | 0 times |
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