TECH 4 NON-TECH SERIES
Tech Development:
How it All Fits Together
Alex De Simone
Founder, Caller Zen & Jobr
MS ME‘11, MBA ’16
alexds@stanford.edu
Stanford Graduate School of Business
November 5, 2015
1
Stanford Graduate School of Business
Survey Results
Stanford Graduate School of Business 3
Do I need a technical
co-founder?
Summary of Alan Chiu’s previous session…
Stanford Graduate School of Business 4
1.  Which type of startup
are you building?
Stanford Graduate School of Business 5
Technology
As A Product
Tech-Enabled
Business
Tech-Leveraged
Business
Which type of startup are you building?
Stanford Graduate School of Business 6
Technology
As A Product
Tech-Enabled
Business
Tech-Leveraged
Business
Which type of startup are you building?
YES MAYBE NO
Technical
Co-founder?
Stanford Graduate School of Business 7
2. What is your biggest
risk right now?
Stanford Graduate School of Business 8
2. What is your biggest
risk right now?
=> Focus on it
Stanford Graduate School of Business 9
Market Execution Technical
What is your biggest risk right now?
Stanford Graduate School of Business 10
Market Execution Technical
What is your biggest risk right now?
- Can you build it?
- Does it work?
- Can it scale?
- Can you put it in the
hands of users?
- Can you generate
buzz and press?
- Retention/growth?
- Beat competitors?
- Do people want it?
- Will they pay for it?
- Is there a real
need?
Stanford Graduate School of Business 11
Today, focus on technical
From zero… …To deploy
Blank App ?
Stanford Graduate School of Business 12
Key Concepts
•  Applications
•  Databases
•  Environments
•  Version Control
•  Deployment
Stanford Graduate School of Business
What is an App?
Stanford Graduate School of Business
=> A collection of folders and files to be executed
What is an App?
Stanford Graduate School of Business
Text Editor
Stanford Graduate School of Business
2 Types of Applications
1. Web 2. Native
Desktop
Mobile
Stanford Graduate School of Business
Programming Languages To Build Apps
1. Web 2. Native
iOS:
Android:
* many others not included
Stanford Graduate School of Business
Example: Twitter 1.0
Web (desktop & mobile) iPhone and Android apps
iOS:
Android:
Stanford Graduate School of Business
What is a database?
Stanford Graduate School of Business
What is a database?
=> A collection of tables that store your data
Stanford Graduate School of Business
Example: Twitter 1.0
Users Tweets
* many others not included
id name email
pass
word
time
stamp
1 Jane j@...
534dr
229sl
10-11
3:22
2 Rich r@...
2d5s3
4hi1
10-21
8:11
3 Eva e@...
6hs2b
s26
10-4
07:31
id
user
id
tweet
time
stamp
1 2
Hey! This is my
first tweet…
10-11
17:22
2 1
Twitter is
awesome!
10-21
18:11
3 3
Hello World! I’m
on Twitter…
10-24
10:45
Stanford Graduate School of Business
Programming Languages For Databases
* many others not included
Relational Non-Relational
Stanford Graduate School of Business
Example: Twitter 1.0
Web App iOS App
Android
App
MySQL DATABASE
Stanford Graduate School of Business
Example: Twitter 1.0
Web App iOS App
Android
App
MySQL DATABASE
So far, everything is on your local machine…
Stanford Graduate School of Business
What is an environment?
Stanford Graduate School of Business
What is an environment?
=> The system in which an application is executed
Stanford Graduate School of Business
3 Types of Environments
Development Staging Production
Stanford Graduate School of Business
3 Types of Environments
Development Staging Production
- Live version of your
application
- What your customers
interact with
- Replica of production
environment
- Used for testing bugs
- Also known as “local”
or “dev”
- Unique to a computer
Stanford Graduate School of Business
3 Types of Environments
Development Staging Production
- Live version of your
application
- What your customers
interact with
- Replica of production
environment
- Used for testing bugs
- Also known as “local”
or “dev”
- Unique to a computer
NOTE: Each environment may have different versions
of an application and its database!
Stanford Graduate School of Business
What is version control?
Stanford Graduate School of Business
What is version control?
=> A system that records changes made
to your application over time
Stanford Graduate School of Business
Version Control
- Git generates a snapshot in time of your entire application
- Saves the history of changes made & who made the change
- Used for all environments (dev, staging, production)
Stanford Graduate School of Business
Version Control
Apps
MySQL DB
local
“git push”
repository (cloud)
Stanford Graduate School of Business
https://www.railstutorial.org/book
Stanford Graduate School of Business
How does my app go live?
Stanford Graduate School of Business
How does my app go live?
=> Deployment for a web app is different
than a native app, and may have different
timeframes
Stanford Graduate School of Business 37
Web App Deployment
Web App “git push”
Server
(cloud)Local
* Assuming you don’t use your own servers. Many others not included
Stanford Graduate School of Business 38
Native App Deployment
Native App
PlatformLocal
* Assuming you don’t use your own servers. Many others not included
Submit for approval
Stanford Graduate School of Business 39
Native App Deployment
Native App
PlatformLocal
* Assuming you don’t use your own servers. Many others not included
Submit for approval
NOTE: The approval process for native apps can take over 2 weeks.
Stanford Graduate School of Business 40
Concepts Covered
From zero… …To deploy
Blank App
•  Applications
•  Databases
•  Environments
•  Version Control
•  Deployment
TECH 4 NON-TECH SERIES
Tech Development:
How it All Fits Together
Alex De Simone
Founder, Caller Zen & Jobr
MS ME‘11, MBA ’16
alexds@stanford.edu
Stanford Graduate School of Business
November 5, 2015
41

Tech Development: How It All Fits Together w/ Alex De Simone

  • 1.
    TECH 4 NON-TECHSERIES Tech Development: How it All Fits Together Alex De Simone Founder, Caller Zen & Jobr MS ME‘11, MBA ’16 alexds@stanford.edu Stanford Graduate School of Business November 5, 2015 1
  • 2.
    Stanford Graduate Schoolof Business Survey Results
  • 3.
    Stanford Graduate Schoolof Business 3 Do I need a technical co-founder? Summary of Alan Chiu’s previous session…
  • 4.
    Stanford Graduate Schoolof Business 4 1.  Which type of startup are you building?
  • 5.
    Stanford Graduate Schoolof Business 5 Technology As A Product Tech-Enabled Business Tech-Leveraged Business Which type of startup are you building?
  • 6.
    Stanford Graduate Schoolof Business 6 Technology As A Product Tech-Enabled Business Tech-Leveraged Business Which type of startup are you building? YES MAYBE NO Technical Co-founder?
  • 7.
    Stanford Graduate Schoolof Business 7 2. What is your biggest risk right now?
  • 8.
    Stanford Graduate Schoolof Business 8 2. What is your biggest risk right now? => Focus on it
  • 9.
    Stanford Graduate Schoolof Business 9 Market Execution Technical What is your biggest risk right now?
  • 10.
    Stanford Graduate Schoolof Business 10 Market Execution Technical What is your biggest risk right now? - Can you build it? - Does it work? - Can it scale? - Can you put it in the hands of users? - Can you generate buzz and press? - Retention/growth? - Beat competitors? - Do people want it? - Will they pay for it? - Is there a real need?
  • 11.
    Stanford Graduate Schoolof Business 11 Today, focus on technical From zero… …To deploy Blank App ?
  • 12.
    Stanford Graduate Schoolof Business 12 Key Concepts •  Applications •  Databases •  Environments •  Version Control •  Deployment
  • 13.
    Stanford Graduate Schoolof Business What is an App?
  • 14.
    Stanford Graduate Schoolof Business => A collection of folders and files to be executed What is an App?
  • 15.
    Stanford Graduate Schoolof Business Text Editor
  • 16.
    Stanford Graduate Schoolof Business 2 Types of Applications 1. Web 2. Native Desktop Mobile
  • 17.
    Stanford Graduate Schoolof Business Programming Languages To Build Apps 1. Web 2. Native iOS: Android: * many others not included
  • 18.
    Stanford Graduate Schoolof Business Example: Twitter 1.0 Web (desktop & mobile) iPhone and Android apps iOS: Android:
  • 19.
    Stanford Graduate Schoolof Business What is a database?
  • 20.
    Stanford Graduate Schoolof Business What is a database? => A collection of tables that store your data
  • 21.
    Stanford Graduate Schoolof Business Example: Twitter 1.0 Users Tweets * many others not included id name email pass word time stamp 1 Jane j@... 534dr 229sl 10-11 3:22 2 Rich r@... 2d5s3 4hi1 10-21 8:11 3 Eva e@... 6hs2b s26 10-4 07:31 id user id tweet time stamp 1 2 Hey! This is my first tweet… 10-11 17:22 2 1 Twitter is awesome! 10-21 18:11 3 3 Hello World! I’m on Twitter… 10-24 10:45
  • 22.
    Stanford Graduate Schoolof Business Programming Languages For Databases * many others not included Relational Non-Relational
  • 23.
    Stanford Graduate Schoolof Business Example: Twitter 1.0 Web App iOS App Android App MySQL DATABASE
  • 24.
    Stanford Graduate Schoolof Business Example: Twitter 1.0 Web App iOS App Android App MySQL DATABASE So far, everything is on your local machine…
  • 25.
    Stanford Graduate Schoolof Business What is an environment?
  • 26.
    Stanford Graduate Schoolof Business What is an environment? => The system in which an application is executed
  • 27.
    Stanford Graduate Schoolof Business 3 Types of Environments Development Staging Production
  • 28.
    Stanford Graduate Schoolof Business 3 Types of Environments Development Staging Production - Live version of your application - What your customers interact with - Replica of production environment - Used for testing bugs - Also known as “local” or “dev” - Unique to a computer
  • 29.
    Stanford Graduate Schoolof Business 3 Types of Environments Development Staging Production - Live version of your application - What your customers interact with - Replica of production environment - Used for testing bugs - Also known as “local” or “dev” - Unique to a computer NOTE: Each environment may have different versions of an application and its database!
  • 30.
    Stanford Graduate Schoolof Business What is version control?
  • 31.
    Stanford Graduate Schoolof Business What is version control? => A system that records changes made to your application over time
  • 32.
    Stanford Graduate Schoolof Business Version Control - Git generates a snapshot in time of your entire application - Saves the history of changes made & who made the change - Used for all environments (dev, staging, production)
  • 33.
    Stanford Graduate Schoolof Business Version Control Apps MySQL DB local “git push” repository (cloud)
  • 34.
    Stanford Graduate Schoolof Business https://www.railstutorial.org/book
  • 35.
    Stanford Graduate Schoolof Business How does my app go live?
  • 36.
    Stanford Graduate Schoolof Business How does my app go live? => Deployment for a web app is different than a native app, and may have different timeframes
  • 37.
    Stanford Graduate Schoolof Business 37 Web App Deployment Web App “git push” Server (cloud)Local * Assuming you don’t use your own servers. Many others not included
  • 38.
    Stanford Graduate Schoolof Business 38 Native App Deployment Native App PlatformLocal * Assuming you don’t use your own servers. Many others not included Submit for approval
  • 39.
    Stanford Graduate Schoolof Business 39 Native App Deployment Native App PlatformLocal * Assuming you don’t use your own servers. Many others not included Submit for approval NOTE: The approval process for native apps can take over 2 weeks.
  • 40.
    Stanford Graduate Schoolof Business 40 Concepts Covered From zero… …To deploy Blank App •  Applications •  Databases •  Environments •  Version Control •  Deployment
  • 41.
    TECH 4 NON-TECHSERIES Tech Development: How it All Fits Together Alex De Simone Founder, Caller Zen & Jobr MS ME‘11, MBA ’16 alexds@stanford.edu Stanford Graduate School of Business November 5, 2015 41