- The interface between engineering dept. and business/customer-support dept. should be clear, esp. on long-standing, important issues
- It should be a well-defined metric
- This metric is selected based on engineering expertise and business feedback
- We will add more / revise metrics based on business side feedback iteratively
- To solve any non-feature problem, directly relating to customer experience and developer productivity
- We should avoid writing new code, instead trying to innovate our process first 1. Improve customer support process => better experience without writing new code 2. Improve SRE process => better developer productivity without writing new code
- We should not be perfectionist, instead, be a ruthless, data-driven practitioner
- The goal of meeting is to reach consensus
- It is hard to reach any real solution in a general meeting. However, spark might come in an informal one
- Standup & fast
- Make them feel productive and validated for his/her work
- Smooth the experience of development
- Effective goal setting, don’t change requirements or ops-ing too much
- Let him/her do the design and guide them through the validation process
- Make them feel growth and intellectual challenge
- Encourage innovation and experiment
- Establish our unique culture, spirit and workflow, a sense of team belonging
- Manage-up and push-back: Tractable and Transparent
- The engineers set goals for themselves based on business/ops requirements. However, they should be transparent about their progress and communicates actively
- The engineers have the rights and are expected to push back when some goals can be met within expected date. However, they should state their reason and discuss a more proper new date with manager. The manager is expected to help engineer to decide on the date more reasonably
 https://www.cleverism.com/google-way-motivating-employees/  https://www.inc.com/ilya-pozin/14-highly-effective-ways-to-motivate-employees.html  https://stackify.com/measuring-software-development-productivity/
- Do your co-workers love to work with you?
- Do they want to discuss problems with you?
- Do they trust on critical things?
- Do they respect your ideas?
- Are they willing to work under your leadership?
- How to manage the relationship with CTO?
- We need frequent communication, even if the communication might be one-sided or misunderstood. This also makes me learn and grow.
- stress that you made X decision based on Y facts. If you am not authorized to do so, then you will stop crossing the line. If you am wrong, you will be responsible for it and trying to save it.
- How to manage the relationship with CEO?
- Express your technical perspective clearly & firmly
- Tell the story backwards: I believe. We will. You can.
- Manage expectations well
- How to mange the relationship with other colleagues?
- Build the culture of sharing and mentorship
- Speak out openly but non-hurting
- Connect with them personally. Learn from them.
- Add new code based on existing framework
- Communicate with business/product end
- Use our internal productivity tools
- Write unit tests and conduct smoke test
- Understand our product logic
- Meet immediate & strict deadline
- Architecture — Ability to understand the logics of our framework and design/develop it
- Performance — Ability to conduct system level performance analysis
- DevOps — Ability to create and manage the internal productivity tools
- Site Reliability — Ability to release code, being on-call, build monitoring and alarming system, plan capacity, and manage instances
- Security — Ability to address all security issues in our system
- Data Analyst — Ability to manage database, including managing permissions, writing data analyzer scripts, turning performance of database and data related code, ability to create meaningful report from our raw data
- Super Coder — Meet complex, long-term implementations goals with quality
- Domain Expert — expert in Data Science? Cryptography?
- Process Optimization
- Developer Productivity
- Interface & Communication
- Priority & Goal Setting
These two roles are not strictly assigned to each one. People might do both, might rotate. Our overall top-level system should permit such rotations without significant security risk exposure.
- The necessity for communication and collaboration will naturally create the need for mechanism, common knowledge, and documentation
其实 Leader 并不是想象中那样英俊潇洒，光芒四射，管理工作更不是想象中那样唯我独尊，轻松愉快。
专家 vs 高管
都比你私自做主强，不请示，就算你做的对下场也不一定好。 高调做事，低调做人 鼓励下属主动和你提加薪。
人总是这样，跑着想走着，走着想站着，站着想坐着，坐着想躺着，这是本性。 只有平时严格要求了，招之能来，来之能战，战之能胜，你才是真的对所有人负责。所以我平时对 Leader 的基本要求，就是别做老好人，要保持战斗力，解决问题。
做技术就得这样静下心来把所有的问题加载到你脑袋的 cache 中，然后才能通盘考虑全面规划，两耳不闻传外事一心只读圣贤书，你才能进入创作的境界，并思如泉涌。
https://www.zhihu.com/people/ningnanshan/activities How to be an opinion leader?