淺談 Startup 公司的軟體開發流程 v2

160
亮藳 Startup ݪ敟誢樄咳窕纷 (v2) https://ihower.tw 2016/3/24

Transcript of 淺談 Startup 公司的軟體開發流程 v2

Page 1: 淺談 Startup 公司的軟體開發流程 v2

Startup (v2)

https://ihower.tw 2016/3/24

Page 2: 淺談 Startup 公司的軟體開發流程 v2

Who am I?

• a.k.a. ihower

• https://ihower.tw

• Instructor at ALPHA Camp

• https://alphacamp.co

• Web developer since 2002

Page 3: 淺談 Startup 公司的軟體開發流程 v2
Page 4: 淺談 Startup 公司的軟體開發流程 v2
Page 5: 淺談 Startup 公司的軟體開發流程 v2

( )

Page 6: 淺談 Startup 公司的軟體開發流程 v2

Warning:

Page 7: 淺談 Startup 公司的軟體開發流程 v2

https://en.wikipedia.org/wiki/Systems_development_life_cycle

( )

Page 8: 淺談 Startup 公司的軟體開發流程 v2

( )

software development life cycle

• Requirement

• Implementation

• Deployment

• Operations

Page 9: 淺談 Startup 公司的軟體開發流程 v2

1.

Page 10: 淺談 Startup 公司的軟體開發流程 v2

• idea PO

• Scrum iterations 6

• beta

• feedback

• iteration

• BD ....etc

• fb

Page 11: 淺談 Startup 公司的軟體開發流程 v2

Lean Startup

Page 12: 淺談 Startup 公司的軟體開發流程 v2

Lean Startup 101•

• Build -> Measure -> Learn

• Business Model

Page 13: 淺談 Startup 公司的軟體開發流程 v2
Page 14: 淺談 Startup 公司的軟體開發流程 v2

From Problem to Solution

https://twitter.com/leanplc/status/702910036243320832

Page 15: 淺談 Startup 公司的軟體開發流程 v2

Lean Startup (cont.)

• Lean Startup !=

Page 16: 淺談 Startup 公司的軟體開發流程 v2

https://twitter.com/ValaAfshar/status/628406092339519488

1~3

Page 17: 淺談 Startup 公司的軟體開發流程 v2
Page 18: 淺談 Startup 公司的軟體開發流程 v2

Life’s too short to build something nobody wants

– Ash Maurya, Running Lean

Page 19: 淺談 Startup 公司的軟體開發流程 v2

User Stories

• User Story( )

(functionality/feature)

https://ihower.tw/blog/archives/2090

Page 20: 淺談 Startup 公司的軟體開發流程 v2

Page 21: 淺談 Startup 公司的軟體開發流程 v2

• ( ) ( ) ( )

Page 22: 淺談 Startup 公司的軟體開發流程 v2

• Java connection pool

user stories

Page 23: 淺談 Startup 公司的軟體開發流程 v2
Page 24: 淺談 Startup 公司的軟體開發流程 v2

• Hackpad Quip

••

Page 25: 淺談 Startup 公司的軟體開發流程 v2

live demo

Page 26: 淺談 Startup 公司的軟體開發流程 v2

• Lean Startup: MVP

• User Stories

• Quip Hackpad

Page 27: 淺談 Startup 公司的軟體開發流程 v2

2.

Page 28: 淺談 Startup 公司的軟體開發流程 v2

• User Stories

Page 29: 淺談 Startup 公司的軟體開發流程 v2

(cont.)

• Frequent, early, small release

feedback

• Fail often fail early

Page 30: 淺談 Startup 公司的軟體開發流程 v2

PM iOSArt WebArt iOS WebAndroid QA

Page 31: 淺談 Startup 公司的軟體開發流程 v2

• Milestone-based Waterfall

• Scrum Agile

• Kanban Lean

Page 32: 淺談 Startup 公司的軟體開發流程 v2

Milestone-based

306 ...

Page 33: 淺談 Startup 公司的軟體開發流程 v2

Waterfall Feedback

Page 34: 淺談 Startup 公司的軟體開發流程 v2

Waterfall

0.0

20.0

40.0

60.0

80.0

100.0

1.0

A B C D

Page 35: 淺談 Startup 公司的軟體開發流程 v2

1.0 feedback

?

Page 36: 淺談 Startup 公司的軟體開發流程 v2

0.0

20.0

40.0

60.0

80.0

100.0

1.0

A B C D

Page 37: 淺談 Startup 公司的軟體開發流程 v2

0.0

20.0

40.0

60.0

80.0

100.0

1.0

A B C D

Page 38: 淺談 Startup 公司的軟體開發流程 v2

0.0

20.0

40.0

60.0

80.0

100.0

1.0

A B C D

Page 39: 淺談 Startup 公司的軟體開發流程 v2

0.0

20.0

40.0

60.0

80.0

100.0

1.0

A B C D

Page 40: 淺談 Startup 公司的軟體開發流程 v2

Scrum • Product Owner Scrum Master

Team member

• 1~4

• planning meeting

• demo retrospective meeting

• Feedback

Page 41: 淺談 Startup 公司的軟體開發流程 v2

Task Board

Page 42: 淺談 Startup 公司的軟體開發流程 v2
Page 43: 淺談 Startup 公司的軟體開發流程 v2

• Event-driven

• UI

• (iOS, Android, Web)

• App Store

• Feedback ?

Page 44: 淺談 Startup 公司的軟體開發流程 v2

Kanban

• WIP (Work in Process) (TOC )

• Cycle Time ( )

Page 45: 淺談 Startup 公司的軟體開發流程 v2

Kanban

Page 46: 淺談 Startup 公司的軟體開發流程 v2

http://blog.crisp.se/2009/06/26/henrikkniberg/1246053060000

Page 47: 淺談 Startup 公司的軟體開發流程 v2

A

Page 48: 淺談 Startup 公司的軟體開發流程 v2
Page 49: 淺談 Startup 公司的軟體開發流程 v2
Page 50: 淺談 Startup 公司的軟體開發流程 v2

http://www.infoq.com/minibooks/kanban-scrum-minibook

Page 51: 淺談 Startup 公司的軟體開發流程 v2

Continuous Deliver ( Continuous Deployment)

code commit

• iOS

• (well-tested)

• Fail often fail early

• repeatable reliable

• alert

Page 52: 淺談 Startup 公司的軟體開發流程 v2

Feedback

Page 53: 淺談 Startup 公司的軟體開發流程 v2

?

Page 54: 淺談 Startup 公司的軟體開發流程 v2

Lean Startup Cycle ? ?

Page 55: 淺談 Startup 公司的軟體開發流程 v2

Speed of iteration beats Quality of iteration

Page 56: 淺談 Startup 公司的軟體開發流程 v2
Page 57: 淺談 Startup 公司的軟體開發流程 v2

UX/UI • Wireframe

• https://moqups.com/

• Mockup (plus )

• http://www.invisionapp.com/

• Prototyping (plus )

• HTML ( bootstrap)

Page 58: 淺談 Startup 公司的軟體開發流程 v2
Page 59: 淺談 Startup 公司的軟體開發流程 v2

https://dribbble.com/shots/1107830-From-Wireframe-to-Interface

Page 60: 淺談 Startup 公司的軟體開發流程 v2

vs.

Page 61: 淺談 Startup 公司的軟體開發流程 v2

Development•

• ( Git)

• Pull request and Code Review

• Continous Integration (CI)

Page 62: 淺談 Startup 公司的軟體開發流程 v2

?

• in-house

• commercial

• open source

Page 63: 淺談 Startup 公司的軟體開發流程 v2

Hello Startup, O’Reilly

Page 64: 淺談 Startup 公司的軟體開發流程 v2

Don't reinvent the wheel

Page 65: 淺談 Startup 公司的軟體開發流程 v2

• Operating systems

• Programming languages

• CS 101: basic data structures (map, list, set), sorting algorithms

• Web technologies: HTTP servers, server-side and client-side frameworks

• Data systems: databases, NoSQL stores, caches, message queues

• Software delivery: version control, build systems, deployment automation

• Libraries for common data formats: XML, HTML, CSV, JSON, URLs

• Utility libraries: date/time manipulation, string manipulation, logging

• Secure Libraries: cryptography, password storage, credit card storage

• Operations/Office software: SaaS (google, gmail, slack, quip, dropbox…etc)

Page 66: 淺談 Startup 公司的軟體開發流程 v2

Library Framework

https://www.facebook.com/kobeengineer/photos/a.1634720690097535.1073741828.1632027893700148/1697488120487458/?type=3

Page 67: 淺談 Startup 公司的軟體開發流程 v2

Boring • boring

• MySQL PostgreSQL MongoDB

• iOS, Android native Web React Native

• Web Web framework Rails Django

• macroservice macro framework

• Server-Side Rendering SPA

• Isomorphic javascript

• overengineering monolith

• SOA SOA ( team10 )

• http://www.infoq.com/cn/articles/every-architect-should-study-conway-law

Page 68: 淺談 Startup 公司的軟體開發流程 v2

http://martinfowler.com/bliki/MicroservicePremium.html

Page 69: 淺談 Startup 公司的軟體開發流程 v2

Use Cloud Hosting• 2015 startup

• PaaS: Heroku

• IaaS

• Amazon Web Services

• Google

• Microsoft Azure

• Linode or Digital Ocean

Page 70: 淺談 Startup 公司的軟體開發流程 v2

• Why?

• :

• : continuous delivery

• TDD API

Page 71: 淺談 Startup 公司的軟體開發流程 v2

? • 100% coverage

• Unit Test

• GUI Happy Path

Page 72: 淺談 Startup 公司的軟體開發流程 v2

Test Pyramid

http://watirmelon.com/2012/01/31/introducing-the-software-testing-ice-cream-cone/http://martinfowler.com/bliki/TestPyramid.html

developer

QA XD

salesforce ?

Page 73: 淺談 Startup 公司的軟體開發流程 v2
Page 74: 淺談 Startup 公司的軟體開發流程 v2

Why?

• low-level debug

• high-level debug

• view

• developer QA

Page 75: 淺談 Startup 公司的軟體開發流程 v2

DHH Way• 100% test coverage

• Code-to-test 1:2 1:3

• 1/3

• Active Record associations, validations, or scopes.

• ( Unit Test )

• Cucumber

• TDD (DHH 20% TDD)

• Model DB Fixtures

• Controller

• Views system/browser testing

https://signalvnoise.com/posts/3159-testing-like-the-tsahttp://david.heinemeierhansson.com/2014/test-induced-design-damage.html

Page 76: 淺談 Startup 公司的軟體開發流程 v2

Git • 2015 ?

• Feature branch

• commit CI

• Code Review

• Release branch beta user (staging server)

• Production

Page 77: 淺談 Startup 公司的軟體開發流程 v2

CI 3-rd party

Page 78: 淺談 Startup 公司的軟體開發流程 v2
Page 79: 淺談 Startup 公司的軟體開發流程 v2
Page 80: 淺談 Startup 公司的軟體開發流程 v2

Code review Github Pull Request

Page 81: 淺談 Startup 公司的軟體開發流程 v2

Git flow http://nvie.com/posts/a-successful-git-branching-model/

Page 82: 淺談 Startup 公司的軟體開發流程 v2

‧master: production

‧develop: master

82

Page 83: 淺談 Startup 公司的軟體開發流程 v2
Page 84: 淺談 Startup 公司的軟體開發流程 v2

(1)

‧Feature branches– bugs

– develop

– merge develop

– develop ( merge rebase)

84

Page 85: 淺談 Startup 公司的軟體開發流程 v2
Page 86: 淺談 Startup 公司的軟體開發流程 v2
Page 87: 淺談 Startup 公司的軟體開發流程 v2

(2)

‧Release branches– release bugs

– develop

– merge master develop

87

Page 88: 淺談 Startup 公司的軟體開發流程 v2

(3)

‧Hotfix branches– release master

– master

– merge master develop

88

Page 89: 淺談 Startup 公司的軟體開發流程 v2
Page 90: 淺談 Startup 公司的軟體開發流程 v2
Page 91: 淺談 Startup 公司的軟體開發流程 v2

pros and cons

• Git

• feature, release, hotfix branches

• Open Source

Page 92: 淺談 Startup 公司的軟體開發流程 v2

Github flow

‧master stable/production

‧ master branch feature branch

‧ pull request code review

‧ master

92

http://ihower.tw/blog/archives/7798

Page 93: 淺談 Startup 公司的軟體開發流程 v2

https://guides.github.com/introduction/flow/index.html

Page 94: 淺談 Startup 公司的軟體開發流程 v2

http://ihower.tw/blog/archives/7798

( )

‧ CI ?

‧ Staging Server ?

‧ Github flow feature branch CI staging server

‧ branch staging branch CI branch master 94

Page 95: 淺談 Startup 公司的軟體開發流程 v2

• Scrum ( iteration )

• release branch Git flow

• Kanban ( iteration )

• Github flow

Page 96: 淺談 Startup 公司的軟體開發流程 v2

Git

• Github flow Gitflow

• desktop/mobile software Gitflow

• Gitflow

• Web app: Github flow

https://ihower.tw/git/

Page 97: 淺談 Startup 公司的軟體開發流程 v2

Feature Toggle•

• Feature branch ?

• ! UI !

• admin production

Page 98: 淺談 Startup 公司的軟體開發流程 v2

• : Scrum Kanban

•• Wireframe

•• Git Github flow

git flow

Page 99: 淺談 Startup 公司的軟體開發流程 v2

3.

Page 100: 淺談 Startup 公司的軟體開發流程 v2

https://twitter.com/jambay/status/652837690262446082

Shipping

Page 101: 淺談 Startup 公司的軟體開發流程 v2

• 2015 FTP ?

• Git Continuous Delivery

• Build Staging Production

• Application Development http://capistranorb.com/ (Ruby)

Page 102: 淺談 Startup 公司的軟體開發流程 v2
Page 103: 淺談 Startup 公司的軟體開發流程 v2
Page 104: 淺談 Startup 公司的軟體開發流程 v2
Page 105: 淺談 Startup 公司的軟體開發流程 v2

Monitor

• Server

• Server

• Server

• Server Log

Page 106: 淺談 Startup 公司的軟體開發流程 v2
Page 107: 淺談 Startup 公司的軟體開發流程 v2
Page 108: 淺談 Startup 公司的軟體開發流程 v2
Page 109: 淺談 Startup 公司的軟體開發流程 v2
Page 110: 淺談 Startup 公司的軟體開發流程 v2

Slack LINE

Page 111: 淺談 Startup 公司的軟體開發流程 v2

Slack• commit

• code review

• CI

Page 112: 淺談 Startup 公司的軟體開發流程 v2
Page 113: 淺談 Startup 公司的軟體開發流程 v2

Monitor • Infrastructure&Application Metrics

• Server Status (HTTP error rate)

• Response Time

• Exception&Error rate

Page 114: 淺談 Startup 公司的軟體開發流程 v2

•• Monitor Slack

Page 115: 淺談 Startup 公司的軟體開發流程 v2

4.

Page 116: 淺談 Startup 公司的軟體開發流程 v2

• (Measure and Learn)

Page 117: 淺談 Startup 公司的軟體開發流程 v2

? • priority

• integrations

• tracking code

• Warn-Up

• User-facing metrics

• A/B Testing

Page 118: 淺談 Startup 公司的軟體開發流程 v2
Page 119: 淺談 Startup 公司的軟體開發流程 v2

AARRR •

Page 120: 淺談 Startup 公司的軟體開發流程 v2

Acquisition (signup)

• Owned Media

• Landing Page

• Copy Writing

• SEO

• Paid Media

• Facebook Ads

• Google Adwords

• Facebook fanspage

• EDM

• Earned Media

• Community Share

Page 121: 淺談 Startup 公司的軟體開發流程 v2

Activation

• On Boarding

• sandbox Basecamp project

Page 122: 淺談 Startup 公司的軟體開發流程 v2
Page 123: 淺談 Startup 公司的軟體開發流程 v2

Conversion Rate

https://keen.io/guides/conversion-analysis/

Page 124: 淺談 Startup 公司的軟體開發流程 v2

Conversion Funnel

https://keen.io/guides/intro-to-funnel-analysis/

Page 125: 淺談 Startup 公司的軟體開發流程 v2

Retention

• Active Users (DAU/WAU/MAU)

• Retention rate = /

• : Email

• Gamification Reputation System

• addiction trigger actionreward investment

Page 126: 淺談 Startup 公司的軟體開發流程 v2

Retention rate

https://keen.io/blog/47823687779/how-to-do-a-retention-analysis/

Page 127: 淺談 Startup 公司的軟體開發流程 v2

1. 2. 3.• ( MVP PMF)

• (Retention rate)

• ( Growth)

• UV (Unique Visitor)

• Conversion Rate

• ( UX)

• ( ) or ( upsell)

Page 128: 淺談 Startup 公司的軟體開發流程 v2

• E-commerce

• SaaS

• Free Mobile App

• Media Site

• User-Generated Content

• Two-sided Marketplaces

Page 129: 淺談 Startup 公司的軟體開發流程 v2

• Landing Page

• Landing Page signup !!

• Segment your customers

• Email marketing

• Customer Support

https://segment.com/academy/intro/navigating-the-sea-of-customer-data-tools/

Page 130: 淺談 Startup 公司的軟體開發流程 v2
Page 131: 淺談 Startup 公司的軟體開發流程 v2
Page 132: 淺談 Startup 公司的軟體開發流程 v2
Page 133: 淺談 Startup 公司的軟體開發流程 v2
Page 134: 淺談 Startup 公司的軟體開發流程 v2
Page 135: 淺談 Startup 公司的軟體開發流程 v2

• : Google Analytics

• : Funnel analytic

• Mixpanel

• Keen.IO

• : Heatmapping Customer Survey

http://firstround.com/review/the-tools-early-stage-startups-actually-need-to-understand-their-customers/

Page 136: 淺談 Startup 公司的軟體開發流程 v2
Page 137: 淺談 Startup 公司的軟體開發流程 v2
Page 138: 淺談 Startup 公司的軟體開發流程 v2
Page 139: 淺談 Startup 公司的軟體開發流程 v2
Page 140: 淺談 Startup 公司的軟體開發流程 v2

Data-Driven Project

• ?

• ?

• ?

Page 141: 淺談 Startup 公司的軟體開發流程 v2

HEART Frameworkhttp://www.dtelepathy.com/ux-metrics/

• Happiness: Net Promoter Score (NPS)

• How likely are you to recommend us to a friend?

• 0-6 : Detractors

• 7-8:Passives

• 9-10: Promoter

• Engagement: CTR Active Users

• Adoption:

• Retention: Churn rate

• Task Success: Profile

Page 142: 淺談 Startup 公司的軟體開發流程 v2

Event Data• Event Data = Action + State + Time

• Action

• State User Device Item RecordProduct Form

https://keen.io/guides/data-modeling-guide/

Page 143: 淺談 Startup 公司的軟體開發流程 v2

A/B Testing • vs.

• randomness independence

• significance testing ( p-value)

• feature flag

• Big changes release: Facebook

• PR eg. Facebook crash app

http://mjtsai.com/blog/2016/01/07/facebook-tests-users-reaction-to-crashes/

Page 144: 淺談 Startup 公司的軟體開發流程 v2
Page 145: 淺談 Startup 公司的軟體開發流程 v2
Page 146: 淺談 Startup 公司的軟體開發流程 v2

• AARRR

•••

Page 147: 淺談 Startup 公司的軟體開發流程 v2

• OLTP Clickstream, user events ( Mixpanel, GA)

• OLTP clickstream data

• why ? 1. scale 2. UI

• Data Science Data Mining startup data insight

Page 148: 淺談 Startup 公司的軟體開發流程 v2
Page 149: 淺談 Startup 公司的軟體開發流程 v2

https://www.youtube.com/watch?v=cYwXkzPVhP0

Ask the Product Manager

play 0~1:XX and 3:00 ~

Page 150: 淺談 Startup 公司的軟體開發流程 v2

?• PM

code ?

• do the right thing do the thing right ?

• ?

https://blog.alphacamp.co/2016/03/21/the-importance-of-project-manager/

https://blog.alphacamp.co/2014/12/17/good-product-manager/

Page 151: 淺談 Startup 公司的軟體開發流程 v2

-

http://kf013099.blogspot.tw/2015/11/blog-post.html

sprint failed planning meeting

scrum sprint

Page 152: 淺談 Startup 公司的軟體開發流程 v2

Common Agile Practice Isn’t for Startups

• Common Agile Practice is for Delivery

• Most Startups are About Discovery

• Keep the spirit of Agile, and discount the dogma

http://jpattonassociates.com/common-agile-isnt-for-startups/

Page 153: 淺談 Startup 公司的軟體開發流程 v2

7 Agile Best Practices that You Don’t Need to Follow

• TDD

• Pair Programming

• Emergent Design and Metaphor

• Daily Standups

• Collective Code Ownership

• Writing All Requirements as Stories

• Relying on a Product Owner

http://swreflections.blogspot.tw/2013/05/7-agile-best-practices-that-you-dont.html

Page 154: 淺談 Startup 公司的軟體開發流程 v2

• PM ( )

.... orz

• startup

Page 155: 淺談 Startup 公司的軟體開發流程 v2

• startup PM

• startup scope

• Metrics

Page 156: 淺談 Startup 公司的軟體開發流程 v2

• PM

• PM User Stories App

http://blog.xdite.net/posts/2015/07/17/mckinsey-problem-solving-framework

(cont.)

Page 157: 淺談 Startup 公司的軟體開發流程 v2

• ? User Stories PM

• ? ?

• PM

http://blog.xdite.net/posts/2015/07/17/mckinsey-problem-solving-framework

(cont.)

Page 158: 淺談 Startup 公司的軟體開發流程 v2

• Why?

• priority

http://blog.xdite.net/posts/2015/07/17/mckinsey-problem-solving-framework

(cont.)

Page 159: 淺談 Startup 公司的軟體開發流程 v2

https://ihower.tw

• Lean Startup: MVP

• User Stories

• Quip Hackpad

• : Scrum Kanban

• Wireframe

• Git Github flow git flow

• Monitor Slack

• AARRR

• Startup

Page 160: 淺談 Startup 公司的軟體開發流程 v2

• Udacity Product Design

• Data-Driven Product

• http://shop.oreilly.com/product/0636920040149.do

• hello, startup

•••• Intro to Growth Hack

• http://courses.growthschool.com/