Saturday, March 30, 2019

《打造FACEBOOK》读书笔记



http://smilejay.com/2013/12/how-facebook-works/
产品开发的三个准则: 1. 迅速发布,再进行监控(Move fast and monitor closely); 2. 坦然面对不确定性(Be comforable with uncertainty); 3. 不追求极致,应该不断地发布以达到目标(Done is better than perfect; Stay focused and keep shipping)。
如何招人的体会:1. 如果只是为了扩张队伍,别人是不会买账的,老板也不会同意; 2. “挖人”需要更多的努力和沟通,尤其是在公司内部不同的组之间。此外,招关键的人手时,除了自己的努力,也可以说服自己的老板甚至老板的老板,来跟对方沟通,效果可能更好。
产品开发的九个流程(并非每个都是必须的):1. 描绘愿景、设置目标; 2. 收集想法并排除优先次序; 3. 跨团队沟通; 4. 告知所有可能关心的人; 5. 设计产品; 6. 指定项目负责人; 7. 定期碰头会; 8. 了解进度、汇总报告; 9. 发布产品,监测数据。
对于非常早期的创业公司,最重要的是证明其产品概念是可行的(POC, Proof of Concept)。
Facebook时间分配“6-2-2”原则:60%的时间放在能够与其的工作上;20%的时间花在后台架构和产品质量上;20%的时间花在比较有风险、有争议、可能会带来某种颠覆性后果的想法上。
项目执行中一般都有四个维度:有哪些功能(Feature Set),预期完成时间(Time to Market),预算(Budget),完成质量(Quality)。

产品设计的一些基本理念:1. 不要过度设计(Don't over-design); 2. 越简单越好,但不意味着简陋(Be as simple as possible, but not simpler); 3.对于自己做出来的产品,你必须是它的用户(Be your own customer); 4. 产品确实有用,主要流程尽可能顺畅(It should just work); 5. 不追求完美(Don’t chase perfection); 6. 保留最基本的质量底线(Keep minimal quality bar)--> Facebook大致要求在99.8%的情况下是可用的。
指定项目负责人的好处:1. 责任非常清楚; 2. 锻炼员工的才能; 3. 方便交流。
经理的简报:1. 应该在一分钟之内被人阅读完毕; 2. 最开头一段明确列出本周核心数据的变化; 3. 应该只涉及组内最重要的3~5个项目; 4. 每个项目只用最重要的一句话去阐述清楚; 5. 项目进展的描述着重放在动词上(如:做了、正在进行、准备进行)
灰度发布(Gated Launch)就是有所控制地选择发布的人群及其比例。比如先1%的用户,再扩大到5%、10%、50%、90%、100%之类的。可以根据多种属性来筛选灰度发布的用户,如:年龄、性别、国家、城市、语言、学历、工作单位等。(有的发布是不容易做灰度的,如数据库的表结构变更)
灰度发布通过监控数据来判断发布状态。一类数据是当前的系统状态,如访问总量、访问速度、出现最多的错误; 另一类数据是反映新功能的用户影响。
Post-Mortem事后总结会议:1. 发生了什么? 2. 影响多大? 3. 问题的原因是什么? 4. 事情发生的具体时间表。 5. 如何避免将来犯类似错误的行动方案。


创业公司要解决的问题:要么是移除真正的痛点,要么是增强真正的快了点。
考察投资项目的几个问题:1. 问题是真实存在的; 2. 市场要勾搭; 3. 解决方法让人称妙; 要有一个潜在的能想象的商业模式(Business Model)。

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts