祝贺同学们完成了第一个里程碑 M1. 经过报告/评论/Postmortem, 大家对各自项目在M1 的优缺点都应该有很深的了解, 也理解到做一个好的软件和实现一个算法的差别。请把这些对于软件工程的感悟体现在M2 的具体工作结果中。

关于转会 -  软件工程师换工作是常有的事,优秀的软件工程师都会留下足够的文档,  到哪里都能高效工作,  我相信经历了转会的工程师会以更高的热情投入到新的工作中。

 

M2 阶段的要求:

  1. 主要目标是要把M1 计划的功能进一步做好, 不贪多,必要时可以削减功能。

  2. 要用测试用例,单元测试,代码覆盖率,自动测试等工具和标准来保证软件模块的质量。最后会重点考察各项目测试的代码覆盖率。请测试的同学加把劲,如何保证你项目的60% 以上的代码都验证过?  都被测试用例覆盖了?

  3. 要有每日构建,每天都应该把代码集成进TFS, 并能够编译成功。

  4. 用真实世界的数据和用户来衡量软件的质量。 我们写软件是为用户写, 请考虑在适当时候请用户来试用软件, 收集用户反馈。

    1. 爬虫组:  每个小组搞定至少  4  万个英文文档;  5千个中文文档。 两个小组可以分工 (东西海岸,  不同文档类型等) , 文档处理要满足 Pipeline 组的要求。

    2. 数据Pipeline 组:  处理爬虫组的文档,并生成符合 UI 组要求的数据库。  (关键字,  问答对)。

    3. UI 组:  基本UI 要流畅好用, 使用场景完备。  搜索要快速,并能处理中英关键字的搜索,  用户的管理,  anti-spam,  anti-abuse 要达到实用的标准。 要能满足 效能测试/负载测试/压力测试的要求。

    4. AbsoluteDefense,  iLifer,  背单词小组:  不要过于强调自己的技术有多麽先进,   把软件做到满足典型用户的要求, 让用户喜欢你们的软件, 是最重要的。同时要尊重知识产权

  5.  所有的工作都写成了 TFS 的任务加入 TFS 中, 并有任务时间的估计, 所有的成员的任务都要写在里面

和M1 类似,  Daily Scrum 的 blog 打分细则如下:

用户测试报告: 在10天的冲刺完成后, 在适当的时机 (一两天后) 请项目的目标用户来试用软件, 记录用户反馈, 并写报告, 报告要有用户使用你们软件的照片。

    要点:  不要先告诉用户操作细节, 而是告诉用户一个目标 (例如想找有关 机器学习的资料), 让用户自己试着摸索。 反复几次, 收集反馈, 并思考如何改进。 所有小组都要做。 crawler 和 pipeline 小组要找其他开发人员 (假设他们以后要维护这个网站, 并且要处理更多文档) 来做用户调查。  请看移山之道或其它教材/资料关于用户调查/user study 的做法。

现在就可以考虑软件要如何发布, 最后项目评审的时候要拿出实际用户的数据, 所以要求你们的软件要在实际世界中运行了一段时间。

所有软件的发布日期都是 (12/17 中午)。  如果软件在发布之后有新版本,可以多次发布,但是12/17 号必须有第一次发布。  

每个项目预期发布20 天  (1/7 中午)  之后的下载用户数量, 或者活跃用户数量。 各个项目可以自己找渠道推广各自的软件/网站.

要求所有项目都要在下列的网站发个帖子, 做宣传:

    http://www.newsmth.net/nForum/#!board/NewSoftware 

    www.cnbeta.com

请把截屏和用户的反馈加入到报告中。

 

1/7/2013 进行最终项目终审。要求在这里:

http://www.cnblogs.com/xinz/archive/2012/12/26/2833855.html