离职一个多月了。前几天进行了第一次面试,问了下你觉得敏捷有什么好处,还一下把我给问住了,所以特来写篇博文梳理一下我的认识的敏捷。水平有限,敬请谅解。
背景
在我入职前,大版本的开发和交付要经历较长的时间,质量很不稳定。由于对软件质量要求较高等各种原因,没人敢乱动-乱码, 但是新特性还要开发,导致整个代码臃肿不堪,上千行的函数随处可见。最后的最后,大家发现这不能忍啊,活没法干下去了。
敏捷介入
公司花重金聘请了敏捷顾问团队,跟项目组共同开发特性,进行一对一的敏捷培训。效果上说还是达到了目的,开发效率,产品质量都有了很大提高,支撑了之后多个版本的稳定开发和交付。敏捷顾问撤离,还是保留了每日版本构建,项目组持续集成,状态墙,TDD,结对编程,每日站会等敏捷实践和活动。
价值思考
其实这一点我后续的实际体会不多,都是从老员工的讲述中得到的。敏捷顾问当时非常强调从价值出发去考虑问题,再分析特性的时候,会以”这个特性有什么价值“、”这个特性不做会怎么样“、“这个特性要满足什么目的”,“这个特性有副作用”这样的思维方式去思考特性的价值。这样想清楚了才会去思考方案有什么,哪个方案最合理。通过价值思考可以明确特性开发完后软件的外部行为是什么样的,会引导你思考开发的代价,收益率这些问题。不过还是做了很多没用的特性,我们都知道价值不大什么没价值,但是,哈哈。。
做一个刚刚好的软件系统
在明确特性的价值和目的后,就要思考投入多少资源去做成什么样子了。一个仅仅用于演示和一个要在全球部署的特性当然是完全不一样的。一开始我觉得在早期做的好一点会更好吧。但是在后面的实际工作中,发现你的精力,资源都是有限的、总有人会提出垃圾的需求做完后被废弃、还有就是把代码写好然后去拥抱变化吧。大型的软件系统应该是逐步演进,那么就不必纠结于一开他有多简单了。
纵向划分story
在划分story的时候更习惯横向地思维方式。拿切蛋糕来作比喻,story应该是一小块完整的蛋糕(可测试,可交付);而不是被划分成水果层,奶油层,蛋糕坯。可以工作的软件胜过面面俱到的文档。
各种自动化脚本工具
敏捷不光有一组理念,一些支撑这些理念的方法论,一堆支撑这些方法论的实践,还有支撑实践地工具。有现成的各种单元测试框架,有持续集成工具cruisecontrol等等,但也有很多不适用于本项目组甚至没有的工具,就需要自己去开发很多脚本和工具来提高生产率。总之就是能用机器干的,就别手工劳动。通过工具可以很好地提高团队的开发效率,更重要的是承载了处理问题的宝贵思路和经验。
保证大家都清楚
早期开发和测试分家的时候,开发完了然后交给测试,然后各种bug,各种攻关关,各种延期,各种哈,身心憔悴啊。最崩溃的是开发认为这不是问题,但是测试觉得这直接关乎x亿用户的正常使用啊。其实到底是不是风险,影响有多大,谁知道呢,bug在运行几年后才随机出现,而且无法复现的情况有的是。所以理想的情况是开发,测试,项目经理,维护等各路人马对特性,目标,影响,潜在风险等都非常明了,甚至提出自己的意见使方案看起来是经过各个角度的深思熟虑的。后续因为实现、进度等原因的变更也要及时知会,这样,辛辛苦苦写完代码推翻重来的风险大大降低。在大公司,沟通永远有着高昂的成本。
用例
我认为用例是设计、实现层面最好的书面材料和沟通媒介。通过用例详细描述特性或者问题修复后的软件外部表现,提供明确的运行结果,直观,无二义性,有说服力。后期如果能加入自动化用例库,至少在版本发布前大家心里都有底。如果护周期很长的软件系统有很长的维护周期,自动化用例库和团队内部使用的形形色色的自动化工具,是最宝贵的资产。
TDD
先写用例,再写代码。一开始的时候还真是把人给憋的,几十分钟写个用例还真是很痛苦。到后来不写几个用例还真不会写代码了。其实在写代码之前能否写出用例,可以说明是否理解了需求或方案,根据方案设计代码应有的执行结果,对代码的逻辑流程,异常输入的处理是否思考到位。而不是在写代码的过程才去取理解问题,并不断修改代码。遵从TDD写出来的代码短小,逻辑清楚。但是也有一个问题,通过打桩,用例来驱动coding只是代码的写作方式,并不是设计,一堆mock并不能解决缺乏设计而导致的缺乏灵活性,缺少维护手段等问题。
结对编程
在老员工带新员工的时候效果不错。倒不是说对代码本身的学习,老员工高效率的工作方式让人受益匪浅。不过我也看到过老员工之间及其默契的结对,当一个人还没明白为什么用例失败的时候,另一个人已经把代码修复了。至于提高代码质量上,我倒是没发现有不可替代的价值。
迭代回顾
从我自身的经验来看,迭代回顾会议的效果十分有限。迭代回顾并不能解决各种老大难问题,很多问题几乎在每个迭代回顾会议上都能听到。不过倒是一个充分沟通的平台,至于下情能否上达就是另一回事了。不过一些能立即实施的措施,经验倒是能在迭代回顾会议上得到传播。不过只要团队的内部沟通顺畅,这都不是问题。我认为迭代回顾会议的目的应该是站在团队层面,对迭代中不符合预期的情况提出解决的方案,提升团队的效率,逐步完善团队能力。
更高的代价
敏捷对每个人的能力要求还是很高的,或者说要付出的代价是很大的。比如工具,敏捷还是比较依赖工具的,在我们产品内部,由于项目组较多,导致有各种各样自己开发的工具,有python2.7的,python3的,有tcl的,有shell的,有bat的等等等等,这维护代价。还有就是如果一个特性做出改动,一天甚至更多的用例修改也是让人感觉厌烦的事情。
相关推荐
【×建筑公司xx年工会工作总结】反映了该公司工会在2004年度的工作概况,主要集中在稳定职工队伍、维护职工权益以及解决职工困难等方面。以下是总结中的关键知识点: 1. **工会工作的重要性**:工会在公司中起到...
在贵阳,一项名为《贵阳市职工待业保险实施办法》的政策得以实施,其核心目的在于完善社会保险制度,保障那些因特定原因待业的职工能够得到基本的生活保障。这不仅显示了政府对职工福利的关怀,更体现了社会保障体系...
【安置帮教工作总结】 安置帮教工作是针对刑释解教人员的一项重要社会管理工作,旨在帮助他们顺利融入社会,防止重新犯罪。2020年,此项工作在探索中不断深化,形成监所与社会资源的共享和双向互动,拓展了安置帮教...
首先,待业条件明确指出,员工如果因为规定要求、工作表现差或者无故旷工达到一定天数,就可能面临厂内待业。这显示了企业在劳动管理中对员工行为规范的重视,同时也在一定程度上维护了企业的正常运营秩序。 其次,...
厂内待业制度是指在企业内部,为了应对生产波动、结构调整或经济不景气等情况,设立的一种临时性工作状态。它涉及到员工的工作权利、待遇保障以及企业的运营策略等多个方面。厂内待业制度旨在平衡企业与员工之间的...
面对社会转型带来的挑战,我们不仅积极分享就业成功案例,还通过组织培训和就业指导,激发了待业和下岗青年的就业热情。利用当地旅游开发的契机,我们为青年创造了更多就业机会,并通过建立休闲园项目,为失业人员...
总结起来,卷烟厂内待业制度的规定是一个涉及企业运营、员工权益和劳动法律法规的复杂系统,它需要在维护企业稳定的同时,关注员工的福利和职业发展。了解并执行好这一制度,对于构建和谐的劳企关系、促进企业可持续...
总结来说,这份员工手册是物业公司管理员工的重要工具,它确保了公平、透明的雇佣关系,维护了员工权益,同时也明确了公司的期望和责任。员工应仔细阅读并遵循手册中的各项规定,以确保工作的顺利进行和个人利益的...
- 落聘、解聘人员可获得待业生活费,一年后若仍未聘任则停发生活费并调离学校。 文件中还提到,聘任办法的制定是依据上级文件精神结合学校实际情况制定的。这些内容体现了学校对于教职工管理的规范化与制度化,...
- 甲方需为乙方办理养老保险、待业保险和工伤保险,承担相应保险金。 - 病假、产假期间,甲方按比例支付工资和报销医药费。 - 提供探亲假,期间工资照发并报销路费。 - 法定节假日和特定假期视为带薪休假。 7. ...
题目描述了一个关于“下岗待业”、“重新就业”、“培训学习”、“人员过剩”以及“优化组合”的序列问题。这类型题目考察的是考生对事件发生的合理顺序的理解能力。 - **分析**: - 人员过剩往往导致下岗待业; ...
- **社会保险**:包括养老保险、待业保险和工伤保险,企业需按规定缴纳保险金。 - **病假待遇**:患病期间,企业需支付一定比例的工资,并报销医药费。 - **产假、探亲假、婚丧假**:员工享有带薪假期,具体天数...
再次,工作年限和工作经验方面,一级消防工程师报考条件规定了不同工作年限和工作经验的要求。例如,从事消防安全技术工作满6年需要满8年工作年限;从事消防安全技术工作满5年需要满7年工作年限。 最后,对于取得...
- 社会保险:包括退休养老保险、待业保险、工伤保险,乙方的社会保险费用处理方式。 - 医疗待遇:病假期间的工资比例,医药费报销比例或包干金额。 - 奖金:根据单位效益和个人贡献设定的月度和年终奖金。 - ...
- **社会保险**:包括养老、待业和工伤保险,甲方需按规定缴纳保险金。 - **医疗待遇**:乙方患病时,甲方按工龄比例支付工资,并报销部分医药费。 - **其他福利**:如产假待遇、探亲假、住房补贴、膳食管理费等...
- **待业保险**:在失业期间,雇员可享受待业保险待遇。 - **工伤和职业病**:包括医疗费用、残废金、丧葬费和家属抚恤费的支付。 - **病假和假期**:为雇员提供医疗期、产假、哺乳期等福利,并规定了相应期间的...
- **家庭背景**:四口之家,父亲收入微薄,母亲患病需长期治疗,姐姐待业。 - **当前状况**:高中学费及家庭日常开销造成巨大经济负担。 - **申请理由**:请求专项助学金补助,缓解家庭经济压力。 ##### 范例3:...
- 厂内待岗、待业、退养制度:这些规定通常涉及到员工在特定情况下(如经济困难、身体状况等)的工作状态调整和待遇安排。 - 考勤管理:考勤是衡量员工出勤情况的标准,新系统的启用可能涉及自动化和数字化的改进...
根据提供的文档内容,我们可以总结出金光纸业(中国)投资有限公司关于薪酬福利与劳动关系管理方面的关键知识点。 ### 一、劳动关系 #### 1. 劳动合同制 - **基本制度**:劳动合同制是公司的基本劳动用工制度。 - ...
- 甲方须为乙方购买社会保险,包括养老、待业和工伤保险,临时工的社保处理方式也进行了说明。 - 病假期间,乙方享有不同比例的工资和医疗费用报销。 - 已婚女工的产假待遇、探亲假安排及费用报销等福利明确。 -...