您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 从敏捷架构师出发,改善项目的敏捷流程
从敏捷架构师出发,改善项目的敏捷流程基於軟硬整合觀點1、摘要案例名称:从敏捷架构师出发,改善项目的敏捷流程a)案例简述•本案例是从一个新视角去观察敏捷开发流程的常见困境,这个视角就是:架构是系统的骨架,架构设计流程的敏捷性大幅度影响了系统开发流程的敏捷性。•当敏捷(项目)团队不顺畅时,如果从团队管理视角去求解,而无效时;架构设计很可能是问题所在,可尝试从架构设计视角去求解。•来自架构师的视角和习惯的蜕变。•让架构设计和项目开发都敏捷起来。•于是,敏捷的架构师,与非敏捷的架构师;前者有效带动项目团队的敏捷性,反之则严重阻碍整体团队的敏捷性。•本案例将阐述敏捷架构师的思维和技能,以及他如何让架构设计更敏捷,也让项目团队更敏捷。愿景系统架构中层设计业务架构需求&TDD迭代与反馈用户群架构师团队开发者a)如何达到目标•本案例一开始就试图让架构设计流程先敏捷起来,将代码视为架构的外貌,因而代码开发流程也因而敏捷起来。•因而发现一项目隐藏的细节情境:敏捷性较高的架构师,不仅能配合团队敏捷流程,更能激励团队更加敏捷。•反之,敏捷性低的架构师,一心一意追求稳定、可靠、不变的结构,盼望以不变应万变,让团队失去敏捷动能。经过多年的观察反思、实务淬炼,我们达成了目标:架构师调整思维视角,让架构设计流程敏捷起来,大幅改善项目的敏捷流程。基於軟硬整合觀點2、案例背景a)案例背景•许多主流敏捷开发方法(如Scrum)专注于项目流程与开发管理,却忽略了架构师的敏捷性。•例如,它把详细设计放到了编码的过程中,要求开发人员要有设计师的思维和技能,使得开发工作成为瓶颈所在。•此外,许多项目开发团队里,开发者的资历不深,设计经验和能力不足,又必须担任设计与编程双重任务,其瓶颈现象益加严重。•专注于项目管理(PM)上并无法有效化解上述开发者设计能力的瓶颈问题。•反之,让架构师团队敏捷起来,却能有效纾解上述的瓶颈。b)怎么做到?•过去曾经走了许多弯路,得到的教训是:仅仅专注于项目流程与代码开发是不够的。•架构犹如树干,代码犹如树叶,仅仅力求代码开发(树叶)的灵活性,增加其设计负担、造成更大瓶颈;不如从架构(树干)的灵敏度出发,才是更有效的。•此外,为了力求架构设计的敏捷性,却忽略了许多架构师在思维上对于以不变应万变的偏执,让我们途劳无功。•针对这个隐藏的关键点,我们提出了,以类(Class)、造形(Form)、模式(Pattern)、框架(Framework)作为思维主轴(取代以不变应万变),成功地让架构设计敏捷起来,实现了目标。传统视角:以不变应万变◎传统架构设计视角偏于抽象思维,致力于抽象出稳定、可靠、不变的共同性架构;做为应用发展的基础。◎然而,这项稳定架构无法迅速得到,不是“足够好”而已,这违背敏捷的SimpleSolution的要求,不易迅速推动敏捷迭代。新视角:敏捷求新求变◎新视角:师法自然;基于简单造形,组合出复杂。◎就像一个DNA螺旋形的结构,可以由相同造形(Form)的小单位组成;再者,每一个小单位所插入的方式,与别的小单位一模一样。只要你一旦明白一个DNA结构的组成形式,便可掌握整体了。DNA螺旋形的结构簡單造形內涵複雜重複組合•造形特性:形式简单、内涵复杂、重复组合•其它造形范例:物理原子(Atom)、唐诗七言绝句之形从简单组合出复杂基於軟硬整合觀點3、实践实践3.1架构设计的迭代过程•架构设计过程中,会不断修正设计里念,直到有了感觉足够好的设计模式,然后才让开发团队跟进;这项设计模式就是系统架构了。•架构师在设计出系统架构时,已经进行了无数次心智内的敏捷迭代了。架构师开发者沟通实践3.2架构师與开发者的合作诗同形架构师开发者架构(设计)内涵架构师细节(技術)内涵开发者软件造形•通用性和特殊性接口(Interface)的有效设计,是架构师的核心任务之一。•自从1996年Java问世之后,接口(Interface)成为Java语言的关键词(KeyWord)。实践3.3EIT软件造形为了凸显接口角色,就得考虑两项特性:•为了清楚地定义一个接口(主角),需要两个类来当配角。•此外,接口以能实现为类(Class)。•于是,高焕堂老师将3个类组合起来,成为一个更大的造形;就像生物DNA的螺旋结构,组合如下图:classTasksimplementsRunnable{publicvoidrun(){intsum=0;for(inti=0;i=100;i++)sum+=i;System.out.println(Result:+sum);}}//----------------------------------------------------------publicclassJMain{publicstaticvoidmain(String[]args){Threadt=newThread(newTasks());t.start();System.out.println(Waiting...);}}29ITask•用例(UseCase)代表一项需求,经常成为敏捷开发的检验和交付的单元。•以EIT造形清晰地定义UseCase接口,配合敏捷跌代而切分系统,缩小工作范围,提高效率。实践3.4敏捷架构师的案例(一)•另一方面,开发者能直接对映到代码,而大幅开发者效率和敏捷性。•EIT造形易于重构,迅速从简单组合出复杂系统。EITEITEITE&I類別T類別E&I類別BR引擎E&IStubTAccountCustomerBillReportStubTB.Rule分析T類別范例(二)•网络通信技术日新月异,通信协议是善变的。系统模块(Module)的设计与开发常常依赖于特定的通信协议,产生系统之间的高度偶合性(Highly-coupled)和相依性。实践3.5敏捷架构师的案例(二)◎虽然,标准化也是减法设计的途径之一,但是基于城市是永续发展的,而通信技术是日新月异的,试图统一善变的科技,在实务上显示其效果的局限性。◎开放软件平台,包容过去、现在和未来的通信协议,提升了持续发展的未来性。•基于物联网与互联网的普及与蓬勃发展,系统多样性、互相连结性时时都在改变中,敏捷开发对于上述新型系统而言,愈来愈重要了。3.6案例ROI分析•相对上,虽然必须花成本去改善架构师团队的思维技能,但却能共献于未来日益增多的网络化大型系统开发,显然能获得巨大的回报。•何况,对于架构师团队而言,蜕变也势成长,既利己(架构师)又利人(项目团队和亦业主),投入产出虽然不容易量化,却是非常正面的。•本案例可让众多敏捷专家们关注于架构设计流程敏捷的重要性;也让架构师们体会到传统追求稳定、可靠、不变的架构设计思维,已经不符合敏捷开发的潮流了。•一旦架构师和敏捷专家们都关注到本案例所凸显的神秘点,就可望让敏捷开发更为流行和普及了。3.7案例启示Thanks!
本文标题:从敏捷架构师出发,改善项目的敏捷流程
链接地址:https://www.777doc.com/doc-6130641 .html