JuJu alpha阶段总结博客
JuJu
设想与目标
我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
在cao ying researcher给的资料中定义得很清楚
我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)
数据的处理,bilstm,流程的save和train已经完成,目前test的acc达到了40-50%。
计划
是否有充足的时间来做计划?
项目开始的时候,由于大家对于julia语言不太熟悉,所以无法作出精确的规划。后期随着项目的开展,大家对于语言的掌握以及对于任务的理解上升了一个台阶,所以做的规划就更加准确了!
团队在计划阶段是如何解决同事们对于计划的不同意见的?
做大家认为最合理的方法,个人可以单独实现自己认为更合理的想法
你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
做完了
有没有发现你做了一些事后看来没必要或没多大价值的事?
有时候过于深入源码的细节
是否每一项任务都有清楚定义和衡量的交付件?
一开始对语言不太了解,所以对于函数接口定义不是很明确
是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
团队成员有急事,无法参与团队项目
我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
明确接口的需求,一定落实到细节
资源
我们有足够的资源来完成各项任务么?
有,但是官方文档太垃圾了
各项任务所需的时间和其他资源是如何估计的,精度如何?
根据任务的难度大致估计,硬件资源不是问题,因为我们是小task
测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
人力资源不足
变更管理
每个相关的员工都及时知道了变更的消息?
每天meeting
项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
后期有了清晰的定义
对于可能的变更是否能制定应急计划?
可以,因为我们有很多全能型选手
设计/实现
什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
LSTM以及chunk acc的实现,前者主要是语法不是太理解,后者对于概念的理解不到位。
代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
执行了代码规范,代码规范如下:
- 文件名以及函数名采用使用小写字母,必要时,可以使用下划线作为单词分隔符
- 变量名采用大写开头的驼峰命名法
- 在二元运算符两边各空一格
- 函数的参数列表中,逗号之后要有空格,默认值等号两边不要添加空格
- 不要给条件语句加括号
- 用4个空格表示缩进
- import语句分行书写,并且按照标准库,相关第三方库,本地库的顺序依次导入
- 类中的方法定义空一行,函数之间空两行,函数内逻辑无关段落空一行,其他地方不空行
- 注释必须用英文,一定要是完整的句子,首字母大写,用#注释。函数的说明写在函数定义之前,用""" """括起来,具体写法参见base库。
团队的角色,管理,合作
团队的每个角色是如何确定的,是不是人尽其才?
我们充分考量了每位成员的优点,人尽其才;比如金华在MSRA做过一些NLP的task,我们让他负责一些算法的实现,比如婷婷擅长ACM,我们让她负责主程序的编写,比如恩升是软件分析组的,我们让他做一些与性能相关的工作。
团队成员之间有互相帮助么?
恩!
当出现项目管理、合作方面的问题时,团队成员如何解决问题?
及时沟通,乃至结对编程,一块儿debug
总结
代码管理的质量具体应该如何提高?代码复审和代码规范的质量应该如何提高?
严格按照代码规范;给大家规定代码复审的时间
7. 对于人的领导和管理,有什么具体可以改进的地方? 请看《构建之法》关于PM、绩效考核的章节,或者《人件》等参考书
充分考量每位成员能够在项目的时间与精力,不能把人简单地看成一个零件。适当激励大家,并且尊重大家的时间,让大家对自己的工作有一种荣誉感,这样大家就会非常乐意去完成自己的工作。
贡献的权重
陈灿: 19.9%
金华: 21.3%
于达: 19.2%
婷婷: 21.2%
恩升: 18.4%
代码运行截屏