数据获取
- 项目跟踪系统:任务数、任务持续事件、任务复杂度
- bug跟踪系统:发布后的bug度量、bug的严重性、bug的复杂度
- 销售机会跟踪系统:机会数量、机会损失数、成交数
- 用户支持问题跟踪系统:支持联系数、支持案例数、案例严重性
- 软件产品:用户激活数、登陆次数、特性使用量、用户错误、性能
价值度量
- 多能:测量每个程序员完成了多少制定的任务
- 火力:测量程序员完成的任务的平均复杂度
- 助攻:测量程序员被打断的次数以及程序员帮助其他人的次数
- 温度:测量程序员在特定时间内的生产力变化情况
- 进攻影响力:程序员在推进项目方面的贡献
- 救援:测量程序员帮助修复紧急的产品问题的频度
- 抢断:测量程序员主动处理潜在的问题或帮助团队创造机会的数量
- 活动范围:衡量程序员可以负责多少个软件领域
- 防守影响力:测量程序员在避免重大问题方面的贡献
- 失误:测量一个程序员未能完成的所分配的任务的大小
- 错误:测量一个程序员所负责领域的产品问题的大小- 这里是列表文本
来自《软件工程实践者的研究方法6》的笔记小结
软件工程师的特质
大多数优秀的程序员不是因为报酬或公众关注而做编程,而是因为兴趣 —— Linus Torvalds
软件工程师想要展现“非常专业的”行为,应具备7种特质:
- 责任感:努力实现对同伴、其他利益相关者和管理者的承诺。未获得成功的结果,会在需要的时候不遗余力地做他需要做地事情;
- 敏锐的意识:对一些需求有敏锐地意识,这些人包括同团队地成员、对现存问题地软件解决方法有需求地利益相关者、掌控政工项目并能找到解决地管理者。观察人们工作地环境,并根据环境和人本身来调整自己地行为;
- 坦诚:如果发现有缺陷地设计,会诚实且有建设性得方式指出错误。即使被要求歪曲与进度、特点、性能、其他产品或项目特性有管地事实,也会选择实事求是;
- 抗压能力:软件工程工作经常处于混乱地边缘。压力来自很多方面——需求和优先级地变更、要求苛刻地利益相关者或同伴、不切实际或者令人难以忍受地管理者。一个卓有成效地软件工程师可以在不影响业绩地情况ia很好地处理这些压力;
- 高度的公平感:乐于同同事分享荣誉,努力避免利益冲突并且绝不破坏他人劳动成果;
- 注重细节:并不意味最求完美,而是说会利用产品和项目已有地概括性标准,在日常工作基础上仔细思考,进而做出技术性决策;
- 务实:不恪守教条式的宗教信仰,而是根据当下情景需要进行调整的科学规则。
一个成功的软件工程师必须掌握技术。此外,还必须对自己承担的义务负责、清楚同伴的需求、诚实地评估产品和项目,能适应压力、公平地对待同伴,还要关注细节。
五种黄金般的专业精神:1)好奇心和热爱;2)信心和耐心;3)精益求精;4)忘我;5)专业水平
什么是有凝聚力的团队
有共同目标,共同文化。
搞笑的软件团队应该具备:
- 目标意识:比如团队成员认同团队的目标是开发可以转化产品类别的软件,并为此让公司一跃成为行业的领跑者,就可以说他们有很强的目标意识;
- 参与意识:让每个成员都能感受到自己的技能得到发挥,所做出的贡献是有价值的;
- 信任意识:团队中的软件工程师应该相信同伴和其他管理者的技术与能力;
- 进步意识:定期审视软件工程方法并寻求改善途径。
团队的毒性:
- 混乱的工作氛围;混乱和消极地工作环境
- 会造成团队成员分裂的挫败;
- “支离破碎或协调不当”的软件工程;
- 对软件团队中角色的模糊定义;
- 执行且重复性的失败
团队的结构:
- 封闭模式:遵循传统的权利层级模式 ,分层结构
- 随机模式:松散的,依靠团队成员的个人自发性,依赖于个人主动性地松散结构
- 开放模式:既具有封闭模式的可控性,还具有随机模式团队的创新性
- 同步模式:有赖于问题的自然划分
- 敏捷模式:沟通、简单、反馈、勇气、尊重
协作工具
涉及:项目管理,进度安排,任务列表,需求和缺陷管理
协作工具包括的服务:
- 命名空间
- 进度表
- 模板
- 度量
- 交流分析
- 工件收集