Research projects often come with a lot of unknowns. Many engineers find this unsettling because it’s less straightforward than math or digital realm. However, I think we should welcome these uncertainties. They reflect the real challenges of real-world task and provide a chance to showcase our capability, making our work more engaging and lively.
Here’s my strategy to handle a research project:
Clarify requirements thoroughly
- It’s important to know not just what is needed but also why it is needed. Finding out why can be tough because people might not want to explain their core motivation, which could be personal or office politics related sometimes. But knowing this helps make better decisions.
Check your inventory
- Reach out to all your connections to find out what technical stacks are available to you.
- Double-check the resources you’re told, use strategy "trust but verify". This part is extremely important because most of the time the people disappoint you are not someone you don't trust, but instead someone you fully trust in the beginning but failed you later.
- Ask for schedule or roadmaps for future available resources. Add extra buffer time for each of those resources, depending on two factors (1) how important these deliverables are to their owners (2) how much influence do you have on their owners. If we eliminate the possibility of lying, still we must know that people are busy and have their own priorities. Usually they tell you the schedule or roadmaps based on best scenarios.
- For critical external dependencies, always have plan B.
- "Inventory" not only includes existing technical stacks, but also team members' expertise. For long-term projects, you may have time to hire experts or ask team members to pick up new skills; for short-term projects, you may have to pick technical stacks that your team is most familiar with.
Brainstorm with your team
- Lay out all the facts and assumptions. There must be a clear separation between these two categories.
- Talk through different ideas with your team, and very importantly try to bring out ideas from your team members. If you are a senior member, talk last.
- Within all the ideas and options, there must be something that require further confirmation or investigation. Take some time to do more investigation, and remember to delegate those well defined tasks to your team members.
Make decisions and move forward
- Spend enough time to think over your options, but not too long. Then make decisions together with your team, and very importantly tell them the "why".
- Stick to your decision once it’s made, and keep going until you reach an major milestone in the project. Then you can slow down to reflect and diverge some resource to solve technical debts. But before that, block out all the noises and keep executing.
Set milestones and celebrate small wins:
- Set clear milestones and check your progress as you go.
- Milestones must be verifiable, even better if you can find a quantitative criteria or automated checks.
- Milestones must be carefully paced, usually once every months.
- Milestones have their importance, some may be major milestones, some may be small checkpoints.
- Define milestone and their criteria, publish them to your team member. This is a very good / suitable task for team leaders.
- Celebrate every success, big or small, but keep it real to stay focused. Don't fool yourself with marketing materials.
Ask for help
- Always be ready to ask for help if you need it, and sometimes prefetch, to anticipate what kind of road blocks there will be and think about solution, is also necessary.
- Help others too, which can help build a good reputation.
- Find help and find solution to road blocks shall be the top priority tasks for team leaders.
Thank everyone and keep promoting your work
At major milestones, send out emails or make posts to promote your team's work with demos, and thank everyone who helped.
The project doesn’t end when you reach your goals. Keep promoting the work, especially in big companies where getting noticed are key.
ChatGPT翻译版本
研究项目往往充满了很多未知因素。许多工程师发现这令人不安,因为它不如数学或数字领域那样直接。然而,我认为我们应该欢迎这些不确定性。它们反映了现实世界任务的真正挑战,并提供了一个展示我们能力的机会,使我们的工作更加有趣和生动。
以下是我处理研究项目的策略:
彻底澄清需求
- 重要的是不仅要知道需要什么,还要知道为什么需要它。找出原因可能很困难,因为人们可能不想解释他们的核心动机,这有时可能与个人或办公室政治有关。但了解这一点有助于做出更好的决定。
盘点你的资源
- 联系你所有的人脉,找出你可以使用的技术栈。
- 对你被告知的资源进行双重检查,使用"信任但验证"的策略。这部分极其重要,因为大多数时候让你失望的人不是你不信任的人,而是你一开始完全信任但后来让你失望的人。
- 询问未来可用资源的时间表或路线图。为每个资源添加额外的缓冲时间,这取决于两个因素:(1)这些交付成果对其所有者有多重要 (2)你对其所有者有多大影响力。即使我们排除说谎的可能性,我们仍必须知道人们很忙并有自己的优先事项。通常他们根据最佳情况告诉你时间表或路线图。
- 对于关键的外部依赖,始终要有备用计划。
- "资源清单"不仅包括现有的技术栈,还包括团队成员的专业知识。对于长期项目,你可能有时间雇用专家或让团队成员学习新技能;对于短期项目,你可能必须选择你的团队最熟悉的技术栈。
与你的团队头脑风暴
- 列出所有事实和假设。这两个类别之间必须有明确的区分。
- 与你的团队讨论不同的想法,非常重要的是尝试从你的团队成员那里获得想法。如果你是高级成员,最后发言。
- 在所有的想法和选择中,必须有一些需要进一步确认或调查的内容。花一些时间做更多调查,记住将那些明确定义的任务委派给你的团队成员。
做出决定并向前推进
- 花足够的时间考虑你的选择,但不要太长。然后与你的团队一起做出决定,非常重要的是告诉他们"为什么"。
- 一旦做出决定就坚持下去,继续前进直到你达到项目的一个重要里程碑。然后你可以放慢节奏进行反思,并分配一些资源来解决技术债务。但在此之前,屏蔽所有噪音并继续执行。
设定里程碑并庆祝小成就
- 设定明确的里程碑并在进行过程中检查你的进度。
- 里程碑必须是可验证的,如果你能找到定量标准或自动检查就更好了。
- 里程碑必须仔细安排节奏,通常每月一次。
- 里程碑有其重要性,有些可能是主要里程碑,有些可能是小检查点。
- 定义里程碑及其标准,并将其发布给你的团队成员。这对团队领导者来说是一个非常好/合适的任务。
- 庆祝每一个成功,无论大小,但要保持真实以保持专注。不要用营销材料欺骗自己。
寻求帮助
- 如果需要帮助,随时准备寻求帮助,有时预先获取,预见会有什么样的路障并思考解决方案,也是必要的。
- 也要帮助别人,这有助于建立良好的声誉。
- 寻找帮助和寻找路障解决方案应该是团队领导者的首要任务。
感谢每个人并继续推广你的工作
在重要里程碑时,发送电子邮件或发帖通过演示推广你团队的工作,并感谢所有帮助过的人。
项目不会在你达到目标时结束。继续推广这项工作,特别是在大公司中,获得关注是关键。
Top comments (0)