Software development life cycle
本次說明關於軟體開發流程之重點,包含Product discovery、Product development、Product delivery、Software development methodology等。
若說Founders提出點子,Founding Team則是建立公司的基石。尋找Founding Team人才,可由以下特色作為依據:Determination毅力、Commitment承諾、Work Ethic職業道德、Humility謙遜、Conviction信仰、Trust、Dependability可靠、Compatibility友善、Leadership、Principles原則、Intelligence機靈、Boldness魄力、Resolution決斷、Inspiration鼓舞、Respect、Network、Passion、Fun。當成立團隊後,就能開始進行產品的規劃及開發囉!
Product discovery
Idea forming and brainstorming、Target user analysis、user stories、market research
Target user analysis-用人口統計學、描述心理變數以及行為去找出你的TA,接著使用User persona,將你產品不同的TA進行分析。比較適合誰使用?找出之後就給他的意見權重增加。
↓
User stories 也就是詢問TA的階段。User Story(使用者敘述)是一段簡單的功能敘述,以客戶或使用者的觀點撰寫下有價值的功能(functionality/feature)。代表客戶的一個需求而已,實做細節將至開發時才會確定。
↓
Market research 我要做的東西之特色為何?市場會買單嗎?
SWOT分析、評估市場大小跟特性、獲利跟成長分析
↓
Business plan 了解自身狀態,給投資人或要加入團隊的人看,要時時檢視修改
Executive Summary, Company Description, Market Analysis, Organization & Management, Service or Product Line, Marketing & Sales, Funding Request, Financial Projections
Product design(PD):將點子化為實體,PD做好之後產品研發才會順利
Proof of concepts花最少的預算證明市場,先做原型(Prototype)看可不可行。
Build MVP 在最少資源與時間花費下,能夠幫助你儘快了解市場需求的產品。
MVP就是只有core features的早期產品,推給早期使用者以取得回饋,這也是避免做出市場不需要的產品之方法。
Wireframe (UI)單頁的藍圖,如網頁,設計師設計
Storyboard (UX)分鏡圖,單頁與單頁間的切換,設計師需要與RD討論
相關工具:pop app、Invision、Sketch
預先設計出網頁或app,若做得好,則後面工程師就方便架構。
Product development:產品開發
Spec (風格指南) → implementation執行 → QA
Project/Product management (PM):通常是工程師轉行(比較不會被誆),PM更需要溝通、交際,產品每個環節都要管(產品啟動、規劃、執行、結束),幫助整個團隊達到目標,權力大責任多,每個公司都會有PM。
相關工具:Trello(團隊行事曆)、JIRA(使用者回饋找BUG)
Trello可列出不同時期要達成的Feature(任務)。
Product delivery
User feedbacks and analytics:Google analytics(GA)、Mixpanel
Software development methodology 軟體開發
1. Waterfall model 一次做到底,
時機:固定流程、需求明確、有人做過
最具代表的是CMMI,強調只要規則定下去,照著做就會有好產品。
2. Prototyping做出原型,
時機:要快速修正、還沒人做過
結合兩者:incremental development 以做原型為概念,但每一步都是個waterfall
3. Agile software development
最知名的是Scrum,主張觀察目前的情境,考量人的天性,因勢利導。敏捷式軟體開發更注重在人的層面,講求快速從經驗學習反應和團隊自我管理,是一種以人為核心、迭代、循序漸進的開發方法。像是每天問大家要做什麼,昨天做什麼,需要什麼幫忙嗎?
軟體項目的構建被切分成多個子項目,各個子項目都具備集成和可運行的特征。就是把一個大項目分為多個相互聯繫,但也可獨立運行的小項目,並分別完成,在此過程中軟體一直處於可使用狀態。