25 Mar 2019
Reading Notes: Peopleware: Productive Projects and Teams
Part I: Manage The Human Resource
The major problems of our work are not so much technological as sociological in nature.
-
The high tech illusion
The researchers who made fundamental breakthroughs in those areas are in a high-tech business. The rest of us are appliers of their work.
We use computers and other new technology components to develop our products or to organize our affairs. We are mostly in the human communication business.
Our successes come from good human interactions.
Chapter 2: Make a Cheeseburger, Sell a Cheeseburger
Chapter 3
- People under time pressure don’t work better - they just work faster with low quality.
Chapter 4 Quality
-
Quality, far beyond that required by the end user, is a means to higher productivity.
远远超过超过最终用户需求的质量是取得更高生产力的手段。
Chapter 5
- Organizational busy work tend to expand to fill the working day.
Chapter 6
-
Lose weight while sleeping
-
False Hope: Technology is moving swiftly, that you’re being passed by.
Technology is moving swiftly, but (the High-Tech Illusion again) most of what you’re doing is not truly high-tech work.
-
That is Management
The manager’s function is not to make people work, but to make it possible for people to work.
Part II: The Office Environment
In Part II, we’ll look into some of the causes of lost time and propose measures that you can take to create a healthy, work-conducive environment.
Chapter 8 You never get anything done around here between 9 and 5
If you manage a team of people who need to use their brains during the workday, then the workplace environment (quite,space, and privacy) is your business.
Chapter 10 Brain Time versus Body Time
The phenomena of flow and immersion give us a more realistic way to model how time is applied to a development task. What matters is not the amount of time you’re present, but the amount of time that you’re working at full potential. An hour in flow really accomplishes something, but 10 six-minute work periods sandwiched between 11 interruptions won’t accomplish anything.
E-Factor = Uninterrupted Hours/Body-Present Hours
Chapter 11
Chapter 13
Design Your Workspace
-
Sit Behind A wall And Make Sure At Least Eight Feet A Wall In Front
As you work, you want to occasionally look up and rest your eyes by focusing on something farther away than the desk.
If there is a blank wall closer than eight feet your eyes will not change focus and they get no relief.
-
Windows
Part III The Right People
Chapter 16 Hiring The Juggler
When you set out to hire a programmer, the rules of common sense are often suspended. You don’t ask to see a design or a program or anything. In fact, the interview is just talk.
Chapter 19 Happy To Be Here
- The Cost of Turnover
- Why People Leave
- A just-passing-through mentality: Co-workers engender no feelings of long-term involvement in the job.
- A feeling of disposability: Management can only think of its workers as interchangeable parts (since turnover is so high, nobody is indispensable).
- The company move
19 Mar 2019
Why continuous deployment may cause continuous customer dissatisfaction
EN/US
Steve Blank gave example of Adobe in his blog post, which has now moved all products to the cloud and labeled them the Adobe Creative Cloud. Instead of paying for new products, customers now buy an annual subscription. It is good from the perspective of getting predictable annuity but not good from consumers’ perspective.
He described Adobe’s problem in using continuous deployment as follows:
While creating a predictable revenue stream from high-end users, Adobe has created two problems. First, not all Adobe customers believe that Adobe’s new subscription business model is an improvement for them. If customers stop paying their monthly subscription they don’t just lose access to the Adobe Creative Suite software used to create their work, they may lose access to the work they created.
Second, they unintentionally overshot the needs of students, small business and casual users, driving them to good-enough replacements like GIMP for PhotoShop and Artboard for Illustrator.
The consequence of discarding low margin customers and optimizing revenue and margin in the short-term, Adobe risks enabling future competitors.
CN
引用Steve Blank 在他的博文 里举的Adobe的例子,Adobe现在把整个产品线迁移到了云端,称之为 Adobe Creative Cloud。用户不再需要为新产品付钱,而是支付每年的订阅费用。这种做法使公司的年收入更趋向于稳定,但是从消费者的角度来讲,却是不好的。
他描述了 Adobe 在运用持续部署过程中遇到的问题:
虽然持续部署让 Adobe 从高端用户身上不断获得稳定的年收入,但是他们也制造了两个问题。首先,不是所有客户都相信 Adobe 新的订阅式商业模式能给自己带来好处。如果客户停止支付每月的订阅费用,那他们不但会失去工作所依赖的 Adobe Creative Suite 软件,同时还可能无法访问已经完成的作品。
其次,Adobe 这种定位过高的策略无意中伤害了要求比较低的学生、小公司和轻度个人用户,把他们送到了优秀竞争对手的怀抱,比如用GIMP 替代 PhotoShop,用 Artboard 替代 Illustrator。
抛弃低价值客户、增加年收入和短期利润的结果就是,Adobe 培养了未来的竞争对手。
其实同样的例子还有很多,比如MS Office -> Office 365.
Reference
- continuous-deployment
04 Mar 2019
Reading Notes: The DevOps Handbook
Chapter 5 - Selecting Which Value Stream to Start With
- GREENFIELD VS. BROWNFIELD 绿地项目 与 棕地项目
- SYSTEMS OF RECORD AND SYSTEMS OF ENGAGEMENT
- 记录型系统
- 强调正确性和稳定性 Do it right
- 比如一些ERP系统,人力资源系统, 财务报表系统
- 变化速度慢
- 交互性系统
- 强调快速响应和反馈,侧重Do it fast
- 比如一些电子商务系统
- 变化速度快
- Little fish learn to be big fish in little ponds.
Chapter 7: How to Design Our Organization and Architecture with Conway’s Law in Mind
STEP ONE: Flow
Chapter 9 - Create the Foundations of Our Deployment Pipeline
- On demand creating consistent production-like environments. (including DEV, TEST, STAGE)
- Put back environment specific change into version control.
- Manual changes to the production environment are no longer allowed. The only way production changes can be made is to put the changes into version control.
- CD to rebuild instead of repairing application using pipeline.
Chapter 10 - Enable Fast and Reliable Automated Testing
- Test Pyramid
- Integrate performance testing into our test suit
Chapter 12 - Automate and Enable Low-Risk Releases
Deployment is the installation of a specified version of software to a given environment (for example, deploying code into an integration test environment or deploying code into production). Specifically, a deployment may or may not be associated with a release of a feature to customers.
Release is when we make a feature (or set of features) available to all our customers or a segment of customers (for example, we enable the feature to be used by 5% of our customer base). Our code and environments should be built in such a way that the release of functionality does not require changing our application code.
- Release patterns
- Environment-based release patterns
- Application-based release patterns
-
Decoupling deployments from releases
For environment-based release, we can:
- The Blue-Green Deployment Pattern
- The Canary Release pattern
For application-based release, we can:
- Implement Feature Toggles
- Dark Launch Process
Chapter 13: Architect for Low-Risk Releases
- Evolutionary architecture
“Any successful product or organization will necessarily evolve over its life cycle.”
STEP TWO: Feedback
Chapter 14 - Create Telemetry to Enable Seeing and Solving Problems
Chapter 16 - Enable Feedback So Development and Operations Can Safely Deploy Code
- continuously improvement by small but frequent change sets. 增量迭代改进,持续小步前行
- contextual inquiry & customer observation 情景访谈 & 客户体验观察
Chapter 17: Integrate Hypothesis-Driven Development and A/B Testing into Our Daily Work
Techniques such as hypothesis-driven development, defining and measuring out customer acquisition funnel (客户获取渠道), and A/B testing allow us to perform user-experiments safely and easily, enabling us to unleash creativity and innovation, and create organizational learning.
- Two major marketing strategies:
- Direct response marketing 直效营销
- email
- phone call
- postcard
- Mass marketing or brand marketing 大众营销或叫品牌营销
A/B testing techniques were pioneered in direct response marketing. A/B 测试在直效营销中率先使用的。
Chapter 18 - Create Review and Coordination Processes to Increase Quality of Our Current Work
-
Pull Request
Pull request are the mechanism that lets engineers tell others about changes they have pushed to a repository on GitHub. Once a pull request is sent, interested parties can review the set of changes, discuss potential modifications, and even push follow-up commits if necessary.
It shifts our reliance away from periodic review,inspections and approvals from review board, and moving to integrated peer review performed continually as a part of our daily work. 将摆脱对评审委员会定期评审、审核和审批的依赖,用不间断的同行间评审取而代之。
-
Small batch sizes of each PR also applies to code reviews.
“Ask a programmer to review ten lines of code, he’ll find ten issues. Ask him to do five hundred lines, and he’ll say it looks good.”
STEP THREE: Continual Learning And Experimentation
Chapter 19: Enable and Inject Learning into Daily Work
ESTABLISH A JUST, LEARNING CULTURE
The only sustainable competitive advantage is an organization’s ability to learn faster than the competition.
- Blameless postmortem
- Controlled introduction of failures into production to create opportunities to practice. Injecting faults into the production environment (such as Chaos Monkey) is one way we can increase our resilience.
- Game Day 演练日
Chapter 20: Convert Local Discoveries into Global Improvements
Propagation of expertise and knowledge to rapidly enable and accumulate organizational learning.
- ChatOps Tools: Use persistent chat room tools, such as Hubot, Slack, and MS Team. Instead of Lync and Outlook which are not broadly persisted.
- Create a single, shared source code repository for entire organization.
-
Encourage experimentation. “buoys, not boundaries.”
Instead of drawing hard boundaries that everyone has to stay within, we put buoys that indicate deep areas of the channel where you’re safe and supported. You can go past the buoys as long as you follow the organizational principles. After all, how are we ever going to see the next innovation that helps us win if we’re not exploring and testing at the edges? As leaders, we need to navigate the channel, mark the channel, and allow people to explore past it.
Chapter 23 - Protecting the Deployment Pipeline
- Reduce reliance on separation of duty
减少对职责分离的依赖,比如我们作为开发人员登陆不了Production 服务器,无法获取Web服务器IIS的Logs, 其实减少了我们可以获得的产品运行时的反馈,妨碍了我们对质量,性能的负责。
19 Feb 2019
Books read in 2019
In this doc, I will list the inspiring books I read in 2019.
Technical
Novel
16 Feb 2019
How To Write
Tips
- use simple word
- use short word
- remove duplicate
- keep sentence short
- 多用主动式语句,少用被动式语句
Avoiding Common Mistakes
Planning What You’re Going To Write
-
Prepare
Define the purpose of the writing, gather information and compose the outline.
- Drafting
- Revising
- Proofreading