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

Post on 18-Feb-2017

30.555 views 2 download

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

Startup (v2)

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

Who am I?

• a.k.a. ihower

• https://ihower.tw

• Instructor at ALPHA Camp

• https://alphacamp.co

• Web developer since 2002

( )

Warning:

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

( )

( )

software development life cycle

• Requirement

• Implementation

• Deployment

• Operations

1.

• idea PO

• Scrum iterations 6

• beta

• feedback

• iteration

• BD ....etc

• fb

Lean Startup

Lean Startup 101•

• Build -> Measure -> Learn

• Business Model

From Problem to Solution

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

Lean Startup (cont.)

• Lean Startup !=

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

1~3

Life’s too short to build something nobody wants

– Ash Maurya, Running Lean

User Stories

• User Story( )

(functionality/feature)

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

• ( ) ( ) ( )

• Java connection pool

user stories

• Hackpad Quip

••

live demo

• Lean Startup: MVP

• User Stories

• Quip Hackpad

2.

• User Stories

(cont.)

• Frequent, early, small release

feedback

• Fail often fail early

PM iOSArt WebArt iOS WebAndroid QA

• Milestone-based Waterfall

• Scrum Agile

• Kanban Lean

Milestone-based

306 ...

Waterfall Feedback

Waterfall

0.0

20.0

40.0

60.0

80.0

100.0

1.0

A B C D

1.0 feedback

?

0.0

20.0

40.0

60.0

80.0

100.0

1.0

A B C D

0.0

20.0

40.0

60.0

80.0

100.0

1.0

A B C D

0.0

20.0

40.0

60.0

80.0

100.0

1.0

A B C D

0.0

20.0

40.0

60.0

80.0

100.0

1.0

A B C D

Scrum • Product Owner Scrum Master

Team member

• 1~4

• planning meeting

• demo retrospective meeting

• Feedback

Task Board

• Event-driven

• UI

• (iOS, Android, Web)

• App Store

• Feedback ?

Kanban

• WIP (Work in Process) (TOC )

• Cycle Time ( )

Kanban

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

A

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

Continuous Deliver ( Continuous Deployment)

code commit

• iOS

• (well-tested)

• Fail often fail early

• repeatable reliable

• alert

Feedback

?

Lean Startup Cycle ? ?

Speed of iteration beats Quality of iteration

UX/UI • Wireframe

• https://moqups.com/

• Mockup (plus )

• http://www.invisionapp.com/

• Prototyping (plus )

• HTML ( bootstrap)

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

vs.

Development•

• ( Git)

• Pull request and Code Review

• Continous Integration (CI)

?

• in-house

• commercial

• open source

Hello Startup, O’Reilly

Don't reinvent the wheel

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

Library Framework

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

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

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

Use Cloud Hosting• 2015 startup

• PaaS: Heroku

• IaaS

• Amazon Web Services

• Google

• Microsoft Azure

• Linode or Digital Ocean

• Why?

• :

• : continuous delivery

• TDD API

? • 100% coverage

• Unit Test

• GUI Happy Path

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 ?

Why?

• low-level debug

• high-level debug

• view

• developer QA

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

Git • 2015 ?

• Feature branch

• commit CI

• Code Review

• Release branch beta user (staging server)

• Production

CI 3-rd party

Code review Github Pull Request

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

‧master: production

‧develop: master

82

(1)

‧Feature branches– bugs

– develop

– merge develop

– develop ( merge rebase)

84

(2)

‧Release branches– release bugs

– develop

– merge master develop

87

(3)

‧Hotfix branches– release master

– master

– merge master develop

88

pros and cons

• Git

• feature, release, hotfix branches

• Open Source

Github flow

‧master stable/production

‧ master branch feature branch

‧ pull request code review

‧ master

92

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

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

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

( )

‧ CI ?

‧ Staging Server ?

‧ Github flow feature branch CI staging server

‧ branch staging branch CI branch master 94

• Scrum ( iteration )

• release branch Git flow

• Kanban ( iteration )

• Github flow

Git

• Github flow Gitflow

• desktop/mobile software Gitflow

• Gitflow

• Web app: Github flow

https://ihower.tw/git/

Feature Toggle•

• Feature branch ?

• ! UI !

• admin production

• : Scrum Kanban

•• Wireframe

•• Git Github flow

git flow

3.

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

Shipping

• 2015 FTP ?

• Git Continuous Delivery

• Build Staging Production

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

Monitor

• Server

• Server

• Server

• Server Log

Slack LINE

Slack• commit

• code review

• CI

Monitor • Infrastructure&Application Metrics

• Server Status (HTTP error rate)

• Response Time

• Exception&Error rate

•• Monitor Slack

4.

• (Measure and Learn)

? • priority

• integrations

• tracking code

• Warn-Up

• User-facing metrics

• A/B Testing

AARRR •

Acquisition (signup)

• Owned Media

• Landing Page

• Copy Writing

• SEO

• Paid Media

• Facebook Ads

• Google Adwords

• Facebook fanspage

• EDM

• Earned Media

• Community Share

Activation

• On Boarding

• sandbox Basecamp project

Conversion Rate

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

Conversion Funnel

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

Retention

• Active Users (DAU/WAU/MAU)

• Retention rate = /

• : Email

• Gamification Reputation System

• addiction trigger actionreward investment

Retention rate

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

1. 2. 3.• ( MVP PMF)

• (Retention rate)

• ( Growth)

• UV (Unique Visitor)

• Conversion Rate

• ( UX)

• ( ) or ( upsell)

• E-commerce

• SaaS

• Free Mobile App

• Media Site

• User-Generated Content

• Two-sided Marketplaces

• Landing Page

• Landing Page signup !!

• Segment your customers

• Email marketing

• Customer Support

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

• : 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/

Data-Driven Project

• ?

• ?

• ?

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

Event Data• Event Data = Action + State + Time

• Action

• State User Device Item RecordProduct Form

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

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/

• AARRR

•••

• OLTP Clickstream, user events ( Mixpanel, GA)

• OLTP clickstream data

• why ? 1. scale 2. UI

• Data Science Data Mining startup data insight

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

Ask the Product Manager

play 0~1:XX and 3:00 ~

?• 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/

-

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

sprint failed planning meeting

scrum sprint

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/

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

• PM ( )

.... orz

• startup

• startup PM

• startup scope

• Metrics

• PM

• PM User Stories App

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

(cont.)

• ? User Stories PM

• ? ?

• PM

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

(cont.)

• Why?

• priority

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

(cont.)

https://ihower.tw

• Lean Startup: MVP

• User Stories

• Quip Hackpad

• : Scrum Kanban

• Wireframe

• Git Github flow git flow

• Monitor Slack

• AARRR

• Startup

• Udacity Product Design

• Data-Driven Product

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

• hello, startup

•••• Intro to Growth Hack

• http://courses.growthschool.com/