Tell Mode & Ask Mode

本文介绍了Microsoft在软件开发过程中从Tell Mode到Ask Mode的过渡,详细解释了两种模式下开发团队如何处理待解决的问题,并展示了如何评估修复问题的风险及价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Microsoft uses Tell Mode and Ask Mode to refer to different time periods after the Feature Complete milestone but prior to a release.

 

During Tell Mode the Development team tells the rest of the team which issues are actively being worked on (resolved). In other words, Development is primarily driving the stabilization process based on what they think should be fixed -- as determined by priority, severity, complexity (i.e. risk), and effort required. This works for a while, but at some point you have to reign in Development in order to ship, er, release.

 

Thus we transition into Ask Mode whereby Development must ask permission before resolving any issues. It is okay to investigate issues, but no code changes can be made to address an issue until approval by the “War Team” (er, Triage Team) is granted.

 

During Ask Mode we look first at the scenario that is being fixed (i.e. the motivation for fixing it), we look at why the bug happens (regression, test hole, coding error, etc.), and then we investigate the necessary source code changes and associated risk. Every potential change is heavily scrutinized to evaluate whether it is worth the risk to fix it, because at this point in the schedule, every change -- even one that seems trivial -- has the potential to destabilize the solution and slip the schedule.

 

While the overall process of the daily triage meetings stays the same as we transition from Tell Mode to Ask Mode, there is a noticeable shift in focus.

During Tell Mode, work items are often immediately triaged as Approved, or work items triaged as Investigate are often just fixed without further review. This is no longer the case once we enter Ask Mode.

 

In Ask Mode every work item is first assigned a triage of Investigate. The person responsible for investigating the item must thoroughly document details about the item -- in the Description field of the work item, unless a more formal DCR (Design Change Request) is deemed necessary.

 

The investigator (typically a member of the Development team) documents the:

  • Motivation -- "Why are      we making this change?"
  • Proposal -- "How should      we resolve the issue?"
  • Risks -- "What is the      worst case scenario if we make this change?"
  • Solution -- "What      specifically needs to change?"
  • Teams Impacted -- "How      much work is required by Development, Test, Release Management, and      (potentially) Product Management teams?" (note that the estimates      need to come from the respective team members -- the investigator should      not "guess")

 

Note that both Solution and Teams Impacted are not needed, one or the other is fine. If the necessary change (and associated risk) is very small -- such as a configuration change -- then just documenting the Solution should suffice. The goal is not to overburden ourselves with process -- but we also need to ensure that no change is made unless it has been thoroughly evaluated. If the change (or risk) is substantial, then document the impact on each of the various teams.

 

After documenting these details, the investigator then changes the Triage field to Recommend Approve (if the value in making the change is greater than the associated risk) or Recommend Reject (if the risk of making the change outweighs the value). The Triage Team then reviews the detailed information about the work item and either changes the Triage field to Approved or Not Approved (i.e. "punt to v.Next").

 

Note that the Triage Team can certainly overrule the investigator, which is why it is critical that no work be done on actually resolving the work item until approval is received from the Triage Team (i.e. the Triage field is set to Approved). Also note that, unless you are a member of the Triage Team – and even then, only during a formal triage meeting – you should not change the Triage field to anything except Recommend Approve or Recommend Reject. Otherwise, you should fully expect a thorough hazing from virtually all team members.

 

 

I have included slightly "scrubbed" versions of a couple of the bugs below, in case you are interested in seeing examples.

 

Bug 1505 - There are no results displayed in WCOSLSCD if a search is performed on few publication types

Repro steps:

  1. Log on to http://wcoslscd.cos.fabrikam.com/scripts/library.asp
  1. Select the      publication type as “Certificate of Analysis” or “Material Safety Data      Sheet” from the drop down and click on search
  1. There are      no results displayed for these publication types even though there are lot      of documents under these publication types in TEST

Motivation:

LiteratureResults.aspx currently excludes the following content types (since the number of publications of these types is disproportionately higher than other publication types and also because these publication types have separate search forms):

  • Chromatogram
  • Certificate of Analysis
  • Material Safety Data Sheet

However, the current user experience is not desirable since the search form allows users to narrow their search results to just Certificate of Analysis or MSDS publications (which will never return results).

Proposal:

Remove Certificate of Analysis and MSDS from the search criteria. This would allow users to search specifically by these publication types and would also include these results by default.

Risk:

Of the roughly 33,000 publications in the EPI Warehouse, there are approximately 1,300 Certificate of Analysis and 7,100 MSDS publications.

Since the new SharePoint search includes full-text indexing as well as metadata, including these two publication types by default may dramatically change the search results.

Teams Impacted

Development

Modify LiteratureResults.asp to no longer exclude Certificate of Analysis and MSDS publications by default (0.5 hours).

Release Management

Merge updated ASP file into legacy VSS and deploy to WCOSLSCD and CAGCHEM (0.5 hours)

Test

Retest ESI Library searches through legacy General Site (2 hours)

Product Management

Review new Library search results on legacy General Site to determine if the large number of Certificate of Analysis and MSDS publications has a negative impact on search results. (2 hours)

转载于:https://www.cnblogs.com/scudpurple/archive/2012/06/27/2566146.html

<think>好的,用户问的是关于Python中文件模式'mode='rt''的问题。首先,我需要确认自己对这个参数的理解是否正确。rt代表的是读取文本模式,这是默认的打开方式,所以当以'r'模式打开文件时,其实等同于'rt'。然后,我应该解释清楚各个参数的含义,r表示读,t表示文本模式。文本模式会处理特定于平台的换行符,比如在Windows下会将\n转换为\r\n,或者反过来,这取决于读取还是写入。 接下来,要说明使用rt时的注意事项,比如文件必须存在,否则会抛出FileNotFoundError。还有,在文本模式下,读取的数据是字符串,而不是字节,所以不需要处理编码问题,除非指定了其他编码方式。默认的编码通常是平台相关,但最好明确指定,比如encoding='utf-8'。 然后,可能需要提供一个代码示例,展示如何使用'rt'模式打开文件,并读取内容。同时,要指出常见错误,比如文件不存在,或者编码不匹配导致的问题。 最后,根据用户的要求,提出相关问题。这些问题应该围绕文件模式的不同选项,比如其他模式的区别,二进制模式的应用场景,处理不同换行符的方法,以及编码参数的作用。确保问题覆盖用户可能进一步想了解的内容,帮助他们巩固知识点。 现在检查是否有遗漏的地方。比如,是否提到了t和b的区别,二进制模式下的处理方式,以及不同操作系统下的换行符处理。这些点可能需要简要提及,以帮助用户全面理解rt模式的特点。此外,还要确认给出的代码示例是否正确,是否覆盖了基本的打开和读取操作,以及异常处理是否恰当。如果有必要,可以添加一个try-except块来捕获文件不存在的错误,但用户的问题可能不需要,所以根据用户的问题决定是否包含。 总结,回答的结构应该是先解释rt的含义,然后详细说明各个参数的作用,接着给出代码示例,最后列出相关问题。确保语言简洁明了,适合不同层次的学习者理解。</think><< `mode='rt'`是Python文件操作中用来指定以**文本模式读取文件**的模式参数。其中: - `r`表示只读模式(read) - `t`表示文本模式(text) ### 核心特性 1. **默认行为**:如果未显式指定模式(如`open('file.txt')`),默认等价于`mode='rt'` 2. **换行符转换**:自动将不同操作系统的换行符(如Windows的`\r\n`)统一转换为`\n` 3. **编码处理**:需要指定编码方式(推荐明确指定`encoding='utf-8'`) 4. **返回值类型**:读取的内容是字符串(str)类型 ### 使用示例 ```python # 最佳实践:始终明确指定编码 try: with open('example.txt', mode='rt', encoding='utf-8') as f: content = f.read() print(content) except FileNotFoundError: print("文件不存在") except UnicodeDecodeError: print("编码错误") ``` ### 注意事项 1. 文件必须存在,否则会抛出`FileNotFoundError` 2. 二进制文件(如图片)必须使用`rb`模式读取 3. 不同平台的默认编码可能不同(Windows常用cp936/GBK,Linux/macOS用UTF-8) 4. 文本模式下的`seek()`/`tell()`行为可能与二进制模式不同 ### 典型错误 ```python # 错误1:读取二进制文件 with open('image.jpg', 'rt') as f: # 会引发UnicodeDecodeError f.read() # 错误2:依赖默认编码 with open('gbk_file.txt', 'rt') as f: # 在Linux下会解码失败 print(f.read()) ``` ### 推荐模式组合 | 模式 | 描述 | 适用场景 | |------|---------------------|----------------------| | rt | 读取文本(默认) | 常规文本文件 | | wt | 写入文本(覆盖) | 创建新文件/覆盖旧内容 | | at | 追加文本 | 日志文件等追加写入场景 | | rb | 读取二进制 | 图片/视频/可执行文件等二进制数据 | | wb | 写入二进制 | 生成二进制文件 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值